卷积码
卷积码是一种非分组码,它与分组码的主要差别是有记忆编码,即在任意时段,编码器的n个输出不仅与此时段的K个输入有关,而且还与存储器中的前M个输入有关,表示为(n, k, m)。其中n表示编码器有n个输出,k表示编码器有k个输入,m表示编码器中移位寄存器的个数即前m个输入。
解码使用最大似然的Viterbi译码法。
示例
(2,1,2)卷积码
1位输入,2位输出,2个移位寄存器D
两路的生成多项式为c1j:1+x+x2,c2j:1+x2
(2,1,2)卷积码的状态:
在上图中,定义s j = (u j, u j-1) 为卷积码在j时刻的到达状态,s j-1 = (u j-1, u j-2)为j时刻的出发状态。
若输入序列为10110,则输出序列为11 10 00 01 01
卷积码的译码
任何一个编码输出序列都对应着树图上的唯一一条路径,译码器要根据接受序列,找出这条路径。按照ML(最大似然准则)译码原则,译码器应该在图的所有路径中,找出这样一条,其编码输出序列与译码器接收的序列之间的码距最小。
示例
(2,1,2)卷积码译码
假设j时候接收到的比特是y1j、y2j,则网格图在j>=2时刻有8种不同的分支(相同的分支指:出发状态与到达状态相同),每个分支对应2比特编码输出c1j、c2j。这2比特编码输出与接收比特之间的汉明距称为该分支的分支度量。
假设第i步到第(i+1)步的接受比特位01,则
从起始状态到 j 时刻的某个状态的路径是由各个树枝连成的,这些树枝的分支度量之和称为该路径的累积度量。
某个路径的累积度量实际是该路径与接收序列的汉明距。ML译码就是要寻找到 j 时刻累计度量最小的路径
假设输出比特为:01 11 01
最大似然序列姨妈要求序列有限,因此对卷积码来说,要求能结尾。即在信息序列输入完成后,利用输入一些特定的比特,是M个状态的个残留路径可以达到某一已知状态(一般是全零状态)。
基于最大似然译码(ML译码)准则,寻找从起点到终点的最大似然路径,即从起点到终点累计度量最小的路径。
Viterbi译码的核心思想:进行累加–比较–选择(ACS)基本计算并产生新的幸存路径。
假设 接收序列:01 11 01 11 00
译码序列为11000