信息论与编码大作业_第1页
信息论与编码大作业_第2页
信息论与编码大作业_第3页
信息论与编码大作业_第4页
信息论与编码大作业_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、广西科技大学大作业课程名称:信息论与编码 题 目:信道编码对通信系统性能的影响 学 院:电气与信息工程学院 专 业:电子信息工程 班 级: 学 号: 成 绩: 姓 名: 电话号码: 信道编码对通信系统性能的影响 摘要 简述信道编码理论,详细说明分组码的编译原理、实现方法及检错纠错能力,用MATLAB仿真有无信道编码条件下对通信系统性能的影响及信道编码在不同信道下对通信系统性能的影响,如AWGN信道和深衰落信道。关键词 信道编码、分组码、MATLAB仿真、性能一、引言提高信息传输的有效性和可靠性始终是通信技术所追求的目标,而信道编码能够显著的提升信息传输的可靠性。1948年,信息论的奠基人C.E

2、.Shannon在他的开创性论文“通信的数学理论”中,提出了著名的有噪信道编码定理.他指出:对任何信道,只要信息传输速率R不大于信道容量C, 就一定存在这样的编码方法:在采用最大似然译码时,其误码率可以任意小.该定理在理论上给出了对给定信道通过编码所能达到的编码增益的上限,并指出了为达到理论极限应采用的译码方法.在信道编码定理中,香农提出了实现最佳编码的三个基本条件 :(1 )采用随机编译码方式;(2 )编码长度 , 即分组的码组长度无限;(3)译码采用最佳的最大似然译码算法。二、信道编码理论1、信道编码的概念与目的进行信道编码是为了提高信号传输的可靠性,改善通信系统的传输质量,研究信道编码的

3、目标是寻找具体构造编码的理论与方法。从原理上,构造信道码的基本思路是根据一定的规律在待发送的信息码元中人为的加入一定的多余码元,以引入最小的多余度为代价来换取最好的抗干扰性能。信道编码是通过信道编码器和译码器实现的用于提高信道可靠性的理论和方法,是信息论的内容之一。信道编码大致分为两类:信道编码定理,从理论上解决理想编码器、译码器的存在性问题,也就是解决信道能传送的最大信息率的可能性和超过这个最大值时的传输问题。构造性的编码方法以及这些方法能达到的性能界限。编码定理的证明,从离散信道发展到连续信道,从无记忆信道到有记忆信道,从单用户信道到多用户信道,从证明差错概率可接近于零到以指数规律逼近于零

4、,正在不断完善。编码方法,在离散信道中一般用代数码形式,其类型有较大发展,各种界限也不断有人提出,但尚未达到编码定理所启示的限度。在连续信道中常采用正交函数系来代表消息,这在极限情况下可达到编码定理的限度,不是所有信道的编码定理都已被证明。2、信道编码的分类 信道编码可以分成分组码、卷积码和 循环冗余码3类。 分组码是把若干个输入信号变成一个更长的输出序列的编码方式,它通过提供编码的冗余度来实现对信号的检错和纠错。假设输入信号是一个长度为的向量,经过分组编码之后的输出信号时一个长度为的向量,则这个分组编码表示为,其中信息位的长度等于,码长位,监督位的长度,编码效率等于.对于分组码,输出序列一般

5、可以表示成输入向量与生成矩阵的乘积,其中是一个行列的矩阵。 BCH码是一种特别重要的分组编码。它是根据3个发明人的名字Bose,Chaudhuri Hocguenghem命名的。 BCH码的重要性在于它解决了生成多项式与纠错能力至今的关系问题,可以方便的纠正多个随机错误。对于特定的码字长度,BCH码只能对特定的长度为的信息序列进行编码。Reed-Slolmon码是一种具有很强纠错能力的多进制BCH码(简称RS码),它是以两个发明人的名字Reed和Solomon命名的。对于一个M进制的RS码,它的输入和输出信号的范围都等于,其中。RS码的码长度,如果信息位的长度等于,则监督位的长度另外,RS码具

6、有很强的纠错能力,假设它能够纠正个错误,则RS码的监督位长度和之间应该满足关系,因此,RS码的长度与信息为长度之间的差值应该是一个偶数,同时RS码的最小码元距离为: RS码的输入信号还可以用二进制符号来表示,每个进制符号可以表示成位二进制符号。 循环冗余码CRC是一种是用相当频繁的检错码。与分组码不同的是循环冗余码不具有纠错能力。当接收端检测到传输错误时候,它并不去纠正这个传输错误,而是要求发送端重新发送这个信号序列。在循环冗余码的编码过程中,发送端对一个特定长度的信息序列计算得到一个循环冗余码,并且把这个循环冗余码附加到原来的信息序列的末尾一起发送出去。接收端接收到带有循环冗余码的信号后,从

7、中分离出信息序列和循环冗余码,然后根据接收到的信息位序列重新计算循环冗余码。如果这个重新计算得到的循环冗余码与分离出来的循环冗余码不同,则接收信号序列存在着传输错误。这时候接收端就会要求发送端饿重新发送这个信号序列,通过合格过程实现对信号的纠错。卷积编码与分组码不同。在分组码中任何一段规定时间内编码器的输出万群决定于这段时间中的输入信号;而在卷积码中任何一段规定时间的个码元不仅取决于这段时间内的个信息位,而且还取决于前段时间内的信息位,这个N就成为卷积码的约束长度。卷积编码器的表示有两种方式:用多项式表示以及用trellis图表示。卷积编码器的多项式表示由3部分组成:约束长度、生成多项式以及反

8、馈多相似。如果卷积编码器只有一个输入时它的约束长度是一个标量,并且等于卷积编码器中储存的信息位的个数(包括移位寄存器的个数以及当前按的输入信号)。如果卷积编码器有多个输入,则约束长度是一个向量,其中的每一个元素对应于一个输入信号在卷积编码器中存储的信息位的个数。假设卷积编码器有个输入信号和个输出信号,则这个卷积编码器的生成多项式是一个行列的矩阵,其中的每一个元素表示第个输入信号对第个输出信号的影响。如果第个输入信号对第个输出信号有影响则=1;否则=0。对于带反馈的卷积编码器,还需要指定相应的反馈多项式,如果卷积编码器只有一个输入信号则反馈多项式是一个标量。当卷积编码器有多个输入信号时,反馈多项

9、式是一个向量,它的长度等于卷积编码器输入信号的个数。3、信道编码的实质 信道编码的实质就是在信息码中增加一定数量的多余码元(称为监督码元),使它们满足一定的约束关系,这样由信息码元和监督码元共同组成一个由信道传输的码字。举例而言,欲传输k位信息,经过编码得到长为n(n>k)的码字,则增加了 n - k = r 位多余码元,我们定义 R = k / n 为编码效率。4、 信道编码公式 令信息速率为fb,经过编码以后的速率为ft,定义:Rfb/ft为编码率。则对于任何一个信道,总存在一个截止速率R0,只要R<R0,总可以达到:BER<CR2-nR0,其中CR为某个常数,n为编码的

10、约束长度。 对于等概二进码、AWGN信道,有:三、线性分组码的编译码原理1、 线性分组码的基本概念一个n ,k线性分组码, 是把信息划成k个码元为一段(称为信息组), 通过编码器变成长为n个 码元的一组, 作为n, k线性分组码的一个码字。 若每位码元的取值有q种(q为素数幂), 则共有qk个码字。 n长的数组共有qn组, 在二进制情况下, 有2n个数组。 显然, qn个n维数组(n重)组成一个GF(q)上的n维线性空间。 如果qk(或2k)个码字集合构成了一个k维线性子空间, 则称它是一个n ,k线性分组码。即将k维k重信息空间的元素线性映射到n维n重矢量空间(接收矢量/收码) 的k维n重子

11、空间(码空间)。如下图为7,3码 2、生成矩阵和校验矩阵生成矩阵:G称为生成矩阵,因为可以用它产生整个码组A,即有生成矩阵的性质:具有IkQ形式的生成矩阵称为典型生成矩阵。由典型生成矩阵得出的码组A中,信息位的位置不变,监督位附加于其后。这种形式的码组称为系统码。 矩阵G的各行也必须是线性无关的。如果已有k个线性无关的码组,则可以将其用来作为生成矩阵G,并由它生成其余码组。监督矩阵:监督矩阵可用来校验和纠错。四、MATLAB仿真源程序及说明采用模块化编程,把每个功能独立成各个模块,让程序更清晰。首先介绍各个子程序及其实现的基本功能。运行环境为Matlab2016版本通信过程的每个模块写成子程序

12、函数:Channelcoding 为信道编码函数Channeldecoding 为信道解码纠错子函数Interwaving 为交积子函数Deinterwaving 为解交积子函数addfade为向信道加入衰落参数的子函数awgn 为库函数,向信源加高斯白噪声pskmod 为库函数,用于信号调制,输出为复数pskdemod 为库函数,用于信号解调信道编码子程序:%信道编码子函数,sym为编码码流,G为生成矩阵,k为编码方式的长度,如(7,4)码的4function bitcoded=channelcoding(sym,G,k)A=vec2mat(sym,k);U=A*G;U=mod(U,2);b

13、itcoded=reshape(U',1,);信道解码子程序:function bitdecoded=channeldecoding(recode,Etab,Smatrix,H,n,k)% 前向纠错函数,实现纠错功能% bidecoded为纠错后返回的比特流% recode为输入的比特流% E为错误图样表,S为对应的伴随式表% H为监督矩阵,n,k为码的类型,如(7,4)码,n=7,k=4 row=length(recode)/n; %行数 E=zeros(row,n); %错误图样 RM=zeros(row,n); %纠错之后的矩阵 R=vec2mat(recode,n); S=R*

14、H' %伴随矩阵 S=mod(S,2); for i=1:row for j=1:2(n-k) %查表纠错 if(S(i,:)=Smatrix(j,:) E(i,:)=Etab(j,:); RM(i,:)=R(i,:)+E(i,:); RM(i,:)=mod(RM(i,:),2); break; end end end bitdecoded=reshape(RM',1,); %转化为比特流交织子程序:function retbit=interweaving(bitstream,row,col)%功能:实现对输入比特的交积% retbit为交积后返回的比特流向量% bitstre

15、am 为需要交积的比特流向量% row 和 col为交积器的行和列,% 通过改变col就可以改变交积深度 retbit=zeros(1,length(bitstream); bitarr=vec2mat(bitstream,row); bitarr=bitarr' for i=1:length(bitstream)/(row*col) temp=bitarr(:,(i-1)*col+1):i*col); retbit(1,(i-1)*(row*col)+1):(i*(row*col)=reshape(temp',1,); end 解交织子程序:function retbits=

16、deinterweaving(bitstream,row,col)%功能:实现对输入比特的解交积%rebits为解交积后返回的比特流% bitstream输入的比特流%row 和 col为交积器的行和列,通过改变col就可以改变交积器的长度 retbits=zeros(1,length(bitstream); bitarr=vec2mat(bitstream,col); for i=1:length(bitstream)/(row*col) temp=bitarr(i-1)*row+1:i*row,:); retbits(1,(i-1)*row*col+1:i*row*col)=reshape

17、(temp,1,); end信道衰落子程序:function code=addfade(modcode,Tf,isperiod,isfade)%功能:向传输序列modcode叠加衰落性信道的衰落参数k(t)%code为加入衰减参数之后返回的序列。% modcode为调制之后的序列% Tf 为衰落时间,以ms为单位,小于10ms,% Tf=1,表示衰落1ms% isperiod 周期衰落和一次性衰落的标志,% isperiod=1表示周期性衰落,0表示一次性衰落% isfade表示是否存在衰落,1存在,0不存在衰落直接返回modcodeif(isfade=1) if(isperiod=1) %周

18、期性衰落 for k=1:length(modcode)/(100*Tf) a=(k-1)*100*Tf+31; b=(k-1)*100*Tf+30+10*Tf; modcode(1,a:b)=0.1*modcode(1,a:b); end else %一次衰落 a=31; b=30+10*Tf; modcode(1,a:b)=0.1*modcode(1,a:b); end code=modcode;else code=modcode;end1、信道编码对通信系统性能的影响,有无信道编码的影响ticclc%功能:有无信道编码性能比较M=2; %进制b=log2(M) ; %每符号比特数n=12

19、8*10000 ; %符号数G=1 1 1 1 0 0 0;1 0 1 0 1 0 0;0 1 1 0 0 1 0;1 1 0 0 0 0 1 ; %生成矩阵H=1 0 0 1 1 0 1;0 1 0 1 0 1 1;0 0 1 1 1 1 0 ; %监督矩阵Etab= 0 0 0 0 0 0 0;0 0 0 0 0 0 1; %错误图样 0 0 0 0 0 1 0;0 0 0 0 1 0 0; 0 0 0 1 0 0 0;0 0 1 0 0 0 0; 0 1 0 0 0 0 0;1 0 0 0 0 0 0;Smatrix=Etab*H' %对应的伴随式sym=randint(n,1,

20、M);sym=de2bi(sym,'left-msb'); %模拟信源编码bitcoded=channelcoding(sym,G,4); %信道编码,(7,4)码modbit=pskmod(bitcoded,M);%在传输序列modbit加入AWGN噪声snr=0:0.2:15; %噪声为0到15dL=length(snr)ser=zeros(1,L);ser2=zeros(1,L);for k=1:L y=awgn(modbit,10*log10(b)+snr(k),'measured'); zsym=pskdemod(y,M); %复数解调 zbit=de

21、2bi(zsym,'left-msb'); recode=reshape(zbit',1,); Rstream=recode; err=(Rstream=bitcoded); errnum=sum(err); ser(k)=log10(errnum/length(bitcoded); %纠错 bitdecoded=channeldecoding(Rstream,Etab,Smatrix,H,7,4); err=(bitdecoded=bitcoded); errbits=sum(err); ser2(k)=log10(errbits/(length(bitcoded);

22、endplot(snr,ser,'b-*')hold onplot(snr,ser2,'r-o')grid onlegend('没有信道编码','信道编码');xlabel('Eb/No(dB)');ylabel('SER');title('2PSK有无信道编码性能比较');toc % 结论分析:由上图在较高信噪比的时候编码增益很明显大大提高了误码性能,但是在低信噪被的时候编码增益较小甚至可能是负值,则是因为编码后信息比特能量扩散到多个编码比特上,每个编码比特能量有所降低,如果信噪比

23、低的话,编码冗余带来的性能增益可能弥补不了编码比特的能量的降低,因此信道中信噪比的波动会显著降低编码性能2、在交织条件下,不同时长的周期性深衰落对系统性能影响的比较ticclc%功能:有无信道编码性能比较M=2; %进制b=log2(M) ; %每符号比特数n=128*10000 ; %符号数interrow=8;intercol=10;%交积矩阵的行和列G=1 1 1 1 0 0 0;1 0 1 0 1 0 0;0 1 1 0 0 1 0;1 1 0 0 0 0 1 ; %生成矩阵H=1 0 0 1 1 0 1;0 1 0 1 0 1 1;0 0 1 1 1 1 0 ; %监督矩阵Etab=

24、 0 0 0 0 0 0 0;0 0 0 0 0 0 1; %错误图样 0 0 0 0 0 1 0;0 0 0 0 1 0 0; 0 0 0 1 0 0 0;0 0 1 0 0 0 0; 0 1 0 0 0 0 0;1 0 0 0 0 0 0;Smatrix=Etab*H' %对应的伴随式sym=randint(n,1,M);sym=de2bi(sym,'left-msb'); %模拟信源编码bitcoded=channelcoding(sym,G,4); %信道编码,(7,4)码interv=interweaving(bitcoded,interrow,interco

25、l); %交积向量modbit=pskmod(bitcoded,M);modbit2=pskmod(interv,M);%向传输序列modcode叠加衰落性信道的衰落参数k(t)modbitfade=addfade(modbit,1,1,1);modbitfade2=addfade(modbit2,1,1,1);%1ms周期性衰落modbitfade3=addfade(modbit2,2,1,1);%衰落时长2ms%在传输序列modbit加入AWGN噪声snr=0:0.2:25; %噪声为0到25dL=length(snr)ser=zeros(1,L);ser2=zeros(1,L);for

26、k=1:L y=awgn(modbitfade,10*log10(b)+snr(k),'measured'); y2=awgn(modbitfade2,10*log10(b)+snr(k),'measured'); y3=awgn(modbitfade3,10*log10(b)+snr(k),'measured'); zsym=pskdemod(y,M); %复数解调 zsym2=pskdemod(y2,M); zsym3=pskdemod(y3,M); zbit=de2bi(zsym,'left-msb'); zbit2=de2

27、bi(zsym2,'left-msb'); zbit3=de2bi(zsym3,'left-msb'); recode=reshape(zbit',1,); recode2=reshape(zbit2',1,); recode3=reshape(zbit3',1,); deinterv=deinterweaving(recode2,interrow,intercol);%解交积向量 deinterv3=deinterweaving(recode3,interrow,intercol); Rstream=recode; Rstream2=d

28、einterv; Rstream3=deinterv3; %纠错 bitdecoded=channeldecoding(Rstream,Etab,Smatrix,H,7,4); bitdecoded2=channeldecoding(Rstream2,Etab,Smatrix,H,7,4); bitdecoded3=channeldecoding(Rstream3,Etab,Smatrix,H,7,4); err=(bitdecoded=bitcoded); errbits=sum(err); ser(k)=log10(errbits/(length(bitcoded); err2=(bitd

29、ecoded2=bitcoded); errbits2=sum(err2); ser2(k)=log10(errbits2/(length(bitcoded); err3=(bitdecoded3=bitcoded); errbits3=sum(err3); ser3(k)=log10(errbits3/(length(bitcoded);endplot(snr,ser,'b-*')hold onplot(snr,ser2,'r-o')hold onplot(snr,ser3,'k-+')grid onlegend('有信道编码没有交织1ms衰落','有信道编码有交织1ms衰落','有信道编码有交织2ms衰落');xlabel('Eb/No(dB)');ylabel('SER&

温馨提示

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

评论

0/150

提交评论