卷积码的维特比译码
主要内容
卷积码编码原理 维特比译码原理 Matlab实验 DSP仿真实验
1.卷积码编码
卷积编码则把k比特信息段编成n比特的 码组,但所编的n长码组不仅同当前的k 比特信息段有关联,而且还同前面的(N1)个信息段有关联,人们常称这N为该卷 积码的约束长度。
一般来说,对于卷积码,k和n是较小的 整数, 常把卷积码记作(n,k,N)卷积码,它 的编码效率为R=k/n。
据
主程序完成 对输入比特的
译码
探针将已译 码的数据写入
文件
译码实验结果对比
MATLAB译码 结果
DSP译码结 果
图2 :(2,1,2)卷积码的树状图
2.
格图也称网络图或篱笆图,它由状态图在时间上展开而得到,如图3所示。图 中画出了所有可能的数据输入时, 状态转移的全部可能轨迹,实线表示数据为 0, 虚线表示数据为 1, 线旁数字为输出码字,节点表示状态。
图3:(2,1,2)卷积码的网格图
2.卷积码的维特比译码
4.卷积码编码的C54x Simulator仿 真试验
初始化
探针从PC文件 中读取比特数
据
主程序完成 对输入比特的
卷积编码
探针将已编 码的数据写入
文件
编码结果对比
未编码数据
DSP编码后的数 据
MATLAB编码 后的数据
Viterbi译码的C54x Simulator仿真 试验
初始化
探针从PC文件 中读取比特数
维特比译码是一种最大似然译码算法。 最大似然译码算法的基本思路是: 把接收码字与所有可能的码字比较,选择一种码距最小的码字作为解码输出。 由于接收序列通常很长,所以维特比译码时最大似然译码做了简化, 即它把接 收码字分段累接处理,每接收一段码字,计算、 比较一次, 保留码距最小的路 径,直至译完整个序列。
1.1 卷积码的图形描述
(2,1,2)卷积码编码器
路径2
输入
+
DDຫໍສະໝຸດ +路径1图1
输出
生成多项式 :
g (1) (D) 1 D2 g(2) (D) 1 D D2
上式也可以写成二进制或八进制
g(1) 101, g(2) 111 g (1) 5, g (2) 7
1.2 卷积码的描述
1.树状图 树状图描述的是在任何数据序列输入时,码字所有可能的输出。 (2,1,2)卷 积码的编码可以画出其树状图如图2所示。
现以上述(2,1,2)码为例说明维特比译码过程。 设发送端的信息数 据[00000],由编码器输出的码字A=[0000000000],接收端接收的码
B=[0100010000] 有2位码元差错。下面参照图 3的格状图说明 译码过程。
如图4所示,先选前 3 个码作为标准,对到达第 3 级的 4 个 节点的 8 条路径进行比较, 逐步算出每条路径与接收码字之间的累 计码距。累计码距分别用括号内的数字标出,对照后保留一条到达该 节点的码距较小的路径作为幸存路径。再将当前节点移到第 4 级,计 算、比较、保留幸存路径,直至最后得到到达终点的一条幸存路径, 即为解码路径,如图 4中实线所示。 根据该路径, 得到解码结果。
译码输出为:00000 图4:维特比译码的网格图
3.卷积码编译码的Matlab仿真
❖ 1.convenc函数 ❖ convenc函数为:卷积码编码函数,对k位
信息比特进行卷积编码 ❖ 2.poly2trellis函数 ❖ poly2trellis函数为: 卷积码生成矩阵函数 ❖ 3.vitdec函数 ❖ vitdec函数为译码函数