卷积码的 BCJR 译码算法 (一)
本文主要讲卷积码的 BCJR 译码算法。需要知道卷积码的基本原理和一些概率知识。我们会推导译码算法的公式,并以具体的例子来讲解 BCJR 的译码过程。
录制的视频在:https://www.bilibili.com/video/BV1n24y1i7Dh/
我们知道,卷积码是一种状态机,卷积码编码器中寄存器的数据就是状态,当前状态已知的条件下,当前状态的输出,至于当前的输入有关,而与过去的状态和输入无关,这就是马尔可夫(Markov)性。
在收到的数据为:
则,为了译码第 t 时刻的发送比特,我们计算这个后验概率
在 t 时刻,当前状态为
下一个状态为
我们把输入为 0 时的状态转移的集合,记为
我们把输入为 1 时的状态转移的集合,记为
则:
和
所以,关键点是计算如下这个概率:
我们做一下推导:
因此,我们需要计算这个联合概率:
我们把 r 分成三部分,一部分是 t 时刻以前的接收数据,一部分是 t 时刻接收的数据,一部分是 t 时刻之后接收的数据:
则:
我们再来分析公式 (1) 中后半部分
把 (2) 代入 (1) 有:
我们来看一下公式 (3) 的含义:
我们要分析当前状态为 p,下一个状态为 q ,且接收到数据为 r 这个联合概率,那么这个概率由三部分相乘得到:
(1) t 时刻之前接收到的数据为 ,且到达了 t 时刻的状态 为 p 的概率:
(2) t 时刻状态为 p 的条件下,到达下一个状态 为 q 且收到数据为 的概率
(3) t+1时刻状态为 q 的条件下,t 时刻之后的输出为 的概率
那么:
我们举个例子来说明:
我们使用卷积码:
则结构如下:

也可以画成下图,两者是等价的:

则其状态转移栅格图为:

假如我们要编码 10 个比特,从状态 00 出发,编码结束后回到 00 状态,则所有可能路径有:

假如我们编码的比特 x=[1, 1, 0, 0, 1, 0, 1, 0, 1, 1]
则输出比特为 V=[11 11 01 01 10 01 11 01 10 10]
编码路径如上图中红色所示。
我们假如要计算如下这个概率
注意上面公式中每个 其实是接收到的两个数据,分别对应
通过信道发送后得到的数据(这里要稍微注意一下,我们用 BPSK,则 0--> -1, 1---->1 , 发送的是 -1 或者 +1).
输入 为 比特 1, 对应的状态转移有如下几种情况:
所以:
那么公式 (4) 中任何一个求和都可以按照下面这个例子来展开,我们以 为例: