实验三-费诺编码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

陕西科技大学实验报告第页班级学号姓名实验组别实验日期室温报告日期成绩报告内容:(目的和要求、原理、步骤、数据、计算、小结等)实验名称:实验三费诺编码一、实验目的掌握费诺编码方法的基本步骤及优缺点。二、实验内容对于给定的信源的概率分布,按照费诺编码的方法进行计算机实现。三、实验仪器、设备1.计算机-系统最低配置256M内存、P4CPU;2.MATLAB编程软件。四、实验原理1.费诺编码原理:费诺编码就是通过使编码中各个句号出现的概率大致相等,实现概率均匀化,从而减少冗余度,提高编码效率。凡是能载荷一定的信息量,且码字的平均长度最短,可分离的变长码的码字集合称为最佳变长码。在编N进制码时首先将信源消息符号按其出现的额概率一次又小到大排列开来,并将排列好的心愿符号按概率值分N大组,使N组的概率之和近似相同,并对各组赋予一个N进制码元0、1...N-1。之后再针对每一个大组内的心愿符号做如上处理,即再分为概率相同的N组,赋予N进制码元。如此重复,直到每组只剩下一个心愿符号为止。此时每个信源符号所对应的码字即为费诺码。针对同一个心陕西科技大学实验报告第页愿,费诺码比香农码平均码长小,消息出书速率大,编码效率高。费诺编码是一种信源编码,它编码后的费诺码要比香农码的平均码长小,消息传输速率大,编码效率高。但它属于概率匹配编码它不是最佳的编码方法。2.费诺编码算法:(1)将信源消息符号按其出现的概率大小依次排列:P(X1)P(X2)...P(Xn)(2)将依次排列的信源符号按概率值分为两大组,使两个组的概率之和近似相同,并对各组赋予一个二进制码元“0”和“1”;(3)将每一大组的信源符号再分成两组,使划分后的两个组的概率之和近似相同,并对各组赋予一个二进制符号“0”和“1”;(4)如此重复,直至每个组只剩下一个信源符号为止;(5)信源符号所对应的码子即为费诺码。五、实验步骤1.根据实验原理,设计费诺编码程序;2.输入一组信源消息符号概率,可以求费诺编码,平均码长和编码效率。六、实验注意事项1.MATLAB语言课下多复习,尽量采用模块化编程方法,通过函数调用形式运行程序;2.仔细理解、体会费诺编码。七、实验结果费诺编程程序:clc;陕西科技大学实验报告第页clearall;N=input('输入信源符号的个数:');s=0;l=0;H=0;fori=1:Nfprintf('第%d个',i);p(i)=input('p=');if(p(i)=0)||(p(i)=1)error('不符合分布概率');ends=s+p(i);H=H+(-p(i)*log2(p(i)));endif(s=0.999999||s=1.000001)error('不符合分布概率')endfori=1:N-1forj=i+1:Nifp(i)p(j)m=p(j);p(j)=p(i);p(i)=m;endendendx=f1(1,N,p,1);fori=1:NL(i)=length(find(x(i,:)));l=l+p(i)*L(i);endn=H/l;fprintf('按概率降序排列的码子:\n');disp(x)fprintf('平均码长:\n');disp(l)fprintf('编码效率:\n');disp(n)functionx=f1(i,j,p,r)globalx;x=char(x);if(j=i)return;elseq=0;fort=i:jq=p(t)+q;y(t)=q;endfort=i:jv(t)=abs(y(t)-(q-y(t)));endfort=i:jif(v(t)==min(v))fork=i:tx(k,r)='0';endfork=(t+1):jx(k,r)='1';endd=t;f1(i,d,p,r+1);f2(d+1,j,p,r+1);f1(d+1,j,p,r+1);f2(i,d,p,r+1);elseendendendreturn;functionx=f2(i,j,p,r)globalx;x=char(x);if(j=i)return;elseq=0;fort=i:jq=p(t)+q;y(t-i+1)=q;endfort=1:j-(i-1)v(t)=abs(y(t)-(q-y(t)));endfort=1:j-(i-1)if(v(t)==min(v))d=t+i-1;陕西科技大学实验报告第页fork=i:dx(k,r)='0';endfork=(d+1):jx(k,r)='1';endf2(d+1,j,p,r+1);f1(i,d,p,r+1);f2(i,d,p,r+1);f1(d+1,j,p,r+1);elseendendend陕西科技大学实验报告第页八、思考题举例说明费诺编码在现实中实际应用,列举一个例子,并简要说明?通过费诺编码,可以在噪声下有效可靠地传输信息,使信源冗余减少,使信息更加经济、有效地传输,是比香农编码更优的一种编码方式,通过程序来实现该编码更加有效的提高了编码的效率,缩短了计算编码所用的时间,从而使得信息的可靠性大大的提高了。

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功