信息论实验报告2信源编码(共8页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《信息论实验报告2信源编码(共8页).doc》由会员分享,可在线阅读,更多相关《信息论实验报告2信源编码(共8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上成绩辽宁工程技术大学上机实验报告实验名称信源编码院系姓名实验目的简述本次实验目的: 1、 理解并掌握香农编码2、 理解并掌握费诺编码3、 理解并掌握霍夫曼编码实验准备你为本次实验做了哪些准备: 认真阅读信息论教材,熟悉三种编码的原理以及相应的MATLAB函数指令实验进度本次共有 6 个练习,完成 6 实验总结日本次实验的收获、体会、经验、问题和教训:1、香农编码Matlab源码function W,L,q=shannon(p) if (length(find(p10e-10) error(Not a prob.vector,component do not add u
2、p to 1); end n=length(p); x=1:n;p,x=array(p,x);% 1)排序l=ceil(-log2(p); % 2)计算代码组长度lP(1)=0;n=length(p);%3)计算累加概率Pfor i=2:n P(i)=P(i-1)+p(i-1); endfor i=1:n % 4)求得二进制代码组W for j=1:l(i) temp(i,j)=floor(P(i)*2); P(i)=P(i)*2-temp(i,j); endendfor i=1:n for j=1:l(i) if (temp(i,j)=0); W(i,j)=48; else W(i,j)=4
3、9; end endendL=sum(p.*l); % 计算平均码字长度 H=entropy(p,2); % 计算信源熵 q=H/L; % 计算编码效率for i=1:n Bi=i; endn,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 编码平均码字长度L:; s3=Shannon 编码的编码效率q:;disp(s0);disp(s1),disp(B),disp(
4、W);disp(s2),disp(L);disp(s3),disp(q);function H=entropy(P,r)if (length(find(P10e-10) error(Not a prob.vector,component do not add up to 1); end H=(sum(-P.*log2(P)/(log2(r)+eps);2、香农编码数值试验算例单符号离散无记忆信源= 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 600 01 100
5、101 1101 11110 Shannon 编码平均码字长度L: 2.7000Shannon 编码的编码效率q: 0.8975W =00 01 100 101 1101 11110 L = 2.7000q = 0.89753、费诺编码Matlab源码(1)编写M文件compare.mfunctionnext_P,code_num,next_index=compare(current_P,current_index)n=length(current_P);add(1)=current_P(1);for i=2:n % 1)求概率的依次累加和add(i)=0; add(i)=add(i-1)+c
6、urrent_P(i); ends=add(n); % 2)求概率和最接近的两小组for i=1:n temp(i)=abs(s-2*add(i); endc,k=min(temp);if (current_index=k) next_index=current_index; code_num=48; next_P=current_P(1:k);else next_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(fin
7、d(P10e-10) error(Not a prob.vector,component do not add up to 1) end n=length(P); x=1:n;% 1)排序P,x=array(P,x);for i=1:n current_index=i;j=1;current_P=P; while 1 next_P,code_num,next_index=compare(current_P,current_index); current_index=next_index;current_P=next_P; W(i,j)=code_num; j=j+1; if (length(c
8、urrent_P)=1) break; endl(i)=length(find(abs(W(i,:) =0);end % 得到各码字的长度L=sum(P.*l); % 计算平均码字长度H=entropy(P,2); % 计算信源熵q=H/L; % 计算编码效率for i=1:n Bi=i; endn,m=size(W);TEMP=32*ones(n,5);W=W,TEMP;W=W;n,m=size(W);W=reshape(W,1,n*m);W=sprintf(%s, W);s0=很好!输入正确,编码结果如下:;s1=Fano 编码所得码字W:;s2=Fano 编码平均码字长度L:;s3=Fa
9、no 编码的编码效率q:;disp(s0);disp(s1),disp(B),disp(W);disp(s2),disp(L);disp(s3),disp(q); function H=entropy(P,r)if (length(find(P10e-10) error(Not a prob.vector,component do not add up to 1); end H=(sum(-P.*log2(P)/(log2(r)+eps);4、费诺编码数值试验算例单符号离散无记忆信源=P=1/4,1/4,1/8,1/8,1/16,1/16,1/16,1/16;W,L,q=fano(P)很好!输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息论 实验 报告 信源 编码
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内