LDPC 軟判決算法之似然比形式 (一)
本系列文章列表:
LDPC 低密度奇偶校驗碼的軟判決譯碼算法淺析(二)--降低運算量
LDPC 低密度奇偶校驗碼的軟判決譯碼算法淺析(三)--算法和代碼
LDPC 軟判決算法之似然比形式 (三) tanh-lambda 規(guī)則
-----------------------------------------------------
在前面的文章中,我們推導了 LDPC 軟判決譯碼的迭代算法,這篇文章,我們用對數(shù)比的形式,再推導一下 LDPC 的迭代算法。
(錄制的視頻在:https://www.bilibili.com/video/BV1JV4y1W7Yq/)
本文參考了文獻[1] 的 15.5.6 章節(jié)。
為了判決各個發(fā)送比特,我們可以用后驗概率比值取對數(shù)來評估,即:
如果這個比值大于 0 , 則把 比特 n 判決為 1,否則判決為 0.
下面我們來推導上面公式的遞推表達式。
我們先對公式(1)中的分子進行推導:
其中用到了:
同理,對公式(1)中的分母部分進行推導:
則公式 (1) 可以 推導為
其中
這一部分是可以根據(jù)信道的特點(例如加性高斯白噪聲信道)以及調(diào)制方式,可以容易計算出來。如果是 BPSK(1-->1, 0-->-1) 調(diào)制,經(jīng)過加性高斯白噪聲信道,則
而第二部分
把校驗方程的約束,考慮進來,對于 的情況,
參與的那些校驗方程要想成立,則每個校驗方程中,除了
這個比特外,其余的比特加起來應該等于 1;同理,對于?
的情況,
參與的那些校驗方程要想成立,則每個校驗方程中,除了?
這個比特外,其余的比特加起來應該等于 0. 為了行文的方便,我們引入一個記號:
那么 ,就可以表示為
參與的那些校驗方程,每個校驗方程里面的其它比特之和為 1,即
; 同理,
,就可以表示為?
參與的那些校驗方程,每個校驗方程里面的其它比特之和為 0,即
,那么:
這里需要做一個假設近似,即 參與的校驗方程,相互之間獨立,即這些校驗方程中,除了有共同的比特
外,其它比特沒有相同的。當然,這個假設在一般情況下都是不成立的,這里假定成立,或者近似成立(只有相同的比特數(shù)不是很多),在這個假設情況下,上面公式右邊的分子和分母部分,又可以拆成多個概率的乘積:
同理,
則公式 (2) 變成:
根據(jù)公式 (1),
可以記為
則把上面的推導的結果,代入公式 (1),我們可以看到:
這里面的思想,比特 的對數(shù)比
,可以用校驗方程成立的某種比值(在
和
兩個條件下,校驗方程成立的概率的比值)來表示。即,校驗方程成立的概率,可以用來估算比特取值的概率。我們舉個例子來進一步理解上面的結果。
假設 LDPC 用的校驗矩陣如下,本篇文章都是以這個校驗矩陣為例子。
我們譯碼出來的碼字表示成向量形式:
這個譯碼出來的碼字,不是指發(fā)送的正確的碼字,是表示我們待譯碼出來的,例如,我們可能想評估? c1=1 的可能性(概率)。
我們把接收到的數(shù)據(jù)表示為一個向量:
根據(jù)線性分組碼相關的原理,我們知道有如下的校驗方程:
計算后的結果 z ,是一個含有5個元素的向量,記為:
為了易于理解,我們把上面這個矩陣形式的方程,展開成 5 個校驗方程:
咱們考慮正在譯碼? 這個比特,我們需要計算如下這個概率比值的對數(shù):
根據(jù)公式 (3):
參與的校驗方程有?
這三個,所以
因為第一個校驗方程的比特有1,2,3,6,7,10,去掉比特 2 后還有 1,3,6,7,10,所以
同理:
從例子中,也可以看出來有用校驗方程成立的概率,來估算待譯碼比特的概率比值的對數(shù),從而可以用來判決這個待譯碼的比特。
至此,我們第一階段的推導已經(jīng)結束,即用校驗方程的某種概率來估計待譯碼比特的某種概率。
--------------------------------------------? 第二段? --------------------------
我們來看公式 (3) 中右邊求和公式里面的表達式
根據(jù)? 函數(shù)的定義,寫成概率比值的對數(shù)形式:
再把? 的定義代進去:
這是其具體含義。我們直接把?? 的定義代入到?
? 有:
根據(jù) tanh rule 定理(這個在附錄中推導),這個公式是定理,其中用到的變量,與上面的推導無關,其中 是 取值 0/1 的二值隨機變量:
把這個定理應用到公式 (4)
我們?yōu)榱藚^(qū)分,引入一個新的符號,對上面公式右邊,用一個新的符號來表示:
這個 ,可以理解為第 m 個校驗方程成立的某種度量,是用 cn=1 和 cn=0 兩種情況下的校驗方程成立的概率做比較來實現(xiàn)的一種度量,總之,這是衡量校驗方程成立的一個量。而這個量中,即公式(5) 中的
,又是 比特 j 的一種概率度量。在具體算法實現(xiàn)時,令其等于?
。
則公式 (3) 變成:
公式 (6) 和公式 (5) 一起構成了一種循環(huán)迭代。
------------------------------ 至此完成了一輪計算。我們繼續(xù)舉個例子來說明:
假如正在譯碼 c2 這個比特,即? n=2,c2 參與的校驗方程有 z1,z4,z5? 這三個,我們考慮來計算第四個校驗方程成立的度量,即 m=4,計算 .
第四個校驗方程,參與的比特有2,4,5,6,8,10 這六個比特。則公式 (5) 就是:
為了計算出來上個公式,我們需要知道 :
在第一輪時,直接用各自的自然比來計算:
這樣就可以計算出來 :
用類似的方法,可以把所有的 都計算出來。
?參與的校驗方程有?
? 這三個,則:
同理,可以計算出所有的 .? 做一次判決。
---------------------例子結束
這個時候,把? 都做一次判決,如果滿足檢驗結果正確,則結束。否則,我們有理由用新估計出來的??
來進一步強化對校驗方程成立的度量的準確性,則?
? 這個需要被更新。
在這個更新中,因為上一輪的? 的計算中,是包含了第 m 個校驗方程的度量的信息的,所以,為了更新第 m 個校驗方程的信息,則需要把 上一輪的
減掉 上一輪的
,則這個更新公式為:
代入公式(5) 有:
------------我們繼續(xù)用例子來說明一下
接著前面的例子,我們現(xiàn)在已經(jīng)有了新的? ,這是新的對比特取值的一種概率度量,現(xiàn)在用這個度量去更新對校驗方程成立與否的度量。例如我們要更新這個:
需要注意的是,因為? 中都用了 第四個校驗方程的信息,我們現(xiàn)在的目的又為了計算第四個校驗方程的度量信息,因此避免這種自循環(huán)的問題,需要從中都拿掉
的影響。
即在以上公式中依次分別拿掉:, 然后,再送到?
? 的計算公式中
------------例子結束
整體示意流程圖如下:

[1]? Error Correction Coding--Mathematical Methods and Algorithms , Todd K. Moon, Wiley, 2005 ,主要參考第 15.5 章節(jié)。