基于MATLAB的信道编码分析_第1页
基于MATLAB的信道编码分析_第2页
基于MATLAB的信道编码分析_第3页
基于MATLAB的信道编码分析_第4页
基于MATLAB的信道编码分析_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、题目:基于MATLAB的通信系统仿真 信道编码对通信系统性能的影响专业: 通信工程姓名:崔校通 学号: 6日期: 2016.12.22目录一、引言2二、信道编码理论22.1、信道编码的目的22.2、信道编码的实质32.3、 信道编码公式3三、线性分组码的编译码原理33.1、 线性分组码的基本概念33.2、生成矩阵和校验矩阵4四、MATLAB仿真54.1仿真54.1.1原理说明54.1.2各子函数说明54.2仿真源程序54.2.1信道编码54.2.2信道解码64.2.3交织64.2.4解交织74.2.5信道衰落7六 程序及仿真图81、 file1:信道编码对通信系统性能的影响,有无信道编码的影响

2、82、file2:在周期性深衰落的信道条件下,交织对通信系统性能的影响103、 file3:在交织条件下,不同时长的周期性深衰落对系统性能影响的比较13基于MATLAB的通信系统仿真 信道编码对通信系统性能的影响摘要:简述信道编码理论,详细说明分组码的编译原理、实现方法及检错纠错能力,用MATLAB仿真有无信道编码条件下对通信系统性能的影响及信道编码在不同信道下对通信系统性能的影响,如AWGN信道和深衰落信道。关键词:信道编码、分组码、MATLAB仿真、性能一、引言提高信息传输的有效性和可靠性始终是通信技术所追求的目标,而信道编码能够显著的提升信息传输的可靠性。1948年,信息论的奠基人C.E

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

4、串扰同时多用户干扰、多径传播和功率限制等也导致错误译码。为了确保系统的误比特率指标通常采用信道编码。信道编码是为了保证信息传输的可靠性、提高传输质量而设计的一种编码。它是在信息码中增加一定数量的多余码元,使码字具有一定的抗干扰能力。2.2、信道编码的实质 信道编码的实质就是在信息码中增加一定数量的多余码元(称为监督码元),使它们满足一定的约束关系,这样由信息码元和监督码元共同组成一个由信道传输的码字。举例而言,欲传输k位信息,经过编码得到长为n(nk)的码字,则增加了 n - k = r 位多余码元,我们定义 R = k / n 为编码效率。【2】2.3、 信道编码公式 令信息速率为fb,经过

5、编码以后的速率为ft,定义:Rfb/ft为编码率。则对于任何一个信道,总存在一个截止速率R0,只要RR0,总可以达到:BERCR2-nR0,其中CR为某个常数,n为编码的约束长度。 对于等概二进码、AWGN信道,有:三、线性分组码的编译码原理3.1、 线性分组码的基本概念一个n ,k线性分组码, 是把信息划成k个码元为一段(称为信息组), 通过编码器变成长为n个 码元的一组, 作为n, k线性分组码的一个码字。 若每位码元的取值有q种(q为素数幂), 则共有qk个码字。 n长的数组共有qn组, 在二进制情况下, 有2n个数组。 显然, qn个n维数组(n重)组成一个GF(q)上的n维线性空间。

6、 如果qk(或2k)个码字集合构成了一个k维线性子空间, 则称它是一个n ,k线性分组码。即将k维k重信息空间的元素线性映射到n维n重矢量空间(接收矢量/收码) 的k维n重子空间(码空间)。如下图为7,3码 3.2、生成矩阵和校验矩阵 生成矩阵:G称为生成矩阵,因为可以用它产生整个码组A,即有生成矩阵的性质:具有IkQ形式的生成矩阵称为典型生成矩阵。由典型生成矩阵得出的码组A中,信息位的位置不变,监督位附加于其后。这种形式的码组称为系统码。 矩阵G的各行也必须是线性无关的。如果已有k个线性无关的码组,则可以将其用来作为生成矩阵G,并由它生成其余码组。【3】监督矩阵:监督矩阵可用来校验和纠错。四

7、、MATLAB仿真4.1仿真4.1.1原理说明采用模块化编程,力求把每个功能独立成各个模块,让程序更清晰。首先介绍各个子程序及其实现的基本功能。此次还采用了交织与解交织,其主要作用是,一个实际上的突发信道,经过发送端交织和接收端解交织的信息处理后,就完全等效成一个随机独立差错信道,信道交织编码实际上就是一类信道改造技术,它将一个突发信道改造成一个随机独立差错信道。它本身并不具备信道编码检、纠错功能,起到信号预处理的作用4.1.2各子函数说明运行环境为Matlab7.0版本通信过程的每个模块写成子程序函数:Channelcoding 为信道编码函数Channeldecoding 为信道解码纠错子

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

9、 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*H; %伴随矩阵 S=mod(S,2); for i=1:row for j=1:2(

10、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,); %转化为比特流4.2.3交织function retbit=interweaving(bitstream,row,col)%功能:实现对输入比特的交积% retbit为交积后返回的比特流向量% bitstream 为需要交积的比特流向量% row 和 col为交积器的行和列,% 通过改变col就可以改变交积深

11、度 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 4.2.4解交织function retbits=deinterweaving(bitstream,row,col)%功能:实现对输入比特的解交积%rebits为解交积

12、后返回的比特流% 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(temp,1,); end4.2.5信道衰落function code=addfade(modcode,Tf,isp

13、eriod,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) %周期性衰落 for k=1:length(modcode)/(100*Tf) a=(k-1)*100*Tf+31; b

14、=(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;end六 程序及仿真图1、 file1:信道编码对通信系统性能的影响,有无信道编码的影响执行时间:Elapsed time is 355. seconds.ticclc%功能:有无信道编码性能比较M=2; %进制b=log2(M) ; %每符号比特数n=128*10000 ;

15、 %符号数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,M);sym=de2bi(

16、sym,left-msb); %模拟信源编码bitcoded=channelcoding(sym,G,4); %信道编码,(7,4)码modbit=pskmod(bitcoded,M);%在传输序列modbit加入AWGN噪声S nr=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=de2bi(zsym,left-msb); recode=resha

17、pe(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);endplot(snr,ser,b-*)hold onplot(snr,ser2,r-o)gr

18、id onlegend(没有信道编码,信道编码);xlabel(Eb/No(dB);ylabel(SER);title(2PSK有无信道编码性能比较);toc % Elapsed time is 278. seconds.程序运行时间结论:由上图在较高信噪比的时候编码增益很明显大大提高了误码性能,但是在低信噪被的时候编码增益较小甚至可能是负值,则是因为编码后信息比特能量扩散到多个编码比特上,每个编码比特能量有所降低,如果信噪比低的话,编码冗余带来的性能增益可能弥补不了编码比特的能量的降低,因此信道中信噪比的波动会显著降低编码性能2、file2:在周期性深衰落的信道条件下,交织对通信系统性能的影

19、响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= 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

20、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,intercol); %交积向量modbit=pskmod(bitcoded,M);modbit2=pskmod(interv,M);%向传输序列modcode叠加衰落性信道的衰落参数k(t)modbit

21、fade=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 k=1:L y=awgn(modbitfade,10*log10(b)+snr(k),measured); y2=awgn(modbitfade2,10*log10(b)+snr(k),me

22、asured); 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=de2bi(zsym2,left-msb); zbit3=de2bi(zsym3,left-msb); recode=reshape(zbit,1,); recode2=reshape(zbit2,1,); recode3=reshape(zbit3,1,); deinter

23、v=deinterweaving(recode2,interrow,intercol);%解交积向量 deinterv3=deinterweaving(recode3,interrow,intercol); Rstream=recode; Rstream2=deinterv; Rstream3=deinterv3; %纠错 bitdecoded=channeldecoding(Rstream,Etab,Smatrix,H,7,4); bitdecoded2=channeldecoding(Rstream2,Etab,Smatrix,H,7,4); bitdecoded3=channeldeco

24、ding(Rstream3,Etab,Smatrix,H,7,4); err=(bitdecoded=bitcoded); errbits=sum(err); ser(k)=log10(errbits/(length(bitcoded); err2=(bitdecoded2=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(

温馨提示

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

评论

0/150

提交评论