?
1962年Gallager提出了LDPC码的基本概率译码算法,本节将阐述这一思想。从联合条件概率分布到边缘条件概率分布
解决一个大的问题的基本思路在于将其分解为一系列的小问题。对于似然函数而言,如果求
的概率密度可以达到同样的效果,即求
那么求解会方便很多。如果
,那么求解
和求解
具有相同的效果。那么问题在于是否可以这样做。
如果
之间相互独立,这一关系显然是成立的;然而独立也就意味着不相关,那么这是不符合冗余度要求的。注意到我们求的是条件独立,条件是
属于码本空间。条件独立的关系应该是成立的,虽然不清楚如何证明,然而其相关性已经作为条件出现在概率分布函数中了,在这一前提下
之间相互独立。加性高斯白噪声信道
发送信号通过信道后成为了接收信号
,信道是加性高斯白噪声信道(从矢量信道模型去考虑)意味着
那么我们有
,这是因为同样在码本空间内,
的概率分布和
无关。校验方程
当我们致力于求解
的时候,实际上我们只需要在0,1之间选择一个取值,所以我们可以分别计算0,1的概率,计算比值
????
注意到乘号左侧是和信道有关的,右边的
被
(包含
的方程)代替的原因是其他校验方程和条件是无关的。写到这里的时候,我们似乎计算不下去了。不妨做一个不切实际的假设,那就是除
以外的其他概率分布已经求得了。当我们考虑一个校验方程的时候会发现
时该校验方程成立的条件是方程中其他的变量具有偶数个1,
时正好相反。但是
是多个校验方程的集合,如果说这些校验方程条件独立,将每一方程成立的概率相乘即可。那么问题是,什么时候校验方程条件独立?在回答这个问题之前,我们可以举出几个例子。
(1)当两个校验方程一样的时候
此时(一般情况下)
????
(2)校验方程具有相同项
此时(一般情况下)
可以认为,如果校验方程行线性无关,那么
?
引理:
一个长为
的相互独立的二进制序列,其中第
个比特为1的概率为
,那么整个序列中包含偶数个1的概率是
证明:
将上述函数展开为关于
的多项式,则
的系数表示这个长为m的序列中"1"的个数为
的概率。
这个函数与前一个函数的区别在于:
的奇数次幂的系数符号不同,两者正好互为正负。将这两个函数相加,那么
的偶次幂的系数为原函数的2倍,奇次项相加后消去。令
,就可以得到序列中"1"的个数为偶数的概率:
同样可得,序列中"1"的个数为奇数的概率是
?
上文已经阐述
之间的条件独立特性,同时
????
所以在基于除
以外的其他概率分布已经求得的前提下,求解
是可行的。4
这个前提是无法达到的,上述过程中我们也看到了求解每一个比特的概率通过校验方程环环相扣。或许,如果我们可以找到一个线头,这个问题可能就可以求解了。但很可惜的是,由于比特的相互依赖关系,计算概率的过程实际上是一个环。(大部分情况下是这样的)这个时候,概率译码直接将其修剪成了一棵树以计算概率分布。
修剪的原则在于,上层节点不能运用底层节点已经用过的校验信息,防止陷入循环。此时,通过绘制校验树,就能够求解后验概率分布。
概率译码给出了一种求解方式,那么这种针对单一比特的求解方式在真实的计算过程中是否可行?如果基于计算所有码元考虑是否有更好的计算方法?这种方法求得的解是否最优?在我看来,由于其余比特的概率是不准确的(不是最佳估计),此时我们也不能够得到求解比特的真实后验概率。