信息论仙农编码实验报告new

信息论仙农编码实验报告new

ID:19997428

大小:70.50 KB

页数:5页

时间:2018-10-08

信息论仙农编码实验报告new_第1页
信息论仙农编码实验报告new_第2页
信息论仙农编码实验报告new_第3页
信息论仙农编码实验报告new_第4页
信息论仙农编码实验报告new_第5页
资源描述:

《信息论仙农编码实验报告new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、仙农编码实验报告姓名:资雁兵学号:20091616310029班级:信息安全一班一、题目:仙农编码二、实验要求用仙农编码实现对信源的编码三、实验步骤1、将信源符号按概率从大到小的排列,为方便起见,令P(s1)≥p(s2)≥…≥p(sn)2、令p(s0)=0,用pa(sj)表示第i个码字的累加概率,其中j=i+1,则:pa(sj)=p(s0)+…+p(sj-1)3、确定满足下列不等式的整数li,并令li为第i个码字的长度为-logp(si)≤li<1-logp(si)4、将pa(si)和j=i+1用二进制表示,并取小数点后li位作为符号si的编码四、设计函数v

2、oidGetOrder(shannongsn[50],intn)//从大到小排序voidGetCode(shannongsn[50],intn)//获得编码一、程序使用方法二、运行程序,先输入所要编码的个数,然后一次输入一个字符作为信源名,以及一个信源的概率,即可得编码三、源程序#include#include#defineMAX100typedefstruct{floata;//概率floatb;//码长intcode[MAX];//编码数组}xiannong;//结构体voidScanfNode(xiannongxian

3、node[MAX],intn){inti;//输入各个概率for(i=0;ixiannode[i].a){k=xiannode[j].a;xiannode[j].a=xiannode[

4、i].a;xiannode[i].a=k;}}}voidAddOrder(xiannongxiannode[MAX],intn,floatpa[MAX]){//累加到pa[]数组intj;pa[1]=0;for(j=1;j<=n;j++){pa[j+1]=pa[j]+xiannode[j-1].a;printf("%f",pa[j]);}}voidGetOrder(xiannongxiannode[MAX],intn,floatpa[MAX]){inti,k,m;//把小数转换到二进制floatj;for(i=0;i

5、og(xiannode[i].a)/log(2.0);xiannode[i].b=j;//printf("%f",xiannode[i].b);m=j;if(m==j)xiannode[i].b=m;elsexiannode[i].b=m+1;}//for(i=1;i<=n;i++){//生成二进制for(k=0;k

6、/voidmain(){xiannongxiannode[MAX];floatpa[MAX];intn,i,j;printf("请输入编码的个数");scanf("%d",&n);ScanfNode(xiannode,n);GetNode(xiannode,n);AddOrder(xiannode,n,pa);GetOrder(xiannode,n,pa);/for(i=0;i

7、.b);}for(i=1;i<=n;i++){printf("%f",pa[i]);}测试专用/printf("");for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。