卷积码编解码_第1页
卷积码编解码_第2页
卷积码编解码_第3页
卷积码编解码_第4页
卷积码编解码_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、实验四 卷积码的编解码一、实验目的1、掌握卷积码的编解码原理。 2、掌握卷积码的软件仿真方法。3、掌握卷积码的硬件仿真方法。 4、掌握卷积码的硬件设计方法。二、预习要求1、掌握卷积码的编解码原理和方法。 2、熟悉matlab的应用和仿真方法。3、熟悉Quatus的应用和FPGA的开发方法。三、实验原理1、卷积码编码原理在编码器复杂度相同的情况下,卷积码的性能优于分组码,因此卷积码几乎被应用在所有无线通信的标准之中,如GSM, IS95和CDMA 2000 的标准中。卷积码通常记作( n0 , k0 , m) ,它将k0 个信息比特编为n0 个比特, 其编码效率为k0/ n0 , m 为约束长度

2、。( n0 , k0 , m ) 卷积码可用k0 个输入、n0 个输出、输入存储为m 的线性有限状态移位寄存器及模2 加法计数器来实现。本实验以(2,1,3)卷积码为例加以说明。图1就是卷积码编码器的结构。图1 (2,1,3)卷积码编码器其生成多项式为: ; ;如图1所示的(2,1,3)卷积码编码器中,输入移位寄存器用转换开关代替,每输入一个信息比特经编码产生二个输出比特。假设移位寄存器的初始状态为全0,当第一个输入比特为0时,输出比特为00;若输入比特为,则输出比特为11。随着第二个比特输入,第一个比特右移一位,此时输出比特同时受到当前输入比特和前一个输入比特的影响。第三个比特输入时,第一、

3、二个比特分别右移一位,同时输出二个由这三位移位寄存器存储内容所共同决定的比特。依次下去就完成了编码过程。下面是卷积码的网格图表示。他是比较清楚而又紧凑的描述卷积码的一种方式,它是最常用的描述方式之一。图2(2,1,3)卷积码的网格图表示2、Viterbi译码原理 如图2所示,卷积码网格图中共有种状态,每个节点(即每个状态)有条支路引入也有条支路引出。为简便起见,我们讨论k=1的情形,从全0状态起始点开始讨论。由网格图的前N-1条连续支路构成的路径互不相交,即最初的条路径各不相同,当接受到第N条支路时,每条路径都有2条支路延伸到第N级上,而第N级上的每两条支路有都汇集在一个节点上。在维特比译码算

4、法中,把汇集在每个节点上的两条路径的对数似然函数累加值进行比较,然后把具有较大对数似然函数累加值的路径保存下来,而丢弃另一条路径,经挑选后第N级只留下条幸存路径,选出的路径连同他们的对数似然函数累加值一起被存储起来。由于每个节点引出两条支路,因此以后各级中路径的延伸都增大一倍,但比较他们的似然函数累加值后,丢弃一半,结果留存下来的路径总数保持常数。由此可见,上述译码过程的基本操作是“加-比选”,即每级求出对数似然函数累加值,然后两两比较并做出选择。有时会出现两条路径的对数似然函数累加值相等的情形,在这种情况下可以任意选择其中一条作为“幸存”路径。 为了更具体地阐述Viterbi译码的过程,我们

5、仍以图2的卷积码为例,假设编码器输出序列为全0码,仍不失一般性。假设接受序列为Y=0,由于编码输出序列全为0,因此上述接受序列是误码序列。图3(1-8)表示了随着接受序列的串行输入Viterbi译码器中各条路径的取舍情况。计算某路径的对数似然函数可以用计算该路径与接受序列之间的汉明距离(称为度量)来代替。每次产生八条路径,经计算度量后又丢掉四条。遇到度量相同的就任意丢掉一条。下表给出了Viterbi译码器中存储器内的信息。这就是译码器可能的输出序列。表1 Viterbi译码器存储器内容译码步骤路径度量存储内容译码步骤路径度量存储内容1020162333211240001101172344322

6、31000001010011824444232200000101011001115223300000011010111001111 图3 Viterbi解码图解全过程四、卷积码的波形和误码率仿真1、建立仿真文件删余卷积码误码率仿真(conv1.mdl)2、仿真程序clear all;close all;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(d1);subplot(2,1,2);stem(s);R=1/2;EbN0

7、=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);for k=1:length(N0) n=0; while n100 d1=(sign(randn(1,1000)+1)/2; d=d1 zeros(1,2); s=convenc(d,trellis); r=(2*s-1)+sigma(k)*randn(1,length(s); rr=(1+sign(r)/2; dd=vitdec(rr,trellis,3,trunc

8、,hard); error(k)=error(k)+sum(abs(dd(1:length(d1)-d1); n=n+1; end ber(k)=error(k)/(n*1000);endfigure(2);PT=semilogy(EbN0,ber,-o);set(PT,LineWidth,1.5);L1=legend(卷积码(2,1,3)误码率);set(L1,FontSize,14);X=xlabel(Eb/No(dB);set(X,FontSize,14);Y=ylabel(BER);set(Y,FontSize,14);grid on;3、仿真结果(1)编解码波形(2)白高斯噪声信道误

9、码率仿真结果五、实验中的卷积码编解码框图1、编码模块(1)端口设置cs_ conv:输入BCH编码使能位,1电平有效;datain_ conv:输入8位编码输入位;dataout_ conv:输出16位编码输出位。 (2)主程序process(cs_conv,datain_conv)variable m1 :std_logic:=0;variable m2 :std_logic:=0;variable m3 :std_logic:=0;beginif cs_conv=1 then for i in 0 to 7 loop m1:=m2;m2:=m3; m3:=datain_conv(i); d

10、ataout_conv(2*i)=m1 xor m2 xor m3; dataout_conv(2*i+1)=m1 xor m3; end loop; m1:=0; m2:=0;m3:=0; else dataout_conv=00000; end if;(3)仿真结果如图所示:编码输入为时,编码输出为10000。2、Viterbi解码部分(1)解码框图(2)解码波形其中viterbi用于每次更新路径;max_sel选择最大路径。当两路解码输入分别为:,。解码输出为。六、实验操作说明开关置ON表明输入0,OFF表明输入1;LED亮表明输出1,暗表明输出0。1、编码输入:由SW101-8,SW1

11、01-7,SW101-6,SW101-5,SW101-4,SW101-3,SW101-2,SW101-1可以输入由高位到低位的8位编码输入位。2、编码方式选择SW102-2,SW102-1,SW102-0编码方式000汉明码编码001CRC编码010BCH码编码011卷积码编码100Turbo码编码101扩展用110扩展用111汉明码交织编码3、信道选择(选择加错位置)SW103-6,SW103-5,SW103-4,SW103-3加错位置0000从0位置加错0001从1位置加错0010从2位置加错0011从3位置加错.1111从15位置加错4、加错数目选择SW103-2,SW103-1加错位置

12、00加0位错01加1位错10加2位错11加3位错从SW103-6,SW103-5,SW103-4,SW103-3指示的位置开始,每帧加错的位数有SW103-2,SW103-1的状态决定。5、编码输出设置D116,D115,D114,D113,D112,D111,D110,D109,D108,D107,D106,D105,D104,D103,D102,D101为16位编码输出位。TP102和TP103分别可以测量编码输出的帧和对应该帧的时钟信号。6、解码方式选择SW201-3,SW201-2,SW201-1解码方式000汉明码解码001CRC解码010BCH码解码011卷积码解码100Turbo

13、码解码101扩展用110扩展用111汉明码交织解码注:SW201-8为解码方式,接OFF为自动7、解码数据输出端:D208,D207,D206,D205,D204,D203,D202,D201。错误指示灯(当判断出数据有错码时就指示):D220。8、其他:七段码显示表明维特比译码的四路路径度量。七、实验内容1、用matalab中的simulink对(2,1,3)卷积码进行软件仿真,绘制(2,1,3)卷积码的误码率图,分析它的纠错能力;2、选择一种在移动通信中应用的卷积码,通过simulnk进行软件仿真,绘制其误码率图,分析它的纠错能力;3、在Quatus中分别对(2,1,3)卷积码的编码和解码

14、程序进行仿真,分析卷积码的编解码过程;4、在实验系统中,分别置SW102-2,SW102-1,SW102-0为” 100”和SW201-3,SW201-2,SW201-1为” 100”,选择卷积码编解码方式。置SW103-6,SW103-5,SW103-4,SW103-3,SW103-2,SW103-1为”,即不加任何错。5、由SW101-8,SW101-7,SW101-6,SW101-5,SW101-4,SW101-3,SW101-2,SW101-1任意输入8位数据,观察并记录D116,D115,D114,D113,D112,D111,D110,D109,D108,D107,D106,D105,D104,D103,D102,D101对应的编码后的输出数据。6、用示波器分别测量TP102和TP103,观察并编码输出的帧的帧格式。7、观察并记录解码数据输出端D208,D207,D206,D205,D204,D203,D202,D201的解码输出状态和错误指示灯(当判断出数据有错码时就指示)D220的输出状态。看是否译码正确。8、通过SW103-6,SW103-5,SW103-4,SW103-3,SW103-2,SW103-1选择在任意位置设置一位错误。9、看看解码模块的解码输出数据D208,D207,D206,D205,D204,D203,D202,

温馨提示

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

评论

0/150

提交评论