卷积码编译码原理.ppt
- 格式:ppt
- 大小:448.50 KB
- 文档页数:18
No.15 (2,1,3)卷积码的编码及译码摘要:本报告对于(2,1,3)卷积码原理部分的论述主要参照啜刚教材和课件,编程仿真部分绝对原创,所有的程序都是在Codeblocks 8.02环境下用C语言编写的,编译运行都正常。
完成了卷积码的编码程序,译码程序,因为对于短于3组的卷积码,即2 bit或4 bit纠错是没有意义的,所以对正确的短序列直接译码,对长序列纠错后译码,都能得到正确的译码结果。
含仿真结果和程序源代码。
如果您不使用Codeblocks运行程序,则可能不支持中文输出显示,但是所有的数码输出都是正确的。
一、 卷积码编码原理卷积码编码器对输入的数据流每次1bit 或k bit 进行编码,输出n bit 编码符号。
但是输出的分支码字的每个码元不仅于此时可输入的k 个嘻嘻有关,业余前m 个连续式可输入的信息有关,因此编码器应包含m 级寄存器以记录这些信息。
通常卷积码表示为 (n,k,m). 编码率 k r n=当k=1时,卷积码编码器的结构包括一个由m 个串接的寄存器构成的移位寄存器(成为m 级移位寄存器、n 个连接到指定寄存器的模二加法器以及把模二加法器的输出转化为穿行的转换开关。
本报告所讲的(2,1,3)卷积码是最简单的卷积码。
就是2n =,1k =,3m =的卷积码。
每次输入1 bit 输入信息,经过3级移位寄存器,2个连接到指定寄存器的模二加法器,并把加法器输出转化为串行输出。
编码器如题所示。
二、卷积码编码器程序仿真 C 语言编写的仿真程序。
为了简单起见,这里仅仅提供数组长度30 bit 的仿真程序,当然如果需要可以修改数组大小。
为了更精练的实现算法,程序输入模块没有提供非法字符处理过程,如果需要也可以增加相应的功能。
进入程序后,先提示输入数据的长度,请用户输入int (整型数)程序默认用户输入的数据小于30,然后提示输入01数码,读入数码存储与input 数组中,然后运算输出卷积码。
通信原理(第2版)– 176 –此,编出的码字n 也较长。
对于卷积码,考虑到编、译码器设备的可实现性,单位时间内进入编码器的信息码元的个数k 通常比较小,一般不超过4,往往就取1k =。
8.5.1 卷积码的编码原理下面通过一个例子来说明卷积码的编码原理和编码方法。
图8-7为(3,1,2)卷积码编码器的原理框图。
它由两级移位寄存器12j j m m --、,两个模二加法器和开关电路组成。
编码前,各级移位寄存器清零,信息码元按12j m m m 的顺序送入编码器。
每输入一个信息码元j m ,开关电路依次接到1,j x 、2,j x 、和3,j x 各端点一次。
其中输出码元序列1,j x 、2,j x 、和3,j x 由下式决定1,2,23,12j j j j j jj j j x m x m m x m m m---⎧=⎪=+⎨⎪=++⎩ (8.55)由式(8.55)可以看出,编码器编出的每一个子码1,j x 、2,j x 、和3,j x 都与前面两个子码的信息元有关,因此2m =,约束度13N m =+=(组),约束长度9N n = (位)。
图8-7 (3,1,2)卷积码编码器表8.8举例示出了此编码器的状态。
其中a b c d ,,,表示21j j m m --的四种可能状态:00,01,10,11。
当第一位信息比特为1时,即11m =,因移位寄存器的状态2100j j m m --=,故输出比特1,12,13,1111x x x =;第二位信息比特为1,这时21m =,因2101j j m m --=,故1,22,23,1110x x x =,依此类推。
为保证输入的全部信息位11010都能通过移位寄存器,还必须在信息位后加3个零。
表8.8(3,1,2)编码器状态表m j1 1 0 1 0 0 0 0m j −2m j −1 00 01 11 10 01 10 00 00 1,2,3,j j j x x x 111 110 010 100 001 011 000 000状态ab dcbc a a卷积码编码时,信息码流是连续地通过编码器,不像分组码编码器那样先把信息码流分成许多码组,然后再进行编码。