LDPC 软判决算法之似然比形式 (一)
本系列文章列表:
LDPC 低密度奇偶校验码的软判决译码算法浅析(二)--降低运算量
LDPC 低密度奇偶校验码的软判决译码算法浅析(三)--算法和代码
LDPC 软判决算法之似然比形式 (三) tanh-lambda 规则
-----------------------------------------------------
在前面的文章中,我们推导了 LDPC 软判决译码的迭代算法,这篇文章,我们用对数比的形式,再推导一下 LDPC 的迭代算法。
(录制的视频在:https://www.bilibili.com/video/BV1JV4y1W7Yq/)
本文参考了文献[1] 的 15.5.6 章节。
为了判决各个发送比特,我们可以用后验概率比值取对数来评估,即:
如果这个比值大于 0 , 则把 比特 n 判决为 1,否则判决为 0.
下面我们来推导上面公式的递推表达式。
我们先对公式(1)中的分子进行推导:
其中用到了:
同理,对公式(1)中的分母部分进行推导:
则公式 (1) 可以 推导为
其中
这一部分是可以根据信道的特点(例如加性高斯白噪声信道)以及调制方式,可以容易计算出来。如果是 BPSK(1-->1, 0-->-1) 调制,经过加性高斯白噪声信道,则
而第二部分
把校验方程的约束,考虑进来,对于 的情况,
参与的那些校验方程要想成立,则每个校验方程中,除了
这个比特外,其余的比特加起来应该等于 1;同理,对于
的情况,
参与的那些校验方程要想成立,则每个校验方程中,除了
这个比特外,其余的比特加起来应该等于 0. 为了行文的方便,我们引入一个记号:
那么 ,就可以表示为
参与的那些校验方程,每个校验方程里面的其它比特之和为 1,即
; 同理,
,就可以表示为
参与的那些校验方程,每个校验方程里面的其它比特之和为 0,即
,那么:
这里需要做一个假设近似,即 参与的校验方程,相互之间独立,即这些校验方程中,除了有共同的比特
外,其它比特没有相同的。当然,这个假设在一般情况下都是不成立的,这里假定成立,或者近似成立(只有相同的比特数不是很多),在这个假设情况下,上面公式右边的分子和分母部分,又可以拆成多个概率的乘积:
同理,
则公式 (2) 变成:
根据公式 (1),
可以记为
则把上面的推导的结果,代入公式 (1),我们可以看到:
这里面的思想,比特 的对数比
,可以用校验方程成立的某种比值(在
和
两个条件下,校验方程成立的概率的比值)来表示。即,校验方程成立的概率,可以用来估算比特取值的概率。我们举个例子来进一步理解上面的结果。
假设 LDPC 用的校验矩阵如下,本篇文章都是以这个校验矩阵为例子。
我们译码出来的码字表示成向量形式:
这个译码出来的码字,不是指发送的正确的码字,是表示我们待译码出来的,例如,我们可能想评估 c1=1 的可能性(概率)。
我们把接收到的数据表示为一个向量:
根据线性分组码相关的原理,我们知道有如下的校验方程:
计算后的结果 z ,是一个含有5个元素的向量,记为:
为了易于理解,我们把上面这个矩阵形式的方程,展开成 5 个校验方程:
咱们考虑正在译码 这个比特,我们需要计算如下这个概率比值的对数:
根据公式 (3):
参与的校验方程有
这三个,所以
因为第一个校验方程的比特有1,2,3,6,7,10,去掉比特 2 后还有 1,3,6,7,10,所以
同理:
从例子中,也可以看出来有用校验方程成立的概率,来估算待译码比特的概率比值的对数,从而可以用来判决这个待译码的比特。
至此,我们第一阶段的推导已经结束,即用校验方程的某种概率来估计待译码比特的某种概率。
-------------------------------------------- 第二段 --------------------------
我们来看公式 (3) 中右边求和公式里面的表达式
根据 函数的定义,写成概率比值的对数形式:
再把 的定义代进去:
这是其具体含义。我们直接把 的定义代入到
有:
根据 tanh rule 定理(这个在附录中推导),这个公式是定理,其中用到的变量,与上面的推导无关,其中 是 取值 0/1 的二值随机变量:
把这个定理应用到公式 (4)
我们为了区分,引入一个新的符号,对上面公式右边,用一个新的符号来表示:
这个 ,可以理解为第 m 个校验方程成立的某种度量,是用 cn=1 和 cn=0 两种情况下的校验方程成立的概率做比较来实现的一种度量,总之,这是衡量校验方程成立的一个量。而这个量中,即公式(5) 中的
,又是 比特 j 的一种概率度量。在具体算法实现时,令其等于
。
则公式 (3) 变成:
公式 (6) 和公式 (5) 一起构成了一种循环迭代。
------------------------------ 至此完成了一轮计算。我们继续举个例子来说明:
假如正在译码 c2 这个比特,即 n=2,c2 参与的校验方程有 z1,z4,z5 这三个,我们考虑来计算第四个校验方程成立的度量,即 m=4,计算 .
第四个校验方程,参与的比特有2,4,5,6,8,10 这六个比特。则公式 (5) 就是:
为了计算出来上个公式,我们需要知道 :
在第一轮时,直接用各自的自然比来计算:
这样就可以计算出来 :
用类似的方法,可以把所有的 都计算出来。
参与的校验方程有
这三个,则:
同理,可以计算出所有的 . 做一次判决。
---------------------例子结束
这个时候,把 都做一次判决,如果满足检验结果正确,则结束。否则,我们有理由用新估计出来的
来进一步强化对校验方程成立的度量的准确性,则
这个需要被更新。
在这个更新中,因为上一轮的 的计算中,是包含了第 m 个校验方程的度量的信息的,所以,为了更新第 m 个校验方程的信息,则需要把 上一轮的
减掉 上一轮的
,则这个更新公式为:
代入公式(5) 有:
------------我们继续用例子来说明一下
接着前面的例子,我们现在已经有了新的 ,这是新的对比特取值的一种概率度量,现在用这个度量去更新对校验方程成立与否的度量。例如我们要更新这个:
需要注意的是,因为 中都用了 第四个校验方程的信息,我们现在的目的又为了计算第四个校验方程的度量信息,因此避免这种自循环的问题,需要从中都拿掉
的影响。
即在以上公式中依次分别拿掉:, 然后,再送到
的计算公式中
------------例子结束
整体示意流程图如下:

[1] Error Correction Coding--Mathematical Methods and Algorithms , Todd K. Moon, Wiley, 2005 ,主要参考第 15.5 章节。