欢迎光临散文网 会员登陆 & 注册

LDPC 低密度奇偶校验码的软判决译码算法浅析(二)--降低运算量

2022-08-05 00:20 作者:乐吧的数学  | 我要投稿

本系列文章列表:

LDPC低密度奇偶校验码的比特翻转译码浅析

LDPC 低密度奇偶校验码的软判决译码算法浅析(一)

LDPC 低密度奇偶校验码的软判决译码算法浅析(二)--降低运算量

LDPC 低密度奇偶校验码的软判决译码算法浅析(三)--算法和代码

LDPC 软判决算法之似然比形式 (一)

LDPC 软判决算法之似然比形式 (二)--算法和代码

LDPC 软判决算法之似然比形式 (三) tanh-lambda 规则

-----------------------------------------------------


这篇文章以及对应录制的视频,是对上面文章和视频的进一步完善。
在上面的文章和视频中,对 LDPC 软判决译码算法 的背后思想和数学公式做了一个初步的推导,大致明白了 LDPC 软判决译码算法的流程,但是,其中还有一个细节需要进一步优化,这个优化主要是为了降低运算量的。

录制了一个小视频来讲解这个文章:https://www.bilibili.com/video/BV1B24y1Z7BY/

本篇文章和对应的视频,属于 “续集”,建议看完前面的文章和视频后再看。

在前面的文章中,我们根据各个比特的概率,来估算各个校验方程成立的概率,得出如下的公式:


r_%7Bmn%7D(x)%3Dp(z_m%3D0%7Cc_n%3Dx%2Cr)%20%3D%0A%20%20%20%20%20%20%5Csum_%7B%5C%7B%20%5C%7B%20x_%7B%5Cgrave%7Bn%7D%7D%2C%5Cspace%20%5Cgrave%7Bn%7D%20%5Cin%20N_%7Bm%2Cn%7D%5C%7D%3A%20x%3D%5Csum_l%20x_l%5C%7D%7D%0A%20%20%20%20%20%20%5Cquad%20%5Cprod_%7Bl%20%5Cin%20N_%7Bm%2Cn%7D%7Dp(c_l%3Dx_l%7Cr)--------%E5%85%AC%E5%BC%8F(1)

这个公式看起来很吓人!
首先,这个公式的含义是计算校验方程成立的概率,即校验方程  $z_m=0$ 成立的概率,给定的条件是 第 n 个 比特的值已知,以及收到的数据 r ,这里的 r 是一个向量。

其次,这个方程的右边,涉及到的是这个校验方程中含有的比特取值 0 或者 1 的概率,把这些比特相关的概率做相乘及求和等动作,完成对校验方程成立的概率的估计。

下面还是用例子来说明比较好。

假设 LDPC 用的校验矩阵如下,本篇文章都是以这个校验矩阵为例子(这个例子与前面文章的例子是相同的)。


A%20%3D%20%5Cbegin%7Bbmatrix%7D%0A%20%201%26%201%20%26%201%20%26%200%20%26%200%20%26%201%20%26%201%20%26%200%20%26%200%20%26%201%5C%5C%0A%20%201%26%200%20%26%201%20%26%200%20%26%201%20%26%201%20%26%200%20%26%201%20%26%201%20%26%200%5C%5C%0A%20%200%26%200%20%26%201%20%26%201%20%26%201%20%26%200%20%26%201%20%26%200%20%26%201%20%26%201%5C%5C%0A%20%200%26%201%20%26%200%20%26%201%20%26%201%20%26%201%20%26%200%20%26%201%20%26%200%20%26%201%5C%5C%0A%20%201%26%201%20%26%200%20%26%201%20%26%200%20%26%200%20%26%201%20%26%201%20%26%201%20%26%200%0A%5Cend%7Bbmatrix%7D

我们译码出来的码字表示成向量形式:
c%3D%5Cbegin%7Bbmatrix%7D%0A%20%20c_1%20%26%20c_2%20%26%20c_3%20%26%20c_4%20%26%20c_5%20%26%20c_6%20%26%20c_7%20%20%26%20c_8%20%26%20c_9%20%26%20c_%7B10%7D%0A%5Cend%7Bbmatrix%7D

这个译码出来的码字,不是指发送的正确的码字,是表示我们待译码出来的,例如,我们可能想评估  c_1%3D1 的可能性(概率)。

我们把接收到的数据表示为一个向量:
r%3D%5Cbegin%7Bbmatrix%7D%0A%20%20r_1%20%26%20r_2%20%26%20r_3%20%26%20r_4%20%26%20r_5%20%26%20r_6%20%26%20r_7%20%20%26%20r_8%20%26%20r_9%20%26%20r_%7B10%7D%0A%5Cend%7Bbmatrix%7D


 5 个校验方程为:

%5Cbegin%7Beqnarray%7D%0Az_1%20%26%3D%20c_1%20%2B%20c_2%20%2B%20c_3%20%2B%20c_6%20%2B%20c_7%20%2B%20c_%7B10%7D%20%5C%5C%0Az_2%20%26%3D%20c_1%20%2B%20c_3%20%2B%20c_5%20%2B%20c_6%20%2B%20c_8%20%2B%20c_%7B9%7D%20%5C%5C%0Az_3%20%26%3D%20c_3%20%2B%20c_4%20%2B%20c_5%20%2B%20c_7%20%2B%20c_9%20%2B%20c_%7B10%7D%20%5C%5C%0Az_4%20%26%3D%20c_2%20%2B%20c_4%20%2B%20c_5%20%2B%20c_6%20%2B%20c_8%20%2B%20c_%7B10%7D%20%5C%5C%0Az_5%20%26%3D%20c_1%20%2B%20c_2%20%2B%20c_4%20%2B%20c_7%20%2B%20c_8%20%2B%20c_%7B9%7D%0A%5Cend%7Beqnarray%7D


 假如我们在考虑比特 2 取值 为 1 的概率,那么上面公式 (1) 中的 c_n%3Dx 就是 n=2, x=1,  c_2%3D1,  进一步假如咱们考虑的是第一个校验方程,则公式 (1) 中的 %20z_m%20%3D%20z_1N_%7Bm%2Cn%7D 就是一个下标的集合,表示第 m个校验方程中,含有的比特的下标,但是不包括下标 n 的。在这个具体的例子中,就是 m=1 个校验方程中,除了比特 n=2 之外的那些比特的下标, N_%7Bm%2Cn%7D%3DN_%7B1%2C2%7D%3D%5C%7B1%2C3%2C6%2C7%2C10%5C%7D.

重写公式(1)

r_%7B12%7D(1)%3Dp(z_1%3D0%7Cc_n%3D1%2Cr)%20%3D%0A%20%20%20%20%20%20%5Csum_%7B%5C%7B%20%5C%7B%20x_%7B%5Cgrave%7Bn%7D%7D%2C%5Cspace%20%5Cgrave%7Bn%7D%20%5Cin%20%5C%7B1%2C3%2C6%2C7%2C10%5C%7D%5C%7D%3A%201%3D%5Csum_l%20x_l%5C%7D%7D%0A%20%20%20%20%20%20%5Cquad%20%5Cprod_%7Bl%20%5Cin%20%5C%7B1%2C3%2C6%2C7%2C10%5C%7D%7Dp(c_l%3Dx_l%7Cr)--------%E5%85%AC%E5%BC%8F(1)


求和的部分,是对所有能使第 m=1 个校验方程成立的那些比特,都要做一次求和,总共有以下这么多情况:

因为 c_2%3D1了,所以,要使第 m=1 个校验方程成立,则其它 5 个比特,需要有奇数个 1,即 c_1%2C%20c_3%2C%20c_6%2C%20c_7%2C%20c_%7B10%7D 这 5 个比特中应该有奇数个 1.

则含有 1 个 1 的有 5 种情况:
%5C%7Bc_1%2C%20c_3%2C%20c_6%2C%20c_7%2C%20c_%7B10%7D%5C%7D%20%3D%20%20%5C%5C%0A%5C%7B0%2C0%2C0%2C0%2C1%5C%7D%20%20%5C%5C%0A%5C%7B0%2C0%2C0%2C1%2C0%5C%7D%20%20%5C%5C%0A%5C%7B0%2C0%2C1%2C0%2C0%5C%7D%20%20%5C%5C%0A%5C%7B0%2C1%2C0%2C0%2C0%5C%7D%20%20%5C%5C%0A%5C%7B1%2C0%2C0%2C0%2C0%5C%7D含有 3 个 1 的有 10 种情况:

%5C%7Bc_1%2C%20c_3%2C%20c_6%2C%20c_7%2C%20c_%7B10%7D%5C%7D%20%3D%20%20%5C%5C%0A%5C%7B0%2C1%2C1%2C1%2C0%5C%7D%20%20%5C%5C%0A%5C%7B0%2C1%2C1%2C0%2C1%5C%7D%20%20%5C%5C%0A%5C%7B0%2C1%2C0%2C1%2C1%5C%7D%20%20%5C%5C%0A%5C%7B0%2C0%2C1%2C1%2C1%5C%7D%20%20%5C%5C%0A%5C%7B1%2C0%2C1%2C1%2C0%5C%7D%20%20%5C%5C%0A%5C%7B1%2C0%2C1%2C0%2C1%5C%7D%20%20%5C%5C%0A%5C%7B1%2C0%2C0%2C1%2C1%5C%7D%20%20%5C%5C%0A%5C%7B1%2C1%2C0%2C1%2C0%5C%7D%20%20%5C%5C%0A%5C%7B1%2C1%2C0%2C0%2C1%5C%7D%20%20%5C%5C%0A%5C%7B1%2C1%2C1%2C0%2C0%5C%7D


含有 5 个 1 的就 1 种情况:
%5C%7Bc_1%2C%20c_3%2C%20c_6%2C%20c_7%2C%20c_%7B10%7D%5C%7D%20%3D%20%20%5C%7B1%2C1%2C1%2C1%2C1%5C%7D%20%20


总计 16 种情况。

对这 16 种情况中的任何一种,都需要再做一个连乘。例如:%5C%7Bc_1%2C%20c_3%2C%20c_6%2C%20c_7%2C%20c_%7B10%7D%5C%7D%20%3D%20%20%5C%7B0%2C1%2C1%2C0%2C1%5C%7D%20%20, 需要做的连乘为:

p(c_1%3D0%7Cr)p(c_3%3D1%7Cr)p(c_6%3D1%7Cr)p(c_7%3D0%7Cr)p(c_%7B10%7D%3D1%7Cr)


所以,总的计算量就是 16x4=64个乘法(还有几乎可以忽略的15个加法):

r_%7B12%7D(1)%3Dp(z_1%3D0%7Cc_n%3D1%2Cr)%20%3D%20%20%5C%5C%0A%20%20%20%20p(c_1%3D0%7Cr)p(c_3%3D0%7Cr)p(c_6%3D0%7Cr)p(c_7%3D0%7Cr)p(c_%7B10%7D%3D1%7Cr)%20%2B%20%5C%5C%0A%20%20%20%20p(c_1%3D0%7Cr)p(c_3%3D0%7Cr)p(c_6%3D0%7Cr)p(c_7%3D1%7Cr)p(c_%7B10%7D%3D0%7Cr)%20%2B%5C%5C%0A%20%20%20%20%5Ccdots%20%5Ccdots%20%5C%5C%0A%20%20%20%20p(c_1%3D1%7Cr)p(c_3%3D0%7Cr)p(c_6%3D0%7Cr)p(c_7%3D0%7Cr)p(c_%7B10%7D%3D0%7Cr)%2B%20%5C%5C%0A%20%20%20%20p(c_1%3D0%7Cr)p(c_3%3D1%7Cr)p(c_6%3D1%7Cr)p(c_7%3D1%7Cr)p(c_%7B10%7D%3D0%7Cr)%2B%20%5C%5C%0A%20%20%20%20p(c_1%3D0%7Cr)p(c_3%3D1%7Cr)p(c_6%3D1%7Cr)p(c_7%3D0%7Cr)p(c_%7B10%7D%3D1%7Cr)%2B%5C%5C%0A%20%20%20%20%5Ccdots%20%5Ccdots%20%5C%5C%0A%20%20%20%20p(c_1%3D1%7Cr)p(c_3%3D1%7Cr)p(c_6%3D1%7Cr)p(c_7%3D0%7Cr)p(c_%7B10%7D%3D0%7Cr)%2B%5C%5C%0A%20%20%20%20p(c_1%3D1%7Cr)p(c_3%3D1%7Cr)p(c_6%3D1%7Cr)p(c_7%3D1%7Cr)p(c_%7B10%7D%3D1%7Cr)

其实,从上面的计算,我们也可以看到很多冗余的,例如上面第一个连乘和第二个连乘中,前三个元素相乘都是相同的,可以只计算一次。那么,我们如何来优化掉这些冗余呢?牛人们推导出了一个简洁的公式。

先引入一个临时函数:

%5Cxi%20(k)%3D%5Csum_%7Bi%3D1%7D%5Ek%20x_%7BN_%7Bm%2Cn%7D(i)%7D


求和公式中下标有点多,不容易看清楚,求和是对 x 求和,只是下标不同,下标为:N_%7Bm%2Cn%7D(i) ,以前面的例子看,这个N_%7Bm%2Cn%7D%3DN_%7B1%2C2%7D%3D%7B1%2C3%2C6%2C7%2C10%7D
则: N_%7Bm%2Cn%7D(1)%20%3D%201%2C%20N_%7Bm%2Cn%7D(2)%3D3%2CN_%7Bm%2Cn%7D(3)%3D6%2CN_%7Bm%2Cn%7D(4)%3D7%2CN_%7Bm%2Cn%7D(5)%3D10


所以,例如当 k = 3时:

%5Cxi%20(3)%20%3D%20x_1%2Bx_3%2Bx_6


其中,x_1 表示的是 c_1 的取值。

我们把 N_%7Bm%2Cn%7D 中元素的个数记为 L.

那么,可以形成一个如下所示的图:


%5Cxi%20(L)%3Dx (其中 x 是  c_n 的取值),则这种情况是被考虑到进来的,否则,这种组合就不用考虑,不用展开连乘并参与到累加中。继续上面的例子,因为 N_%7Bm%2Cn%7D%3DN_%7B1%2C2%7D%3D%7B1%2C3%2C6%2C7%2C10%7D, 所以 L=5.

%5Cxi%20(L)%3D%5Cxi%20(5)%3Dx_1%2Bx_3%2Bx_6%2Bx_7%2Bx_%7B10%7D


要考虑的 c_2%3Dx%3D1,所以,%5Cxi%20(5)%3D1 的组合是我们需要考虑的,也就是凡是满足 x_1%2Bx_3%2Bx_6%2Bx_7%2Bx_%7B10%7D%3D1 的组合是我们需要考虑的,这就是前面 “不厌其烦” 列出来的那 16 种情况的公式表达。

下面开始推导关键的递推公式,利用这个递推公式,就可以简化计算,消除计算过程中的冗余了(这里先用上面的例子来讲解,最后再总结成通用的公式)

首先令 %5Cxi%20(0)%20%3D%200%20
那么 %5Cxi(1)%20%3D%20x_1 ,就依赖于%20x_1 的取值

然后 %5Cxi(2)%20%3D%20%5Cxi(1)%20%2B%20x_3, 就依赖于 x_3的取值

然后 %5Cxi(3)%20%3D%20%5Cxi(2)%20%2B%20x_6, 就依赖于 x_6 的取值

然后 %5Cxi(4)%20%3D%20%5Cxi(3)%20%2B%20x_7, 就依赖于 x_7 的取值

最后 %5Cxi(5)%20%3D%20%5Cxi(4)%20%2B%20x_%7B10%7D, 就依赖于 x_%7B10%7D的取值.

为了书写方便,我们再引入一个记号  W_k(x)%3Dp(%5Cxi(k)%3Dx), 表示在上面图形的第 k 步,或者说加到第 k 个数时 结果为 x 的概率。在例子中 x =1 ,那么

W_1(1)%3Dp(%5Cxi(1)%3D1)  表示的是 x_1%3D1 的概率

W_2(1)%3Dp(%5Cxi(2)%3D1)  表示的是%20%5Cxi(1)%2Bx_3%3Dx_1%2Bx_3%3D1 的概率
%0AW_3(1)%3Dp(%5Cxi(3)%3D1)  表示的是 %5Cxi(2)%2Bx_6%3Dx_1%2Bx_3%2Bx_6%3D1 的概率

W_4(1)%3Dp(%5Cxi(4)%3D1) 表示的是 %5Cxi(3)%2Bx_7%3Dx_1%2Bx_3%2Bx_6%2Bx_7%3D1的概率
%0AW_5(1)%3Dp(%5Cxi(5)%3D1)  表示的是 %5Cxi(4)%2Bx_%7B10%7D%3Dx_1%2Bx_3%2Bx_6%2Bx_7%2Bx_%7B10%7D%3D1的概率

因为是 从 0 开始的,所以,W_0(0)%3D1%EF%BC%8CW_0(1)%3D0,即在  0 节点上,等于 0 的概率是 1, 等于 1 的概率是 0.

我们来看一下:

节点 1 上 等于 0 的情况有两种:

            节点 0 上等于 0,且 x_1%3D1
             节点 0 上等于 1,且 x_1%3D0


W_1(1)%3Dp(%5Cxi(1)%3D1)%20%3D%20W_0(0)p(x_1%3D1)%2BW_0(1)p(x_1%3D0)
同理:
%0AW_1(0)%3Dp(%5Cxi(1)%3D0)%20%3D%20W_0(0)p(x_1%3D0)%2BW_0(1)p(x_1%3D1)


那么:
W_2(1)%3Dp(%5Cxi(2)%3D1)%20%3D%20W_1(0)p(x_3%3D1)%2BW_1(1)p(x_3%3D0)%20%20%5C%5C%0A%0AW_2(0)%3Dp(%5Cxi(2)%3D0)%20%3D%20W_1(0)p(x_3%3D0)%2BW_1(1)p(x_3%3D1)



依次类推,则:

W_5(1)%3Dp(%5Cxi(5)%3D1)%20%3D%20W_4(0)p(x_%7B10%7D%3D1)%2BW_4(1)p(x_%7B10%7D%3D0)%20%20%5C%5C%0A%0AW_5(0)%3Dp(%5Cxi(5)%3D0)%20%3D%20W_4(0)p(x_%7B10%7D%3D0)%2BW_4(1)p(x_%7B10%7D%3D1)
用上面两个式子相减:

W_5(0)-W_5(1)%3D%5BW_4(0)-W_4(1)%5D%5Bp(x_%7B10%7D%3D0)-p(x_%7B10%7D%3D1)%5D

同理可得:

W_4(0)-W_4(1)%3D%5BW_3(0)-W_3(1)%5D%5Bp(x_%7B7%7D%3D0)-p(x_%7B7%7D%3D1)%5D%20%20%5C%5C%0AW_3(0)-W_3(1)%3D%5BW_2(0)-W_2(1)%5D%5Bp(x_%7B6%7D%3D0)-p(x_%7B6%7D%3D1)%5D%20%20%5C%5C%0AW_2(0)-W_2(1)%3D%5BW_1(0)-W_1(1)%5D%5Bp(x_%7B3%7D%3D0)-p(x_%7B3%7D%3D1)%5D%20%5C%5C%0AW_1(0)-W_1(1)%3D%5BW_0(0)-W_1(0)%5D%5Bp(x_%7B1%7D%3D0)-p(x_%7B1%7D%3D1)%5D其中:

W_0(0)-W_1(0)%20%3D%201


把递推公式逐级代回去,则有:

W_5(0)-W_5(1)%3D%0A%20%20%20%20%5Bp(x_%7B10%7D%3D0)-p(x_%7B10%7D%3D1)%5D*%5Bp(x_%7B7%7D%3D0)-p(x_%7B7%7D%3D1)%5D*%5Bp(x_%7B6%7D%3D0)-p(x_%7B6%7D%3D1)%5D*%5C%5C%0A%20%20%20%20%5Bp(x_%7B3%7D%3D0)-p(x_%7B3%7D%3D1)%5D*%5Bp(x_%7B1%7D%3D0)-p(x_%7B1%7D%3D1)%5D


W_5(0)%20%3D%20r_%7B12%7D(0)%2C%20%5Cquad%20W_5(1)%3Dr_%7B12%7D(1)


r_%7B12%7D(0)%20-%20r_%7B12%7D(1)%20%20%3D%0A%20%20%20%20%5Bp(x_%7B10%7D%3D0)-p(x_%7B10%7D%3D1)%5D*%5Bp(x_%7B7%7D%3D0)-p(x_%7B7%7D%3D1)%5D*%5Bp(x_%7B6%7D%3D0)-p(x_%7B6%7D%3D1)%5D*%5C%5C%0A%20%20%20%20%5Bp(x_%7B3%7D%3D0)-p(x_%7B3%7D%3D1)%5D*%5Bp(x_%7B1%7D%3D0)-p(x_%7B1%7D%3D1)%5D%20

又有 r_%7B12%7D(0)%20%2B%20r_%7B12%7D(1)%3D1


则可以把 r_%7B12%7D(0)%20%2C%20%5Cquad%20r_%7B12%7D(1) 都解出来。

为了书写方便,我们令:

%5Cdelta%20r_%7B12%7D%20%3D%20r_%7B12%7D(0)%20-%20r_%7B12%7D(1)%20%20%3D%0A%20%20%20%20%5Bp(x_%7B10%7D%3D0)-p(x_%7B10%7D%3D1)%5D*%5Bp(x_%7B7%7D%3D0)-p(x_%7B7%7D%3D1)%5D*%5Bp(x_%7B6%7D%3D0)-p(x_%7B6%7D%3D1)%5D*%5C%5C%0A%20%20%20%20%5Bp(x_%7B3%7D%3D0)-p(x_%7B3%7D%3D1)%5D*%5Bp(x_%7B1%7D%3D0)-p(x_%7B1%7D%3D1)%5D%20


则解出来的结果可以表示为:

r_%7B12%7D(0)%3D%5Cfrac%7B1%2B%5Cdelta%20r_%7B12%7D%7D%7B2%7D%20%20%5C%5C%0Ar_%7B12%7D(1)%3D%5Cfrac%7B1-%5Cdelta%20r_%7B12%7D%7D%7B2%7D


我们来看一下计算量,有 4 个乘法,6 个加减法,以及一个除以 2(可以右移实现),相比之前的 64 个乘法,运算量小了很多。



前面,用具体的例子先做了一个推导。从具体例子的推导和分析中,我们可以得到更一般的递推公式。

令:
W_k(x)%20%3D%20p(%20%5Cxi(k)%20%3D%20x)


递推公式为:
W_k(0)%20%3D%20W_%7Bk-1%7D(0)%20p(x_%7BN_%7Bm%2Cn%7D(k)%7D%3D0)%20%2B%20W_%7Bk-1%7D(1)%20p(x_%7BN_%7Bm%2Cn%7D(k)%7D%3D1)%20%20%20%5C%5C%0AW_k(1)%20%3D%20W_%7Bk-1%7D(1)%20p(x_%7BN_%7Bm%2Cn%7D(k)%7D%3D0)%20%2B%20W_%7Bk-1%7D(0)%20p(x_%7BN_%7Bm%2Cn%7D(k)%7D%3D1)


两式相减,则:

W_k(0)%20-%20W_k(1)%20%3D%20%5BW_%7Bk-1%7D(0)%20-%20W_%7Bk-1%7D(1)%5D%5Bp(x_%7BN_%7Bm%2Cn%7D(k)%7D%3D0)%20-%20p(x_%7BN_%7Bm%2Cn%7D(k)%7D%3D1)%5D


这个递推公式一直推下去,则有:

W_k(0)%20-%20W_k(1)%20%3D%20%5Cprod_%7Bi%3D1%7D%5E%7Bk%7D%5Bp(x_%7BN_%7Bm%2Cn%7D(i)%7D%3D0)%20-%20p(x_%7BN_%7Bm%2Cn%7D(i)%7D%3D1)%5D


那么,若 L 是 %20%20N_%7Bm%2Cn%7D%20 中元素的个数,则:

W_L(0)%20-%20W_L(1)%20%3D%20%5Cprod_%7Bi%3D1%7D%5E%7BL%7D%5Bp(x_%7BN_%7Bm%2Cn%7D(i)%7D%3D0)%20-%20p(x_%7BN_%7Bm%2Cn%7D(i)%7D%3D1)%5D-------%E5%85%AC%E5%BC%8F(2)


前面咱们所有的推导,其实都隐含这一个背景条件:“就是在收到数据 r 的条件下“。把这个条件加上变成条件概率,则:

W_L(x)%20%3D%20p(%20%5Cxi(L)%20%3D%20x)%20%3D%3D%3D%3D%E3%80%8BW_L(x)%3Dp(%20%5Cxi(L)%20%3D%20x%7Cr)%20%3D%20p(z_m%3D0%7Cc_n%3Dx%2Cr)%3Dr_%7Bmn%7D(x)


另外,

p(x_%7BN_%7Bm%2Cn%7D(i)%7D)%20%20%3D%20p(c_%7BN_%7Bm%2Cn%7D(i)%7D%3Dx_%7BN_%7Bm%2Cn%7D(i)%7D%7Cr)%20%3D%20q_%7Bm%2CN_%7Bm%2Cn%7D(i)%7D(x_%7BN_%7Bm%2Cn%7D(i)%7D)


则公式(2)递推公式就推导为:

r_%7Bmn%7D(0)%20-%20r_%7Bmn%7D(1)%20%3D%20%5Cprod_%7Bi%3D1%7D%5E%7BL%7D%5Bq_%7Bm%2CN_%7Bm%2Cn%7D(i)%7D(0)%20-%20q_%7Bm%2CN_%7Bm%2Cn%7D(i)%7D(1)%5D


又因为

r_%7Bmn%7D(0)%20%2B%20r_%7Bmn%7D(1)%20%3D%201


所以,容易把 r_%7Bmn%7D(0)%20 和 r_%7Bmn%7D(1) 解出来。

r_%7Bmn%7D(0)%20%3D%20(1%2B%5Cprod_%7Bi%3D1%7D%5E%7BL%7D%5Bq_%7Bm%2CN_%7Bm%2Cn%7D(i)%7D(0)%20-%20q_%7Bm%2CN_%7Bm%2Cn%7D(i)%7D(1)%5D%20)%20%5Cspace%20%2F2%20%20%5C%5C%0Ar_%7Bmn%7D(1)%20%3D%20(1-%5Cprod_%7Bi%3D1%7D%5E%7BL%7D%5Bq_%7Bm%2CN_%7Bm%2Cn%7D(i)%7D(0)%20-%20q_%7Bm%2CN_%7Bm%2Cn%7D(i)%7D(1)%5D%20)%20%5Cspace%20%2F2


所以,运算量大致等于 L-1 次乘法.

这样,我们就得到了公式 (1) 简化算法。

LDPC 低密度奇偶校验码的软判决译码算法浅析(二)--降低运算量的评论 (共 条)

分享到微博请遵守国家法律