文档介绍:卷积码译码器设计
1 完成(2,1,4)卷积码编码器设计
2 完成相应的维特比译码器设计
卷积码编译码基本原理
(n,k,m)卷积码中编码后的 n 个码元不仅与当前段的 k 个信息有关,而且也与前面段的信息
有关,编码过程中相互关联的码元为 n(m+1)个。因此,这 N 时间内的码元数目 n(m+1)通常被称
为这种码的约束长度。卷积码的纠错能力随着 m 的增加而增大。
因为任何一个发送序列对应于编码器网格图中的一条路径。似然函数可以用接收序列与编
码器网格图中的路径对应输出序列之间的距离来度量,译码的过程即是在网格图中寻找一条与
接收序列距离最小的路径。
一般情况下,(n,k,m)卷积码编码器共有 2km 个状态,若输入的信息序列的长度是(L+m)K
(后 mk 个码元全为 0),则进入和离开每一状态各有 2k 条分支在网格图上共有 2kl 条不同的路径,
相应于编码器输出的 2kl 个码序列。具体理论见各种书籍介绍。
(2,1,4)卷积器结构及其性质
本实验中所涉及的(2,1,4)卷积码编码器结构如图 1 所示:
图 1
其对应的编码规则为:
C[1]=input+D2+D3;
C[0]=input+D0+D2+D3;
该编码器的 viterbi 译码的篱笆图如图 2 所示:
0 1 2 3 4 5……
图 2
注:
a) 0走实线,1 走虚线;
b) 在 16 个状态全部达到之后,状态图中间状态开始循环出现;
viterbi 卷积器的 verilog 实现
如图 3 所示:
源码 1010010…编码结果[1:0]110010100…
译码结果 1010010…
编码器译码器
噪音[1:0] 1100100110…
图 3
Test_decode //to test the basic function of this project
…….encode //to encode the original 01 code, and output the convoluted codes
…….decode //input the codes which are generated by encoder and interfered by
//random noise
//pute the length of the two paths linked to node x and
//generated when a new es in ( x ' {0,1,...,15})
……..acs0
……..acs1
……..acs23
……..acs_4_7
……..acs_8_15
……..mod2 //puter the distance between this inputted code and 00
//01 10 or 11, and the result is inputted into acs0,acs1 and
//the like.
//get the result of acs0, acs1 and the like, compare the
//distance of the two paths linked to a single nod and choose
//the shorter paths as the path value as the basic value of
//the nod when a new es in
……..path01
……..path23
……..path_4_7
……..path_8_15
Notation:
1. 因为初始截断树的存在,各结点有着不同的特点,故分成
acs0,acs1,acs23,acs_4_7,acs_8_15 5 个不同的模块,其实他们功用相同;同
样,path01,path23,path_4_7,path_8_15 也由此原因得出;
二