34卷积码编码原理分析与建模仿真_第1页
34卷积码编码原理分析与建模仿真_第2页
34卷积码编码原理分析与建模仿真_第3页
34卷积码编码原理分析与建模仿真_第4页
34卷积码编码原理分析与建模仿真_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、3/4 卷积码编码原理分析与建模仿真一、摘要卷积码是一种性能优越的信道编码。 它的编码器和译码器都比较容易实现, 同时它具有较 强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。 本文简 明地介绍了卷积码的编码原理和 Viterbi译码原理。并在SIMULINK莫块设计中,完成了对卷 积码的编码和译码以及误比特统计整个过程的模块仿真。 最后,通过在仿真过程中分析了卷积 码误比特率与信噪比之间的关系, 及卷积码与非卷积码的对比。经过仿真和实测,并对测试结 果作了分析。关键词:卷积码编码建模SIMULINK仿真目录一、摘要 - 1 -二、设计目的和意义 - 2 -三、设计原

2、理 - 3 -3.1 卷积码基本概念 - 3 -3.2 卷积码的结构 - 3 -3.3 卷积码的解析表示 - 4 -3.4 卷积码的译码 - 4 -3.4.1 卷积码译码的方式 - 4 -3.5.2 卷积码的 Viterbi 译码 - 5 -四、详细设计步骤 - 6 -4.1 卷积码的仿真 - 6 -4.1.1 SIMULINK仿真模块的参数设置及意义 - 6 -五、设计结果及分析 - 11 -5.1 不同信噪比对卷积码的影响 - 11 -5.2 卷积码的对比 - 12 -六、总结 - 14 -七、体会 - 14 -八、参考文献 - 14 -、设计目的和意义因为信道中信号不可避免会受到干扰而出

3、错。为实现可靠性通信,主要有两种途径 : 一种 是增加发送信号的功率,提高接收端的信号噪声比;另一种是采用编码的方法对信道差错进行 控制。前者常常受条件限制,不是所有情况都能采用。而编码理论可以解决这个问题,使得成 本降低,实用性增强。随着现代通信的发展,卷积码以其高速性和可靠性在实际应用中越来越广泛。1967年Viterbi译码算法的提出,使卷积码成为信道编码中最重要的编码方式之一。在卷积码中,因 为Viterbi算法效率高,速度快,结构相对简单等特点,被广泛应用于各种数据传输系统。特 别是深空通信、卫星通信系统中。因此采用 Viterbi译码算法具有非常现实的意义。三、设计原理本文在分析卷

4、积码编译码器原理的基础上,通过MATLAB勺SIMULINK模块对卷积编码、解码进行仿真。通过仿真可以更清楚的认识到卷积码的编码,解码的各个环节,并对仿真结果进 行了分析。得出卷积码 Viterbi译码的误比特性能的分析,从而验证了卷积码的正确性。3.1卷积码基本概念卷积码是一种性能优越的信道编码。(n ,k ,N) 表示把k个信息比特编成n个比特,N为 编码约束长度,说明编码过程中互相约束的码段个数。卷积码编码后的n个码元不仅与当前组的k个信息比特有关,而且与前N - 1个输入组的信息比特有关。编码过程中相互关联的码元 有N x n个。R = k/n是卷积码的码率,码率和约束长度是衡量卷积码

5、的两个重要参数。卷积码的编码描述方式有很多种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、 状态图描述,树图描述,网格图描述等。卷积码的纠错能力随着 N的增加而增大,而差错率随 着N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。分组码的译码算法可以由其代数特性得到。卷积码虽然可以采用适用于分组码的门限译码(即大数逻辑译码),但性能不如维特比译码和序列译码。3.2卷积码的结构图2-1卷积码的编码器一般都比较简单。图 2-1是一般情况下的卷积码编码器框图。它包括:一个由N段组成的输入移位寄存器,每段有 k级,共Nk位寄存器;一组n个模2和相加器;一NKh Il丨2丨I

6、KI 1丨2丨丨刘丨丨I丨2丨IK丨2|丨门个由n级组成的输出移位寄存器。对应于每段k个比特的输入序列,输出n个比特。由图可知, n个输出比特不但与当前k个比特的输入比特有关,而且与以前的(N-1) k个输入信息有关。 整个编码过程可以看成是输入信息序列与由移位寄存器和模2加法器的连接方式所决定的另一个序列的卷积,卷积码由此得名。输入序列图2-2如图2-2是卷积码(4, 3, 2)卷积编码器的一个框图。左边是信息的输入。下面分别是 系统位输出和校验位输出。其中间是6个移位寄存器和4个模2加法器。简单的说就是信息位 经过移位寄存器和一个模2加法器产生一个系统位和校验位加在一起输出。可以看出:每输

7、入 一个比特,移位寄存器中就向右移动一个位子。原来的第四个寄存器就被移出。可见卷积编码不只与现在的输入比特有关还与前面的 1个比特有关。在这里,其中约束长度是 N=2 k=3, n=4 所以码率 R=k/n=3/4。3.3卷积码的解析表示除上述图解表示方法外,常常还用解析表示方法描述卷积码,即延时算子多项式。在延时算子多项式表示中,编码器中的移位寄存器与模2加法器的连接关系以及输入、输出序列都表 示为延时算子D的多项式。在一般情况下,输入序列可表示为:M(D)二 mi m2D m3D2.(3-1)变量D的幕的次数等于相对于时间起点的单位延时数目,时间起点通常选在第1个输出比特,ml,m2,m3

8、,m.为输入比特的二进制表示(1或0)。用D算子多项式表示移位寄存器各级与 各模2项连接关系时。若某级寄存器与某模 2和相连,则多项式中相应项的系数为 1,否则为 0(表示无连接)。通常把表示移位寄存器与模2和连接关系的多项式称为生成多项式,因为由它们可以用多 项式相乘计算出输出序列。卷积码的图解与解析表示方法各有特点。 用延时算子多项式表示卷 积码编码器的生成多项式最为方便。网格图对于分析卷积码的译码算法十分有用。3.4卷积码的译码卷积码译码的方式卷积码的译码方式有三种:(1)1963年由梅西(Massey)提出的门限译码,这是一种基于码代数结构的代数译码,类似于分组码中的大数逻辑译码;(2

9、) 1963年由费诺(Fano)改进的序列译码,这是基于码的树状图结构上的一种准最佳的概率译码;(3) 1967年由维特比提出的Viterbi 算法。这是基于码的网 (trellis) 图基础上的一种最大似然译码算法,是一种最佳的 概率译码方法。其中,代数译码,利用编码本身的代数结构进行译码,不考虑信道本身的统计 特性。该方法的硬件实现简单,但性能较差,其中具有典型意义的是门限译码。另一类是概率 译码,这种译码通常建立在最大似然准则的基础上。由于计算是用到了信道的统计特性 . 因而 提高了译码性能, 但这种性能的提高是以增加硬件的复杂度为代价的。 常用的概率译码方法有 维特比译码和序列译码。维

10、特比译码具有最佳性能,但硬件实现复杂 ; 门限译码性能最差,但 硬件简单 ; 序列译码在性能和硬件方面介于维特比译码和门限译码之间。卷积码的 Viterbi 译码卷积码概率译码的基本思路是 : 以接收码流为基础,逐个计算它与其他所有可能出现的、 连续的网格图路径的距离, 选出其中可能性最大的一条作为译码估值输出。 概率最大在大多数 场合可解释为距离最小, 这种最小距离译码体现的正是最大似然的准则。 卷积码的最大似然译 码与分组码的最大似然译码在原理上是一样的,但实现方法上略有不同。主要区别在于 : 分组 码是孤立地求解单个码组的相似度, 而卷积码是求码字序列之间的相似度。 基于网格图搜索的 译

11、码是实现最大似然判决的重要方法和途径。 用格图描述时, 由于路径的汇聚消除了树状图中 的多余度, 译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。 如果在某一点上 发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径 中重新选择路径。这样一直进行到最后第 L级(L为发送序列的长度)。由于这种方法较早地丢 弃了那些不可能的路径,从而减轻了译码的工作量, Viterbi 译码正是基于这种想法。 对于 (n, k, K ) 卷积码,其网格图中共 2kL 种状态。由网格图的前 K-1 条连续支路构成的路径互不 相交,即最初2k_1条路径各不相同,当接收到第 K条

12、支路时,每条路径都有2条支路延伸到 第K级上,而第K级上的每两条支路又都汇聚在一个节点上。在Viterbi译码算法中,把汇聚在每个节点上的两条路径的对数似然函数累加值进行比较, 然后把具有较大对数似然函数累加 值的路径保存下来,而丢弃另一条路径,经挑选后第K级只留下2K条幸存路径。选出的路径同它们的对数似然函数的累加值将一起被存储起来。 由于每个节点引出两条支路, 因此以后各 级中路径的延伸都增大一倍, 但比较它们的似然函数累加值后, 丢弃一半,结果留存下来的路 径总数保持常数。由此可见,上述译码过程中的基本操作是, “加- 比- 选”,即每级求出对数似 然函数的累加值, 然后两两比较后作出选

13、择。 有时会出现两条路径的对数似然函数累加值相等 的情形,在这种情况下可以任意选择其中一条作为“幸存”路径。卷积码的编码器从全零状态出发, 最后又回到全零状态时所输出的码序列, 称为结尾卷积 码。因此,当序列发送完毕后,要在网格图的终结处加上( K-1 )个己知的信息作为结束信息。 在结束信息到来时, 由于每一状态中只有与已知发送信息相符的那条支路被延伸, 因而在每级 比较后,幸存路径减少一半。因此,在接收到( K-1 )个己知信息后,在整个网格图中就只有 唯一的一条幸存路径保留下来, 这就是译码所得的路径。 也就是说,在己知接收到的序列的情 况下,这条译码路径和发送序列是最相似的。由上述可见

14、, Viterbi 译码过程并不复杂,译码器的运行是前向的、无反馈的。它接收一 段,计算一段,选择一段最可能的码段 ( 分支) ,从而达到整个码序列是一个有最大似然函数的 序列。传输序列很长时,判决需要的长延时和相当大的存储量是我们无法承受的。因此,实际应用中采用截短 Viterbi算法,即不需要接收到所有序列才进行判决,当译码 器接收并处理完了固定的T (T vod: OnebasedVIndex Option(hit1Index vector (dialoc)V1InhiInput port size: 33。图4-6数据选通器模块的设置框图如上图4-6是数据选通器模块的设置框图。In p

15、ut port width表示输入端口的个数为图4-7卷积码译码器模块的设置框图10-210-310-410 -10- 8-6-4-2024误码率随信噪比的变化图如上图4-7是卷积码译码器模块的设置框图。Trellis structure: Trellis结构(前面已说明)。Decision type 是指判决类型,有 3 种:(1)Unquantized (非量化)(2) Hard Decision (硬判决),(3)Soft Decision(软判决)Traceback depth 表示反馈深度。它的值会影响译码精度和解码延迟。Operation mode是指操作模式。在Truncated

16、模式下,解码器在每帧 数据结束的时候总能恢复到全 0状态,它与卷积编码器的on each frame复位方式相对应。五、设计结果及分析5.1不同信噪比对卷积码的影响如下图4-10,对于码率一定的卷积码,当信道信噪比发生变化时,系统的误码性能也会随 之发生变化,我们以码率R = 3/4的卷积码为例展开分析。从图 5-1中的误比特率曲线可以看 到,当码率为3/4 一定时,在SNR-2dB寸,系统的误比特率迅速下降。010图5-1不同的信噪比卷积码误码性能的影响分析不同约束长度对卷积码误码性能影响用到的程序如下:clc;x=-10:5;%x表示信噪比y=x;%y表示信号的误比特率hold off;%

17、 准备一个空白图形for i=1:le ngth(x)SNR=x(i); % 信道的信噪比依次取x中的元素sim(convh); %运行仿真程序,得到的误比特率保存在工作区变量 BitErrorRatey(i)=mea n( BitErrorRate); %计算BitErrorRate 的均值作为本次仿真的误比特率endsemilogy(x,y);% 绘制x和y的关系曲线图,纵坐标采用对数坐标grid on,title(误码率随信噪比的变化图)hold on%保持已经绘制的图5.2卷积码的对比如图5-2所示结果,在信噪比超过10dB之后,卷积编码传输与非卷积编码传输的误比特 率基本相等,而在S

18、NR0.5); trel = poly2trellis(7,155 117);code = convenc(Signal,trel);%进行串并转化Para=reshape(code,datalength,2*Ns);%进行QPSK据调制,将数据分为两个通道,SigPara为datalength行2Ns列 for j=1:Nss1(:,j)=Para(:,2*j-1);%ich为 datalength 行 Ns列s2(:,j)=Para(:,2*j);endkmod=1./sqrt(2);s1=s1.*kmod;s2=s2.*kmod;x=s1+s2.*sqrt(-1);% 产生复信号y=if

19、ft(x); % 通过傅立叶反变换,将频域数据转换为时域数据ich2=real(y);%I信道取变换后的实部qch2=imag(y);%Q信道取变换后的虚部ich4=reshape(ich2,1,datalength*Ns);qch4=reshape(qch2,1,datalength*Ns);TrData=ich4+qch4.*sqrt(-1);% 加入高斯白噪声ReData=awgn(TrData,SNR(i),measured);idata=real(ReData); qdata=imag(ReData);%进行串并转化idata1=reshape(idata,datalength,Ns

20、); qdata1=reshape(qdata,datalength,Ns);Rex=idata1+qdata1.*sqrt(-1); ry=fft(Rex);ReIChan=real(ry);ReQChan=imag(ry);ReIChan=ReIChan/kmod;ReQChan=ReQChan/kmod;for j=1:NsRePara(:,2*j-1)=ReIChan(:,j);RePara(:,2*j)=ReQChan(:,j);endReSig=reshape(RePara,1,datalength*Ns*2);%符号抽样判决ReSig=double(ReSig0.5);%维特比译

21、码tblen= log2(trel.numInputSymbols)d m p in =vitdec(ReSig,trel,tblen,cont,soft,1);%统计错误比特数,并计算误比特率 error_bit_code=sum(abs(d(2:datalength*Ns)-Signal(1:datalength*Ns-1) ;error_bit_nocode(i)=sum(abs(ReSig-code); error_bit_rata_code1=error_bit_code/length(Signal);error_bit_rata_code(i)=error_bit_rata_code1; error_bit_rata_nocode(i)=error_bit_nocode(i)/2/length(Signal);endfigure(1);plot(SNR,error_bit_rata_nocode,-ro,SNR,error_bit_rata_code,-.b);grid on,title( 误码率对比图 )h=legend( 没有卷积 , 卷积 ,1);grid on;六、总结本文在分析卷积码编译码器原理的基础上,通过基于MATLAB勺SIMULINK对卷积编码、解码进行仿真。通过仿真可以更清楚的认识到卷积

温馨提示

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

评论

0/150

提交评论