资源简介
本压缩包里有用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个文件信息
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- c语言字符串分割截取子串查找插入删
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- Qt画图工具源码(qgraphics draw)
- c++ 多功能计算器
- C++17 In Detail
- 使用QWT库实现接收串口数据,并根据
- 嵌入式QtC++编程课件
- stm32库函数代码自动生成器V1.2
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
评论
共有 条评论