资源描述:
《卷积码编解码》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、14卷积码编解码实验四卷积码的编解码一、实验目的1、掌握卷积码的编解码原理。2、掌握卷积码的软件仿真方法。3、掌握卷积码的硬件仿真方法。4、掌握卷积码的硬件设计方法。二、预习要求1、掌握卷积码的编解码原理和方法。2、熟悉matlab的应用和仿真方法。3、熟悉Quatus的应用和FPGA的开发方法。三、实验原理1、卷积码编码原理在编码器复杂度相同的情况下,卷积码的性能优于分组码,因此卷积码几乎被应用在所有无线通信的标准之中,如GSM,IS95和CDMA2000的标准中。卷积码通常记作(n0,k0,m),它将k0个信息比特编为n0个比特,其编码效率为k0
2、/n0,m为约束长度。(n0,k0,m)卷积码可用k0个输入、n0个输出、输入存储为m的线性有限状态移位寄存器及模2加法计数器来实现。本实验以(2,1,3)卷积码为例加以说明。图1就是卷积码编码器的结构。图1(2,1,3)卷积码编码器其生成多项式为:G1(D)?1?D?D2;G2(D)?1?D2;如图1所示的(2,1,3)卷积码编码器中,输入移位寄存器用转换开关代替,每输入一个信息比特经编码产生二个输出比特。假设移位寄存器的初始状态为全0,当第一个输入比特为0时,输出比特为00;若输入比特为1,则输出比特为11。随着第二个比特输入,第一个比特右移一位
3、,此时输出比特同时受到当前输入比特和前一个输入比特的影响。第三个比特输入时,第一、二个比特分别右移一位,同时输出二个由这三位移位寄存器存储内容所共同决定的比特。依次下去就完成了编码过程。下面是卷积码的网格图表示。他是比较清楚而又紧凑的描述卷积码的一种方式,它是最常用的描述方式之一。图2(2,1,3)卷积码的网格图表示2、Viterbi译码原理如图2所示,卷积码网格图中共有2k(N?1)种状态,每个节点(即每个状态)有2条支路引入也有2条kk支路引出。为简便起见,我们讨论k=1的情形,从全0状态起始点开始讨论。由网格图的前N-1条连续支路构成的路径互不
4、相交,即最初的2N?1条路径各不相同,当接受到第N条支路时,每条路径都有2条支路延伸到第N级上,而第N级上的每两条支路有都汇集在一个节点上。在维特比译码算法中,把汇集在每个节点上的两条路径的对数似然函数累加值进行比较,然后把具有较大对数似然函数累加值的路径保存下来,而丢弃另一条路径,经挑选后第N级只留下2N?1条幸存路径,选出的路径连同他们的对数似然函数累加值一起被存储起来。由于每个节点引出两条支路,因此以后各级中路径的延伸都增大一倍,但比较他们的似然函数累加值后,丢弃一半,结果留存下来的路径总数保持常数。由此可见,上述译码过程的基本操作是“加-比选
5、”,即每级求出对数似然函数累加值,然后两两比较并做出选择。有时会出现两条路径的对数似然函数累加值相等的情形,在这种情况下可以任意选择其中一条作为“幸存”路径。为了更具体地阐述Viterbi译码的过程,我们仍以图2的卷积码为例,假设编码器输出序列为全0码,仍不失一般性。假设接受序列为Y=001001000000……,由于编码输出序列全为0,因此上述接受序列是误码序列。图3(1-8)表示了随着接受序列的串行输入Viterbi译码器中各条路径的取舍情况。计算某路径的对数似然函数可以用计算该路径与接受序列之间的汉明距离(称为度量)来代替。每次产生八条路径,经
6、计算度量后又丢掉四条。遇到度量相同的就任意丢掉一条。下表给出了Viterbi译码器中存储器内的信息。这就是译码器可能的输出序列。表1Viterbi译码器存储器内容图3Viterbi解码图解全过程四、卷积码的波形和误码率仿真1、建立仿真文件删余卷积码误码率仿真(conv1.mdl)2、仿真程序clearall;closeall;R=1/2;trellis=poly2trellis(3,[7,5]);d1=(sign(randn(1,8))+1)/2;s=convenc(d1,trellis);figure(1);subplot(2,1,1);stem(
7、d1);subplot(2,1,2);stem(s);R=1/2;EbN0=0:6;EsN0=EbN0-10*log10(R);N0=10.^(-EsN0/10);sigma=sqrt(N0/2);trellis=poly2trellis(3,[7,5]);error=zeros(1,length(N0));fork=1:length(N0)n=0;whilen<100d1=(sign(randn(1,1000))+1)/2;d=[d1zeros(1,2)];s=convenc(d,trellis);r=(2*s-1)+sigma(k)*ran
8、dn(1,length(s));rr=(1+sign(r))/2;dd=vitdec(rr,trellis,