前言
介绍matlab当中poly2trellis函数的使用方法以及相关注意事项,并且举例如何实现LET turbo码的实现。
一、相关知识
1 、卷积码
1、卷积码(n,k,L)
其中n表示输出码字长度,k表示输入信息比特长度,L表示卷积码中的约束长度(L=m+1,m为卷积码中寄存器个数)
2、码率R
R = k/n 为卷积码的码率。
2、 编码器的表示方法
生成多项式
以Turbo码为例:
经过一个寄存器之后延时为D,因此g0 = 1+D+D3,二进制表示为g0 = [1 1 0 1],等于8进制的15.
g1 = 1+D2+D3,二进制表示为[1 0 1 1]等于8进制的13.
生成多项式为:
但是需要注意的是,此种反馈形式的生成多项式在matlab当中需要采用特殊形式表示
二、Matlab使用步骤
1.官方示例
要求:表示码率为1/2的带反馈系统卷积码(RSC)
编码结构:
生成多项式矩阵:[37 33],37表示反馈连接多项式,需要注意的是,由于第一个输出对应于系统比特,第一个生成多项式需要和反馈连接多项式匹配,即第一个位置为37。
trellis = poly2trellis(5,[37 33],37)
2.Turbo码示例
trellis = poly2trellis(4,[13 15],13) % 约束长度,八进制表示的生成矩阵
其中13为[1 0 1 1]的8进制表示,15为[1 1 0 1]的八进制表示。