信息论实验报告2信源编码.docx

信息论实验报告2信源编码.docx

ID:62239815

大小:41.24 KB

页数:10页

时间:2021-04-22

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

《信息论实验报告2信源编码.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、。辽宁工程技术大学上机实验报告成绩实验名称信源编码院系姓名简述本次实验目的:实验1、理解并掌握香农编码目的2、理解并掌握费诺编码3、理解并掌握霍夫曼编码实验你为本次实验做了哪些准备:认真阅读《信息论》教材,熟悉三种编码的原理以及相应的MATLAB函数指令准备实验本次共有6个练习,完成6进度-可编辑修改-实验总结。本次实验的收获、体会、经验、问题和教训:1、香农编码Matlab源码function[W,L,q]=shannon(p)if(length(find(p<=0))~=0)error('Notaprob.vector,negativecomponent');endif

2、(abs(sum(p)-1)>10e-10)error('Notaprob.vector,componentdonotaddupto1');endn=length(p);x=1:n;[p,x]=array(p,x);%1)排序l=ceil(-log2(p));%2)计算代码组长度lP(1)=0;n=length(p);%3)计算累加概率Pfori=2:nP(i)=P(i-1)+p(i-1);endfori=1:n%4)求得二进制代码组Wforj=1:l(i)temp(i,j)=floor(P(i)*2);P(i)=P(i)*2-temp(i,j);endendfori=1:n

3、forj=1:l(i)if(temp(i,j)==0);W(i,j)=48;elseW(i,j)=49;endendendL=sum(p.*l);%计算平均码字长度H=entropy(p,2);%计算信源熵q=H/L;%计算编码效率fori=1:nB{i}=i;end[n,m]=size(W);TEMP=32*ones(n,6);W=[W,TEMP];W=W';[n,m]=size(W);W=reshape(W,1,n*m);W=sprintf('%s',W);s0='很好!输入正确,编码结果如下:';s1='Shannon编码所得码字W:';s2='Shannon编码平均码

4、字长度L:';s3='Shannon编码的编码效率q:';disp(s0);disp(s1),disp(B),disp(W);disp(s2),disp(L);disp(s3),disp(q);functionH=entropy(P,r)if(length(find(P<=0))~=0)%判断是否符合概率分布条件error('Notaprob.vector,negativecomponent');endif(abs(sum(P)-1)>10e-10)-可编辑修改-。error('Notaprob.vector,componentdonotaddupto1');endH=(su

5、m(-P.*log2(P)))/(log2(r)+eps);2、香农编码数值试验算例单符号离散无记忆信源Xa1,a2,a3,a4,a5,a6p(X)=0.2,0.15,0.1,0.050.25,0.25,p=[0.25,0.25,0.2,0.15,0.1,0.05];[W,L,q]=shannon(p)很好!输入正确,编码结果如下:Shannon编码所得码字W:[1][2][3][4][5][6]0001100101110111110Shannon编码平均码字长度L:2.7000Shannon编码的编码效率q:0.8975W=0001100101110111110L=2.70

6、00q=0.89753、费诺编码Matlab源码(1)编写M文件compare.mfunction[next_P,code_num,next_index]=compare(current_P,current_index)n=length(current_P);add(1)=current_P(1);fori=2:n%1)求概率的依次累加和add(i)=0;add(i)=add(i-1)+current_P(i);ends=add(n);%2)求概率和最接近的两小组fori=1:ntemp(i)=abs(s-2*add(i));end[c,k]=min(temp);if(cur

7、rent_index<=k)next_index=current_index;code_num=48;-可编辑修改-。next_P=current_P(1:k);elsenext_index=current_index-k;code_num=49;next_P=current_P((k+1):n);end(2)编写M文件fano.mfunction[W,L,q]=fano(P)if(length(find(P<=0))~=0)error('Notaprob.vector,negativecomponen

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

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

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