信息论与编码实验程序与结果图(matlab)_第1页
信息论与编码实验程序与结果图(matlab)_第2页
信息论与编码实验程序与结果图(matlab)_第3页
信息论与编码实验程序与结果图(matlab)_第4页
信息论与编码实验程序与结果图(matlab)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上结果图信源熵实验程序:clc; close all; clear;linwidd=1fontt=20p0=0; pd=1; N=20p=linspace(p0,pd,N);I=-log2(p);plot(p,I,k);title(I=-log2(p)函数图);xlabel(p);ylabel(I); clc; close all; clear;linwidd=1fontt=20p0=0; pd=1; N=20p=linspace(p0,pd,N);H=-p.*log2(p)-(1-p).*log2(1-p);plot(p,H,k);title(H=-p.*log2(p

2、)-(1-p).*log2(1-p)函数图);xlabel(p);ylabel(H);信道容量实验程序:clc; close all; clear;linwidd=1fontt=20p0=0; pd=1; N=20p=linspace(p0,pd,N);r=4c=log2(r)+(1-p).*log2(1-p)+p.*log2(p/(r-1);plot(p,c,k);title(强对称信道容量数值模拟图);有噪信道编码-费诺不等式程序: 结果图clc;close all;clear;r=3;p0=0.00001;pd=0.99999;N=2000;p=linspace(p0,pd,N);q=1

3、-p;H=-p.*log2(p)-q.*log2(q);hold onHH=H+p.*log2(r-1)title(费诺不等式示意图);box onxlabel(PE);ylabel(H(X/Y);plot(p,HH,k:)hold onhold onfill(p,1,HH,0,0.6,0.6,0.6)stem(r-1)/r,1.59,-.r)text(0.66,1.6,最大值)专心-专注-专业香农编码程序:clc;clear all;close all;p=0.2 0.19 0.18 0.17 0.15 0.1 0.01;if sum(p)1 error(输入概率不符合概率分布)endp i

4、ndex=sort(p,descend);n=length(p);pa=zeros(n,1);for ii=2:n pa(ii)=pa(ii-1)+p(ii-1);endk=ceil(-log2(p);%码字长度计算c=cell(1,n);%生成元胞数组,用来存不同长度的码字for ii=1:n cii=; tmp=pa(ii); for jj=1:k(ii) tmp=tmp*2; if tmp=1 tmp=tmp-1; %ciijj=1; cii=char(cii),1; else %ciijj=0; cii=char(cii),0; end endendc(index)=c;%换回原来的顺

5、序codelength=zeros(1,n);%码长初始化for ii=1:n fprintf(第,num2str(ii),个消息对应为); disp(cii);%显示码字 codelength(ii)=length(cii);%endn_average=sum(codelength.*p) %平均码长fprintf(平均码长为);disp(n_average);H=-sum(p.*log2(p);fprintf(信源熵);disp(H);x=H/(n_average.*log2(2)fprintf(编码效率);disp(x);figureh=stem(1:n,codelength);%axi

6、s(0 n+1 0 n+1);set(h,MarkerFaceColor,blue,linewidth,2)实验结果 结果图第1个消息对应为000第2个消息对应为001第3个消息对应为011第4个消息对应为100第5个消息对应为101第6个消息对应为1110第7个消息对应为n_average = 3.1400平均码长为 3.1400信源熵 2.6087x =0.8308编码效率 0.8308费诺编码程序: end for rr=2:2:needgroupnum*2 index2=index_aftergroup(rr,:); for ii=index2(1):index2(2) cii=cha

7、r(cii),1; end end flag=0; index_p=; for rr=1:needgroupnum*2indextmp=index_aftergroup(rr,:); if(indextmp(2)-indextmp(1)+11) flag=1; index_p=index_p;indextmp; end end jj=jj+1;endc(index)=c;codelength=zeros(1,N);for ii=1:N fprintf(第,num2str(ii),个消息对应为); disp(cii); codelength(ii)=length(cii);endn_averag

8、e=sum(codelength.*p)fprintf(平均码长为);disp(n_average);H=-sum(p.*log2(p);fprintf(信源熵);disp(H);x=H/(n_average.*log2(2)fprintf(编码效率);disp(x);figureh=stem(1:N,codelength);axis(0 N+1 0 N+1);set(h,MarkerFaceColor,blue,linewidth,2)endfunction index_aftergroup=func_group(p,index_p)index=index_p(1):index_p(2);n

9、=length(index);p0=p(index);sump0=sum(p0);half_sump0=sump0/2;for ii=1:n-1 tmpsum=sum(p0(1:ii); if abs(tmpsum-half_sump0)1&B(i,j)=B(i-1,j) d=d+1; else d=1; end B(B(n,j+1),j+1)=-1; temp=B(:,j+1); x=find(temp=B(i,j); ENDc(i)=ENDc1(x(d); endy=B(n,j+1);ENDc(t-1)=char(ENDc1(y),1;ENDc(t)=char(ENDc1(y),0;t=t

10、+1;ENDc1=ENDc;endA%排序后的原概率序列ENDc%编码结果for i=1:n a,b=size(char(ENDc(i); L(i)=b;endavlen=sum(L.*A)%平均码长selen=(L-avlen).2%?mselen=sum(selen).*A)%码长均方差H=-A*(log2(A)%?P=H/avlen%?figure;subplot(2,1,1)h=stem(1:n,selen);%axis(0 n+1 0 max(selen)+0.1);set(h,MarkerFaceColor,blue,linewidth,2)xlabel(信源向上排);ylabel

11、(方差值selen);hold onplot(0:n+1,mselen*ones(1,n+2),r,linewidth,2);hold offlegend(每个信源码长与平均码长的方差,码长均方差);A=0.4 0.2 0.2 0.1 0.1;A=sort(A,descend);T=A;m,n=size(A);B=zeros(n,n-1);B(:,1)=T;r=B(n,1)+B(n-1,1);T(n-1)=r;T(n)=0;T=sort(T,descend);t=n-1;for j=2:n-1 B(1:t,j)=T(1:t); K=find(T=r); B(n,j)=K(end); %B(n,

12、j)=K(1); r=(B(t-1,j)+B(t,j); T(t-1)=r; T(t)=0; T=sort(T,descend); t=t-1;endB;ENDc1=sym(1,0);ENDc=ENDc1;t=3;d=1;for j=n-2:-1:1 for i=1:t-2 if i1&B(i,j)=B(i-1,j) d=d+1; else d=1; end B(B(n,j+1),j+1)=-1; temp=B(:,j+1); x=find(temp=B(i,j); ENDc(i)=ENDc1(x(d); endy=B(n,j+1);ENDc(t-1)=char(ENDc1(y),1;ENDc

13、(t)=char(ENDc1(y),0;t=t+1;ENDc1=ENDc;endA%排序后的原概率序列ENDc%编码结果for i=1:n a,b=size(char(ENDc(i); L(i)=b;endavlen=sum(L.*A)%平均码长selen=(L-avlen).2%?mselen=sum(selen).*A)%码长均方差H=-A*(log2(A)%?P=H/avlen%?subplot(2,1,2)h=stem(1:n,selen);%axis(0 n+1 0 max(selen)+0.1);set(h,MarkerFaceColor,blue,linewidth,2)xlabel(信源向下排);ylabel(方差值selen);hold onplot(0:n+1,mselen*ones(1,n+2),r,linewidth,2);hold offlegend(每个码长与平均码长的方差,码长均方差);实验结果 A = 0.4000 0.2000 0.2000 0.1000 0.1000ENDc = 11, 1, 0, 101, 100avlen = 1.8000selen = 0.0400

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论