资源简介
本压缩包里有用Vc++缩写的用迭代法计算信道容量,并画出信道容量随着某一个参数变化时的曲线。开发要用openGL,里面有关于它的一些例子,学起来很容易。自己可以用它画出任意图形的。
代码片段和文件信息
#include
#include
#include
#include
#include
#pragma comment (lib “opengl32.lib“)
#pragma comment (lib “glaux.lib“)
#include
#include
#include
float shuju1[100];
float shujus[100];
float shuju2[100];
float A_B(float pp);
void fun();
float b=0.001f;
const GLfloat factor = 1.0f;
void myDisplay(void)
{
int i=0;
GLfloat x;
fun();
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f 0.0f 0.0f);
glBegin(GL_LINES);
glVertex2f(-1.1f 0.0f);
glVertex2f(1.1f 0.0f);
glVertex2f(-1.0f0.0f);
glVertex2f(-1.0f1.0f);
glVertex2f(0.0f 0.0f);
glVertex2f(0.0f 1.0f);
glEnd();
glBegin(GL_LINES);
glVertex2f(-0.52f-0.1f);
glVertex2f(-0.48f-0.1f);
glVertex2f(-0.52f-0.15f);
glVertex2f(-0.48f-0.15f);
glVertex2f(-0.5f-0.1f);
glVertex2f(-0.5f-0.15f);
glEnd();
glBegin(GL_LINES);
glVertex2f(0.525f-0.1f);
glVertex2f(0.475f-0.1f);
glVertex2f(0.525f-0.15f);
glVertex2f(0.475f-0.15f);
glVertex2f(0.49f-0.1f);
glVertex2f(0.49f-0.15f);
glVertex2f(0.51f-0.1f);
glVertex2f(0.51f-0.15f);
glEnd();
glBegin(GL_LINE_STRIP);
for(x=0.01f/factor; x<=1.0f/factor; x+=0.01f)
{
glVertex2f(x*factor-1.0 shuju1[i++]*factor);
}
glEnd();
glColor3f(0.0f 1.0f 0.0f);
glBegin(GL_LINE_STRIP);
for(x=0.01f/factori=0; x<=1.0f/factor; x+=0.01f)
{
glVertex2f(x*factor shuju2[i++]*factor);
}
glEnd();
glFlush();
}
int main(void)
{
auxInitDisplayMode(AUX_SINGLE|AUX_INDEX);
auxInitPosition(0 0 800 800);
auxInitWindow(L““);
// glutCreateWindow(“第一个OpenGL程序“);
myDisplay();
Sleep(10 * 1000);
return 0;
}
void fun()
{
int ii;
float pp=0.0f;
float qq=1-pp;
printf(“信道矩阵为:\n“);
printf(“ p_yx[0][0]=1 p_yx[0][1]=0\n p_yx[1][0]=p p_yx[1][1]=1-p\n“);
printf(“迭代精度为:%f\n“b);
printf(“下面的数据,左边的是程序题1的数据,中间的是p的值,右边的是程序题2的数据\n“);
for(ii=0;ii<100;ii++)
{
pp=pp+0.01f;
qq=1-pp;
shuju1[ii]=A_B(pp);
shujus[ii]=(-pp)*log(pp)/log(2.0)+(-qq)*log(qq)/log(2.0);
shujus[ii]=shujus[ii]/(1-pp);
shuju2[ii]=log(1+pow(2-shujus[ii]))/log(2.0);
printf(“%f------%f------%f\n“shuju1[ii]ppshuju2[ii]);
}
printf(“上面的数据,左边的是程序题1的数据,中间的是p的值,右边的是程序题2的数据\n“);
}
float A_B(float pp)
{
register int ij;
register int k;
int N=2M=2;//行,列
float *p=NULL;
float *q=NULL;
float *d=NULL;
float *a=NULL;
float *s=NULL; //s数组为各行概率累加求和
float **p_yx=NULL; //二维数组p_yx存放信道矩阵
float CumaxILIU; //C为信道容量,b为迭代精度
p=(float *)calloc(Nsizeof(float)); //初始化需要用到的数组
q=(float *)calloc(Msizeof(float));
d=(float *)calloc(Nsizeof(float));
a=(float *)calloc(Nsizeof(float));
s=(float *)calloc(Nsizeof(float));
p_yx=(float **)calloc(Nsizeof(float
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4958 2012-05-07 10:10 assign3 readme.txt
文件 743040 2012-05-06 17:22 OpenGL2.0.rar
目录 0 2012-05-08 09:20 OpenGL2.0\
目录 0 2012-05-08 09:20 OpenGL2.0\OpenGL2.0\
目录 0 2012-05-08 09:20 OpenGL2.0\OpenGL2.0\gl\
文件 69083 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\GL.H
文件 12024 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\GLAUX.H
文件 1312394 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\GLAUX.LIB
文件 12794 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\GLext.H
文件 315904 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\GLU.DLL
文件 18282 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\GLU.H
文件 35606 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\glu.lib
文件 49514 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\GLU32.LIB
文件 154624 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\GLUT.DLL
文件 79654 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\glut.lib
文件 237568 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\GLUT32.DLL
文件 69580 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\GLUT32.LIB
文件 1213440 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\OPENGL.DLL
文件 242802 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\opengl.lib
文件 336274 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\OPENGL32.LIB
文件 17183 2005-10-19 15:32 OpenGL2.0\OpenGL2.0\gl\WGLEXT.H
目录 0 2012-05-08 09:21 assign3_7\
文件 4958 2012-05-07 10:10 assign3_7\assign3 readme.txt
文件 4315 2012-05-06 17:10 assign3_7\assign3_7.dsp
文件 526 2012-05-06 17:05 assign3_7\assign3_7.dsw
文件 50176 2012-05-08 09:02 assign3_7\assign3_7.ncb
文件 48640 2012-05-08 09:02 assign3_7\assign3_7.opt
文件 252 2012-05-08 08:55 assign3_7\assign3_7.plg
目录 0 2012-05-08 09:21 assign3_7\Debug\
文件 245842 2012-05-07 21:37 assign3_7\Debug\assign3_7.exe
文件 376104 2012-05-07 21:37 assign3_7\Debug\assign3_7.ilk
............此处省略11个文件信息
相关资源
- c++太空射击代码Opengl
- MFC简易计算器含加减乘除,平方,立
- C++写的报文转发的网关程序
- 傅里叶变换研究|C++源码|带通滤波器
- MFC局域网聊天室C++
- k-means的C++代码vs
- 进程管理模拟 VC++ mfc实现
- 销售管理系统C++
- 列车时刻表查询系统c++ sql
- Visual_C++_开发的即时通讯系统
- 82道华为校招历年机试编程题C++代码附
- 画图模仿画图白板小程序源代码(V
- 经典小游戏大集合(C++ 源码)
- AES加密/解密C++源代码
- 分别用c语言和c++mfc实现正态分布曲线
- Programming_With_Microsoft_Visual_C++_.Net
- 语音识别端点检测程序C++
- visual c++实现的跳棋程序
- ISO/IEC 14882:2014 C++14 C++标准 英文版 P
- 用C++实现MapInfo 的mif文件读取源码
- 七巧板VC++实现
- eDNA实时历史数据库接口功能说明及
- 深入理解C++11:C++11新特性解析与应用
- C++FTP服务端客户端
- C11 C++11标准帮助文档中文版-20181230
- 一个用C++编写的画图程序
- Snake主动轮廓模型的C++实现
- C++调用python3.5中的函数
- visual c++数字图像处理何斌光盘源代码
- 用C++实现OFDM
评论
共有 条评论