1、1信息论与编码实验报告实验一:计算离散信源的熵一、实验设备:1、计算机2、软件:Matlab二、实验目的:1、熟悉离散信源的特点;2、学习仿真离散信源的方法3、学习离散信源平均信息量的计算方法4、熟悉 Matlab 编程;三、习题:1. 甲地天气预报构成的信源空间为: 11(), 842Xpx 云 云 乙地信源空间为: 17(),8Ypy 云求此两个信源的熵。求各种天气的自信息量。代码:x=1/2,1/4,1/8,1/8;y=7/8,1/8;HX=sum(-x.*log2(x)HY=sum(-y.*log2(y)IX=-log2(x)IY=-log2(y) 答案: ()1.75;()0.543
2、6HXY2、 某信息源的符号集由 A、B、C、D、E 组成,设每一符号独立出现,其出现的概率分别为,1/4, 1/8,1/8 ,3/16,5/16 ,试求该信源符号的平均信息量。代码:x=1/4,1/8,1/8,3/16,5/16;HX=sum(-x.*log2(x)答案:H(X) = 2.2272bit/符号3、设有四个消息分别以概率 1/4,1/8,1/8,1/2 传送,每一消息的出现是相互独立的。试计算其平均信息量。代码:x=1/4,1/8,1/8,1/2;HX=sum(-x.*log2(x)答案:H(X) =1.75bit/符号24. 设一个二元信源(只有 0 和 1 两种符号)其概率
3、空间为:(),Xpxp 编程画出 H 与 p 的关系,并说明当 P 呈什么分布时,平均信息量达到最大值。(说明:H=-p.*log2(p)-(1-p).log2(1-p);)代码:p= 1/1000000:1/1000:1;H=-p.*log2(p)-(1-p).*log2(1-p);plot(p,H) grid on xlabel(p);ylabel(HP);图:实验二:验证熵的可加性与强可加性1. 【例 2.6】有一离散无记忆信源 123(),4aXpx 验证二次扩展信源 的熵等于离散信源 的熵的 2 倍,即2X2()()HX代码:x=1/2,1/4,1/4;3hx=sum(x.*log2
4、(1./x)x2=1/4,1/16,1/16,1/8,1/8,1/8,1/16,1/8,1/16hx2=sum(x2.*log2(1./x2)答案: 2()1.5;()3.0HXX2. 验证两个统计独立的信源 ,验证:,Y()()Y其中:123(),4aXpx 123(),bYpy 代码:x=1/2,1/4,1/4;y=1/3,1/3,1/3;xy=1/6,1/6,1/6,1/12,1/12,1/12,1/12,1/12,1/12hx=sum(x.*log2(1./x)hy=sum(y.*log2(1./y)Hxy=sum(xy.*log2(1./xy)答案: ()1.5,()1.58()3.
5、085HXYHXY3、条件熵的计算与熵的强可加性验证离散二维平稳信源,满足: 12121()()(|)某一离散二维平稳信源 0124(),369Xpx 其联合概率分布 为:1212()pXX2Xj0 1 2012编程计算:480317641) 联合熵 12()HX2) 条件熵 |3) 验证: 12121()()(|)HX代码:x1=11/36,4/9,1/4;x2=11/36,4/9,1/4;b=1/4,1/18,0;1/18,1/3,1/18;0,1/18,7/36;HXY=0;for i=1:size(b,1)for j=1:size(b,2)if b(i,j)0HXY=HXY-b(i,j
6、).*log2(b(i,j);endendendHXYHx1=sum(x1.*log2(1./x1)Hx2=sum(x2.*log2(1./x2)b0=b(1,:);b1=b(2,:);b2=b(3,:);x1x2=b0./x2;b1./x2;b2./x2;Hx1x2=0;for i=1:size(x1x2,1)for j=1:size(x1x2,2)if x1x2(i,j)0Hx1x2=Hx1x2-b(i,j).*log2(x1x2(i,j);endendendHx1x2答案: 1212 21().546;(|)0.87(|).4HXHX实验三:离散信道的平均互信息的计算1. 【习题 3.1
7、】设信源512()0.6,4Xxp通过一干扰信道,接收到符号为 ,其信道矩阵为:12,Yy5163,4P1) 求信源 X 中事件 和 分别含有的自信息;1x22) 收到消息 后,获得的关于 的信息量;(,)jy(1,2)ix3) 求信源 X 和输出变量 Y 的信息熵;4) 信道疑义度 和噪声熵 ;(|)H(|)X5) 接收到消息 Y 后获得的平均互信息;代码:x=0.6,0.4;p=5/6,1/6;3/4,1/4;Ix1=log2(1./(x(1,1)Ix2=log2(1./(x(1,2)pxy=x(1,1)*p(1,:);x(1,2)*p(2,:);py=x*p(:,1),x*p(:,2);
8、px_y=pxy(:,1)/py(1,1),pxy(:,2)/py(1,2);I=log2(p./py;py)Hx=sum(x.*log2(1./x)Hy=sum(py.*log2(1./py)Hx_y=sum(sum(pxy.*log2(1./px_y)Hy_x=sum(sum(pxy.*log2(1./p)Ixy=sum(sum(pxy.*log2(p./py;py)答案:121212.()0.73().392;589,;06,(;)0.93,(;)0.3193.74(|)6(|).455.;0.74IxIxyyIxyIxyHXHYYXI2. 二元信道的互信息与信源分布的关系有二元信源:
9、01()Xpx有二元信道,其传递矩阵为:6, 其中 ,即传递矩阵 1pP0.2p0.82P编程实现下面题目:1) 画出平均互信息 随信源分布 的关系曲线,并求出最大平均互信息。(;)IXY验证:信道容量 C(最大平均互信息)满足: 1()CHp2)验证:信道容量 C(最大平均互信息)满足: 1()Hp代码:syms w;x=w,1-w;p=0.8,0.2;0.2,0.8;pxy=x(1,1)*p(1,:);x(1,2)*p(2,:);py=x*p(:,1),x*p(:,2);px_y=pxy(:,1)/py(1,1),pxy(:,2)/py(1,2);Ix_y=sum(sum(pxy.*log
10、2(p./py;py);ezplot(w,Ix_y,0,1,0,1);xlabel(变量 w);ylabel(平均互信息量 I)title(平均互信息量与 w 的函数关系)grid on;图:0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.2-0.100.10.20.30.40.5与 与 w与与与与与与I与 与 与 与 与 与 与 w与 与 与 与 与实验四:离散信道及其信道容量一、实验设备:1、计算机2、软件:Matlab7二、实验目的:1、了解信道传输概率的状态图和信道转移概率矩阵特点;2、了解什么是信道容量和最佳输入概率分布;3、列出计算信道容量和平均
11、互信息的计算步骤;4、熟悉 Matlab 编程;三、习题:计算下面几类信道的信道容量 C:1 无损信道/2003/51/Plogr代码:p1=1/2,1/2,0,0,0,0;0,0,3/5,3/10,1/10,0;0,0,0,0,0,1;C1=sum(log2(size(p1(:,1)答案:c=1.5852 无噪有损信道10PlogCs代码:p2=1,0;1,0;0,1;C2=sum(log2(size(p2(1,:)答案:c=13 对称离散信道【例 3.6】163P1log()sCsHp代码:p3=1/3,1/3,1/6,1/6;1/6,1/6,1/3,1/3;C3=sum(log2(siz
12、e(p3(1,:)-sum(p3(1,:).*log2(1./p3(1,:)答案:c=0.08174 一般信道,其信道矩阵为: 12463184P8求 1)其信道容量 ,2)最佳输入分布C()ipa代码:答案:4. 0.319,()0.172,.395,0.43)beta =-1.9732-1.1610-0.8927pb =0.20530.36050.4342pa =0.17020.39550.4343实验五:连续信源的差熵与波形信道的信道容量一、实验设备:1、计算机2、软件:Matlab二、实验目的:1、熟悉连续信源的特点;2、学习仿真连续信源的方法3、学习连续信源平均信息量的计算方法4、熟
13、悉 Matlab 编程;三、习题1、设在平均功率受限高斯加性波形信道中,信道带宽为 3kHz, 又设( 信号功率+噪声功率)/ 噪声功率=10dB。 (即,其中 是以 10 为底的对数) 。0lg()10snPdBlg1) 试计算该信道传送的最大信息率(单位时间) ;2) 若信噪比降为 5dB,要达到相同的最大信息传输率,信道带宽应是多少?代码:syms x,a=4;b=8;p=1/(b-a);f=p*(log2(p)/log2(2);hx=-int(f,x,a,b);hx=double(hx);hx;m=3;o=2;p2=(1/(2*pi*o2)(1/2)*exp(-(x-m)2/(2*o2
14、);hx2=log2(2*pi*exp(1)*o2)/2;hx2=double(hx2);9p3=exp(-x/4)/4;hx3=log2(4*exp(1);p4=exp(-abs(x)/4)/8;hx4=log2(4*2*exp(1);hxhx2hx3hx4W=3000;C=W*log2(10);Rt=C/1W2=Rt/log2(1+10(5/10)答案:1. 最大信息传输率 965.784(/)tRbits2. 带宽应为: W = 4.8439e+003实验六:无失真信源编码与保真度准则下的信源编码一、实验设备:1、计算机2、软件:Matlab二、实验目的:1、理解无失真信源编码与保真度准
15、则下的信源编码的物理意义;2、理解无失真信源编码与保真度准则下的信源编码的区别;3、熟悉 Matlab 编程;三、习题:1、 (习题 5.4)若有一信源, ,每秒钟发出 2.66 个信源符号。将此信源的输出符号送入某一个二124()5sSP元信道中进行传输(假设信道是无噪无损的) ,而信道每秒钟只传递两个二元符号。试问信源不通过编码能否直接与信道连接?若通过适当编码能否在此信道中进行无失真传输?若能连接,试说明如何编码并说明原因。代码:Ps=4/5,1/5;Is=sum(log2(1./Ps)C=log2(2);Ix=2*C答案:Is =2.6439Ix =2102、 (习题 7.1)一个四元对称信源 ,接收符号为 ,其失真矩阵为0,12,3()44UPu0,123V,求 和 。 010DmaxDin代码:r=2;q=2.66;L=log2(q)pu=1/4 1/4 1/4 1/4;D=0 1 1 1;1 0 1 1;1 1 0 1;1 1 1 0;V=0 1 2 3;for i=1:size(pu,1);j=1:size(D,2);Dmin=sum(pu(1,i)*min(D(j,:);Dmax=min(sum(pu(1,i)*D(:,j);endDminDmax答案:L =1.4114Dmin =0Dmax =0.7500