香农编码--信息论大作业.doc

香农编码--信息论大作业.doc

ID:58564748

大小:150.00 KB

页数:7页

时间:2020-10-20

香农编码--信息论大作业.doc_第1页
香农编码--信息论大作业.doc_第2页
香农编码--信息论大作业.doc_第3页
香农编码--信息论大作业.doc_第4页
香农编码--信息论大作业.doc_第5页
资源描述:

《香农编码--信息论大作业.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、信息论与编码课程大作业题目:香农编码学生姓名:******学号:&**********专业班级:*******************2013年5月10日香农编码1.香农编码的原理/步骤香农第一定理指出了平均码长与信源之间的关系,同时也指出了可以通过编码使平均码长达到极限值,这是一个很重要的极限定理。如何构造这种码?香农第一定理指出,选择每个码字的长度Ki将满足式I(xi)≤Ki<Ip(xi)+1就可以得到这种码。这种编码方法就是香农编码。香农编码步骤如下:(1)将信源消息符按从大到小的顺序排列。(

2、2)计算p[i]累加概率;(3)确定满足自身要求的整数码长;(4)将累加概率变为二进制数;(5)取P[i]二进制数的小数点后Ki位即为该消息符号的二进制码字。2.用C语言实现#include#include#include#definemax_CL10/*maxsizeoflengthofcode*/#definemax_PN6/*输入序列的个数*/typedeffloatdatatype;typedefstructSHNODE{datatype

3、pb;/*第i个消息符号出现的概率*/datatypep_sum;/*第i个消息符号累加概率*/intkl;/*第i个消息符号对应的码长*/intcode[max_CL];/*第i个消息符号的码字*/structSHNODE*next;}shnolist;datatypesym_arry[max_PN];/*序列的概率*/voidpb_scan();/*得到序列概率*/voidpb_sort();/*序列概率排序*/voidvaluelist(shnolist*L);/*计算累加概率,码长,码字*/

4、voidcodedisp(shnolist*L);voidpb_scan(){inti;datatypesum=0;printf("input%dpossible!",max_PN);for(i=0;i>");scanf("%f",&sym_arry[i]);sum=sum+sym_arry[i];}/*判断序列的概率之和是否等于1,在实现这块模块时,scanf()对float数的缺陷,故只要满足0.99

5、(sum>1.0001

6、

7、sum<0.99){printf("sum=%f,summust(<0.999max){max=sym_arry[j];pos=j;}sym_arry[po

8、s]=sym_arry[i];sym_arry[i]=max;}}voidcodedisp(shnolist*L){inti,j;shnolist*p;datatypehx=0,KL=0;/*hx存放序列的熵的结果,KL存放序列编码后的平均码字的结果*/p=L->next;printf("numtgailvtsumt-lb(p(ai))tlenthtcode");printf("");for(i=0;i

9、%ft%dt",i,p->pb,p->p_sum,-3.332*log10(p->pb),p->kl);j=0;for(j=0;jkl;j++)printf("%d",p->code[j]);printf("");hx=hx-p->pb*3.332*log10(p->pb);/*计算消息序列的熵*/KL=KL+p->kl*p->pb;/*计算平均码字*/p=p->next;}printf("H(x)=%ftKL=%fR=%fbit/code",hx,KL,hx/KL);/*计算

10、编码效率*/}shnolist*setnull(){shnolist*head;head=(shnolist*)malloc(sizeof(shnolist));head->next=NULL;return(head);}shnolist*my_creat(datatypea[],intn){shnolist*head,*p,*r;inti;head=setnull();r=head;for(i=0;i

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

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

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