



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算信源熵的MATLAB源程序function H=entropy(P,r) if (length(find(P<=0)=0) error('Not a prob.vector,negative component'); end if(abs(sum(P)-1)>10e-10) error('Not a prob.vector,component do not add up to 1'); end H=(sum(-P.*log2(P)/(log2(r)+eps);香农编码的MATLAB源程序function s,L,q=shannon(p)%if(l
2、ength(find(p<=0)=0) % error('Not a prob.vector,negative component');%end%if(abs(sum(p)-1)>10e-10) % error('Not a prob.vector,component do not add up to 1')%endn=length(p);x=1:n;p,x=array(p,x);l=ceil(-log2(p);P(1)=0;n=length(p);for i=2:n P(i)=P(i-1)+p(i-1);endfor i=1:n for j=1:l
3、(i) temp(i,j)=floor(P(i)*2); P(i)=P(i)*2-temp(i,j); endends=;for i=1:n for j=1:l(i) t=temp(i,j); % if(temp(i,j)=0) % W(i,j)=48; s=s num2str(t); %else %W(i,j)=49; % end end s=s ' 'endL=sum(p.*l);H=entropy(p,2);q=H/L;for i=1:n Bi=i;ends0='很好!输入正确,编码结果如下:'s1='Shannon 编码所得码字W:'s2
4、='Shannon 编码平均码字长度L:'s3='Shannon 编码的编码效率q:'disp(s0);disp(s1),disp(B),disp(s);disp(s2),disp(L);disp(s3),disp(q);费诺编码的MATLAB源程序functionW,L,q=fano(P)if(length(find(P<=0)=0) error('Not a prob.vector,negative component');endif(abs(sum(P)-1)>10e-10) error('Not a prob.vect
5、or,component do not add up to 1');endn=length(P);x=1:n;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(current_P)=1) break; end end l(i)=
6、length(find(abs(W(i,:)=0);endL=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='Fano 编码的编码效率 q:'disp
7、(s0);disp(s1),disp(B),disp(W);disp(s2),disp(L);disp(s3),disp(q);霍夫曼编码的MATLAB源程序function W,L,q=huffman(P)if(length(find(P<=0)=0) error('Not a prob.vector,negative component');endif(abs(sum(P)-1)>10e-10) error('Not a prob.vector,component do not add up to 1');endn=length(P);p=P;m
8、ark=zeros(n-1,n);for i=1:n-1 p,num=sort(p); mark(i,:)=num(1:n-i+1),zeros(1,i-1); p=p(1)+p(2),p(3:n),1;endfor i=1:n-1 table(i,:)=blanks(n*n);endtable(n-1,n)='1'table(n-1,2*n)='0'for i=2:n-1 table(n-i,1:n-1)=table(n-i+1,n*(find(mark(n-i+1,:)=1)-(n-2):n*(find(mark(n-i+1,:)=1); table(n-i
9、,n)='1' table(n-i,n+1:2*n-1)=table(n-i,1:n-1); table(n-i,2*n)='0' for j=1:i-1 table(n-i,(j+1)*n+1:(j+2)*n)=table(n-i+1,n*(find(mark(n-i+1,:)=j+1)-1)+1:n*find(mark(n-i+1,:)=j+1); endend for i=1:n W(i,1:n)=table(1,n*(find(mark(1,:)=i)-1)+1:find(mark(1,:)=i)*n); l(i)=length(find(abs(W(i,:)=32); end L=sum(P.*l); H=entropy(P,2); q=H/L; for i=1:n Bi=i; end; m,n=size(W); W=reshape(W',1,m*n); s0='很好!输入正确,编码结果如下:' s1='Huffman
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年服装、鞋帽加工机械项目建议书
- 2025年种植施肥机械项目合作计划书
- 2025年C301-I型低压甲醇合成催化剂项目发展计划
- 电子商务物流信息的存储效率提升
- 员工办公自动化系统使用指南
- 幼儿园教育故事小熊的圣诞节
- 2025年DVD播放设备合作协议书
- Sulfamonomethoxine-sodium-Standard-生命科学试剂-MCE
- 工作解决方案方案
- 艺术品展览销售合作合同
- 如何让孩子积极参与家务劳动
- 个案护理工作中的病情观察与风险评估
- 研发项目的风险识别与应对策略分析方法
- 小学生素质发展报告单
- 供应链行业年终述职报告总结
- 临时用地土地复垦方案
- 肝硬化中医护理查房
- QAV-1自我监查确认表
- 防范非煤矿山典型多发事故60条措施培训
- 部编版语文二年级上册第1单元核心素养教案
- 矿山机电知识培训课件
评论
0/150
提交评论