大三下信息论实验报告.docx
- 文档编号:6188246
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:17
- 大小:171.24KB
大三下信息论实验报告.docx
《大三下信息论实验报告.docx》由会员分享,可在线阅读,更多相关《大三下信息论实验报告.docx(17页珍藏版)》请在冰豆网上搜索。
大三下信息论实验报告
实验1绘制二进熵函数曲线、串联信道容量曲线
一、实验内容
用Excel或Matlab软件制作二进熵函数曲线、串联信道容量曲线。
二、实验环境
1.计算机
2.Windows2000或以上
3.MicrosoftOffice2000或以上
4.Matlab6.0或以上
三、实验目的
1.掌握Excel的数据填充、公式运算和图表制作
2.掌握Matlab绘图函数
3.掌握、理解熵函数表达式及其性质
四、实验要求
1.提前预习实验,认真阅读实验原理以及相应的参考书。
2.认真高效的完成实验,实验中服从实验室管理人员以及实验指导老师的管理。
3.认真填写实验报告。
五、实验原理
1.Excel的图表功能(略)
2.信源熵的概念及性质
3.串联信道的信道容量(图1)。
图1三个二元对称信道(BSC)的串联
串联
信道转移矩阵
信道容量
I
I,II
I,II,III
p=0.00001:
0.001:
0.9999;
h=Hp(p);
plot(p,h);
title('熵函数')
p=0.00001:
0.001:
0.9999;
c=1-Hp(p.^3+3.*p.*(1-p).^2);
plot(p,c);
title('信道容量')
p=0.00001:
0.001:
0.9999;
c1=1-Hp(p);
c2=1-Hp(2*p.*(1-p));
c3=1-Hp(p.^3+3.*p.*(1-p).^2);
subplot(3,1,1)
plot(p,c1);
title('CⅠ');
subplot(3,1,2)
plot(p,c2);
title('CⅠⅡ');
subplot(3,1,3)
plot(p,c3);
title('CⅠⅡⅢ');
实验4容量代价函数的计算程序设计
1、问题的提出:
假定一个离散无记忆信源(DMC)的输入符号集为AX={1,2,...,r},输出符号集为AY={1,2,....,s},信道的转移概率矩阵P(Y|X):
{p(y|x)};该信道不是免费的,其输入代价为b(x)。
容量代价函数C(β)=supCn(β)/n
n
如果单位时间内占用信道的平均代价必须≤β,则C(β)的值表示信道单位时间内能够可靠传输的最大信息量。
计算容量代价函数C(β)在通信领域,密码学等方面均有着很重要的用途。
对于一般信道要求出C(β)非常困难,计算过程繁琐,很容易计算错误。
2、解决问题的原理方法:
1.C()的一般计算方法:
计算bmin是很容易的。
;
当bmin£b£bmax时,设试验信源X达到了C(b),即C(b)=max{I(X;Y):
E([b(x)]=b}。
在数学上,就是在约束条件下:
(1)
并且P(x)³0
(2)
的约束下求平均互信息量
的条件极大值。
为此引入待定常数S和m,并作辅助函数
(3)
其中
由
得,
(4)
上式两边同乘以p(x)并对x求和。
即C(b)=loge+Sb+m(5)
显然(4)提供r个方程,再加上
(1)
(2)的方程,共r+2个方程;而有r个未知数p(x)、及S、m,共r+2未知数,显然可以求解。
一般来说,S、m是b的函数。
(1)
(2)(4)组成的r+2个方程是一个非常复杂的非线性方程组。
(4)式可以写成矩阵形式:
2.一般非线性方程组求解方法:
下面介绍求非线性方程组一组是实根的梯度法:
设非线性方程组为
并定义目标函数为:
则梯度法的计算过程如下:
(1)选取一组初值x0,x1,...,xn-1
(2)计算目标函数值F
(3)若F (4)计算目标函数在(x0,x1,...,xn-1)的偏导数 再计算 (5)计算 其中l=F/D。 重复 (2)~(5)直到满足精度要求为止。 在上述过程中,如果D=0,则说明遇到了目标函数的局部极值点,此时可改变初值在试试。 在我们的问题中,不会遇到该问题。 另在计算中我们限制一个最大循环次数,以防D过小,使计算时间过长的情况。 3、解决问题的具体方法: 用Matlab画出容量代价函数C(b)的曲线图。 为了计算一给定代价信道的容量函数,要用3个MATLAB函数,如下: ⏹Cfun CFUN代价容量方程组,用于信道容量 x输入,一行m+2列(1*(m+2) beta平均代价,标量 b代价矩阵,一行m列(1*m) Py_x转移概率矩阵,m行n列(m*n) 代码: functionF=Cfun(x,beta,b,Py_x) %CFUN代价容量方程组,用于信道容量 %x输入,一行m+2列(1*(m+2) %beta平均代价,标量 %b代价矩阵,一行m列(1*m) %Py_x转移概率矩阵,m行n列(m*n) sizePy_x=size(Py_x); m=sizePy_x (1); n=sizePy_x (2); F=zeros(m+2,1); i=1: m; P_y=x(1,1: m)*Py_x; TP_y=zeros([m,n]); forj=1: m TP_y(j,: )=P_y; end TP_y=TP_y'; t=Py_x(i,: )'./TP_y; t(find(t==0))=1; F(i)=sum(Py_x(i,: )'.*log2(t))-log2(exp (1))-x(m+1)*b(i)-x(m+2); F(m+1)=1-sum(x(1,1: m)); F(m+2)=beta-sum(x(1,1: m).*b); ⏹C C求信道容量 beta平均代价,标量 b代价矩阵,一行m列(1*m) Py_x转移概率矩阵,m行n列(m*n) 代码: functionc=C(beta,b,Py_x) %C求信道容量 %beta平均代价,标量 %b代价矩阵,一行m列(1*m) %Py_x转移概率矩阵,m行n列(m*n) sizeB=size(b); sizePy_x=size(Py_x); if~(sizeB (2)==sizePy_x (1)) disp('参数b的列数应和参数Py_x的行数相同'); c=-1; return; end m=sizePy_x (1); n=sizePy_x (2); sumPy=sum(Py_x'); if~(all(Py_x>=0)&all(sumPy==1)) disp('参数Py_x的每个元素都要大于或等于0,且每行的和应等于1'); c=-1; return; end minBeta=min(b); ifbeta disp('参数beta太小'); c=-1; return; end x0=ones(1,m+2)./m; options=optimset('TolFun',0.000001,'Display','off'); r=fsolve(@Cfun,x0,options,beta,b,Py_x); s=r(m+1); u=r(m+2); c=log2(exp (1))+s*beta+u; end ⏹plotCBeta PLOTCBETA画信道的代价容量曲线 b代价向量,一行m列(1*m) Py_x转移概率矩阵,m行n列(m*n) 代码: function[minb,maxb]=plotCBeta(b,Py_x) %PLOTCBETA画信道的代价容量曲线 %b代价向量,一行m列(1*m) %Py_x转移概率矩阵,m行n列(m*n) minBeta=min(b); maxBeta=max(b); beta=minBeta: 0.1: maxBeta; l=length(beta); r=zeros(1,l); fori=1: l r(i)=C(beta(i),b,Py_x); end minb=minBeta; maxC=max(r); maxb=maxC; l=find(r==maxC); plot(beta(1: l),r(1: l)); end 4、实验结果: 示例1: Q=[100;010;001],b=[321],求其代价容量函数? >>Q=[100;010;001]; >>b=[3,2,1]; >>plotCBeta(b,Q) 结果: ans= 1 五、结果分析 C(b)的性质: 在βmin≤β≤βmax内,是一个严格上升函数。 C(βmin)=Cmin,C(βmax)=Cmax。 当β≥βmax时,C(β)是一个常数Cmax。 因此C(β)=max{I(X;Y): E[b(x)]=β},βmin≤β≤βmax。 这说明,达到C(β)的试验信号,可以在E[b(x)]=β的区域中找到,实际上也只能在这个区域内找到。 实验6BCH循环码的编码与译码 一、实验内容 用VC或Matlab软件编写循环BCH码的编码与译码程序。 利用程序对教科书的例题做一个测试。 二、实验环境 1.计算机 2.Windows2000或以上 3.MicrosoftVisualC++6.0或以上 4.Matlab6.0或以上 三、实验目的 1.通过BCH循环码的编码与译码程序的编写,彻底了解并掌握循环BCH的编码与译码原理 2.通过循环BCH码的编码与译码程序的编写,提高编程能力。 四、实验要求 1.提前预习实验,认真阅读实验原理以及相应的参考书。 2.对不同信道的进行误码率分析。 特别是对称信道,画出误码性能图。 即信道误码率与循环汉明码之间的关系。 3.认真填写实验报告。 五、实验原理 1.循环BCH的编码与译码原理(略) 2.循环BCH的程序实现。 六、实验步骤 bch_en_decode.m文件 functionbch_en_decode() code=bch155 code=code+randerr(5,15,1: 3); code=rem(code,2); code=gf(code)%随机产生1-3位错误 decode=debch155(code) end functiondecode=debch155(code) code=gf(code); M=4; code=gf(code.x,M); [m,n]=size(code);decode=[]; code1=[]; fori=1: m;code1=code(i,: ); M=code1.m;T2=6;N=15; S=code1*((gf(2,M,code1.prim_poly)).^([N-1: -1: 0]'*([1: T2]))); LambdaX=gf([1zeros(1,T2)],M,code1.prim_poly); Tx=[01zeros(1,T2-1)]; L=0; fork=1: T2; LambdaXTemp=LambdaX; Delta=S(k)-LambdaXTemp(1+[1: L])*(S(k-[1: L]))'; ifDelta.x; LambdaX=LambdaXTemp-Delta*Tx; if2*L L=k-L; Tx=LambdaXTemp/Delta; end; end; Tx=[0Tx(1: T2)]; end; LambdaXValue=LambdaX.x; LambdaX=gf(LambdaXValue(1: max(find(LambdaXValue))),M,code1.prim_poly); errLoc_int=roots(LambdaX);errLoc=log(errLoc_int); fori=1: length(errLoc); errorMag=1; code1(N-errLoc(i))=code1(N-errLoc(i))-errorMag; end; decode=[decode;code1];end; ccode=gf(decode.x); decoded=ccode(: 1: 5); end function[yout]=bch155(x)%定义函数 k=5;%信息码位,BCH(15,5) ifnargin<1 x2=randint(5,k); n=5; msg=x2%判断输入信息,若未输入,系统自动产生5组信息码,并显示出信息位 elseifrem(length(x),k)==0;n=length(x)/k;x2=[];%判断msg是否为K的整数倍,并把输入码员分组 fori=0: n-1 x2=[x2;x(i*k+1)x(i*k+2)x(i*k+3)x(i*k+4)x(i*k+5)]; end ifrem(length(x),k)>0%把输入码员补零并分组 x=[x,zeros(size(1: k-rem(length(x),k)))]; n=length(x)/k;x2=[]; fori=0: n-1 x2=[x2;x(i*k+1)x(i*k+2)x(i*k+3)x(i*k+4)x(i*k+5)]; end end end ik=[eye(5)zeros(5,10)];%输入信息码扩展 x3=x2*ik; yout=[]; fori=1: n g=[10100110111]; [w,yo]=deconv(x3(i,: ),g);%产生余式 yo=abs(rem(yo,2)); yout=[yout;yo]; end yout=yout+x3;%产生信息码 end 运行结果: msg= 11010 01101 01000 11101 00100 code= 110101100100011 011011100001010 010001111010110 111010110010001 001000111101011 code=GF (2)array. Arrayelements= 110101010100011 011111100001010 000001111000110 110010111010001 001100111101011 decode=GF(2^4)array.Primitivepolynomial=D^4+D+1(19decimal) Arrayelements= 110101100100011 011011100001010 010001111010110 111010110010001 001000111101011
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大三 信息论 实验 报告