信息论与编码实验报告(7)

2021-02-21 09:17

信息论与编码实验报告

费诺编码源程序代码:

//全局变量定义 int n; string *sign; double *p; string *code;

void fano(int a,int b) //费诺编码函数 { if((b-a)>=1) //判断该组中符号个数是否大于2 { double sum=0; for(int i=a;i<=b;i++) sum+=p[i]; //计算该组概率累加和 double s1=0,*s=new double[10]; for(i=a;i<=b;i++) { s1+=p[i];s[i]=fabs(2*s1-sum)/sum; } double min=s[a]; int c; for(i=a;i<=b;i++) if(s[i]<=min) { min=s[i]; c=i; //定位使两组概率和尽可能相近或相等的位置c } for(i=a;i<=b;i++) { if(i<=c) code[i]+="0"; //码字加"0" else code[i]+="1"; //码字加"1" } //判断分组点位置,进而分情况自身调用 if(c==a) fano(c+1,b); else if(c==b-1) fano(a,c); else { fano(a,c);fano(c+1,b); } } }

void main() { cout<<"请输入信源符号个数n:"; cin>>n; p=new double[n]; sign=new string[n];


信息论与编码实验报告(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:防火检查记录表

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: