小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

LDPC編譯碼基本原理

 rechardzy 2019-05-14

  

 

學(xué)習(xí)筆記

V1.1 2015/02/18

LDPC編譯碼基本原理

 

概述

 

本文是個人針對LDPC的學(xué)習(xí)筆記,主要針對LDPC譯碼算法做了簡要的總結(jié)。該版本主要致力于闡述LDPC碼譯碼原理,這是一份有很多"問題"的總結(jié),希望能夠慢慢完善。本文分為以下幾個部分

修訂歷史

以下表格展示了本文檔的修訂過程

日期

版本號

修訂內(nèi)容

2015/02/04

V1.0

初始版本

2015/02/18 

V1.1

添加因子圖部分,修正部分錯誤

簡介

 

本文提到的LDPC編碼均指二進制LDPC編碼,多進制暫時不進行討論。為方便起見本文中混用了似然函數(shù)和條件概率密度這兩個概念,雖然這樣做是不恰當(dāng)?shù)摹?

 

 

LDPC碼是一種校驗矩陣具有低密度的線性分組碼。也就是說,LDPC碼和普通的線性分組碼沒有什么不同,但冠以"低密度"三字,說明以下兩點問題

  • 既然限定了校驗矩陣1的個數(shù)較少,說明這肯定在某些方面帶來好處。當(dāng)然,"某些方面"具體是什么,值得我們繼續(xù)探討。已知的好處包括計算上的便利,存儲量的減少。以及實際上多個相近的接收信號之間實際上有相關(guān)性,稀疏性可以減少其影響。
  • 校驗矩陣其實是校驗方程的集合,對其做初等行變換是不會改變碼本身的特性的。"低密度"三字還表現(xiàn)出我們對其校驗矩陣的表示往往比碼本身感興趣。(一類碼可以有低密度的校驗矩陣,也有不滿足低密度約束的校驗矩陣)。

校驗矩陣是一個相對通用的表示工具,線性分組碼都可以由校驗矩陣確定。通用性往往意味著很多時候難以表現(xiàn)一些特性,譬如,低密度。一個好的表示方式往往是解決問題的關(guān)鍵。圖論中有一個圖的矩陣表示,校驗矩陣是稀疏的,一個好的表示就是指出其中1的位置,我們在意的也就是這些位置。如果將稀疏矩陣采用圖來描述,這一個目的就達到了,這一類圖被稱為Tanner圖,如圖 1。

Tanner圖和校驗矩陣具有以下對應(yīng)關(guān)系。Tanner圖有變量節(jié)點和個校驗節(jié)點,對應(yīng)校驗矩陣的列數(shù)和行數(shù)。如果第個變量節(jié)點和第個校驗節(jié)點之間有邊相連,那么,否則。顯然,變量節(jié)點內(nèi)部是沒有邊相連的,校驗節(jié)點也是如此。

圖 1 校驗矩陣和Tanner圖

 

此時我們可以先明確一些關(guān)于校驗矩陣和Tanner圖的定義

  • 校驗矩陣的行重:每行1的個數(shù),列重是每列1的個數(shù)
  • 正規(guī)LDPC碼:校驗矩陣行重、列重都是定值
  • 二分圖:圖的節(jié)點可以分為兩類,類中的節(jié)點之間沒有直接連接。Tanner圖是一個二分圖,分為校驗節(jié)點和變量節(jié)點
  • 度:某一節(jié)點引出的邊的數(shù)目
  • 環(huán)和girth:從一個節(jié)點按邊不重復(fù)回到同一節(jié)點的路徑稱為環(huán),環(huán)上邊的數(shù)量稱為環(huán)的girth

 

現(xiàn)在,我們應(yīng)該好好考慮編譯碼的問題了。編碼過程中,知道校驗矩陣后生成矩陣是可以求出來的。求出生成矩陣后,至少可以說明編碼是可進行的。利用其它的一些性質(zhì),這個過程可以變得更容易。(此部分內(nèi)容還沒有仔細看)

關(guān)于譯碼規(guī)則,香農(nóng)在證明第二定理的時候采用了最大似然譯碼準(zhǔn)則。當(dāng)然,譯碼準(zhǔn)則的選取還取決于信道。譬如,二進制對稱信道下漢明距離譯碼和最大似然是一致的。然而,實際信道往往被看作是加性高斯白噪聲信道,這個時候我們更多的需要考慮采用最大似然譯碼準(zhǔn)則了。同時,毋庸置疑的是我們應(yīng)該采用軟判決譯碼以達到好的效果。此時,似然函數(shù)可以表示為 ,其中是接收序列,是編碼后序列,在碼本空間內(nèi),即滿足校驗方程。顯然,似然函數(shù)的計算是難以進行的。但早期Gallager作了很多工作。

概率譯碼

 

1962年Gallager提出了LDPC碼的基本概率譯碼算法,本節(jié)將闡述這一思想。

  1. 從聯(lián)合條件概率分布到邊緣條件概率分布

解決一個大的問題的基本思路在于將其分解為一系列的小問題。對于似然函數(shù)而言,如果求的概率密度可以達到同樣的效果,即求那么求解會方便很多。如果 ,那么求解和求解 具有相同的效果。那么問題在于是否可以這樣做。

如果之間相互獨立,這一關(guān)系顯然是成立的;然而獨立也就意味著不相關(guān),那么這是不符合冗余度要求的。注意到我們求的是條件獨立,條件是屬于碼本空間。條件獨立的關(guān)系應(yīng)該是成立的,雖然不清楚如何證明,然而其相關(guān)性已經(jīng)作為條件出現(xiàn)在概率分布函數(shù)中了,在這一前提下之間相互獨立。

  1. 加性高斯白噪聲信道

發(fā)送信號通過信道后成為了接收信號,信道是加性高斯白噪聲信道(從矢量信道模型去考慮)意味著

那么我們有,這是因為同樣在碼本空間內(nèi),的概率分布和 無關(guān)。

  1. 校驗方程

當(dāng)我們致力于求解的時候,實際上我們只需要在0,1之間選擇一個取值,所以我們可以分別計算0,1的概率,計算比值

    

注意到乘號左側(cè)是和信道有關(guān)的,右邊的(包含的方程)代替的原因是其他校驗方程和條件是無關(guān)的。寫到這里的時候,我們似乎計算不下去了。不妨做一個不切實際的假設(shè),那就是除以外的其他概率分布已經(jīng)求得了。當(dāng)我們考慮一個校驗方程的時候會發(fā)現(xiàn)時該校驗方程成立的條件是方程中其他的變量具有偶數(shù)個1,時正好相反。但是是多個校驗方程的集合,如果說這些校驗方程條件獨立,將每一方程成立的概率相乘即可。那么問題是,什么時候校驗方程條件獨立?在回答這個問題之前,我們可以舉出幾個例子。

(1)當(dāng)兩個校驗方程一樣的時候

此時(一般情況下)

    

(2)校驗方程具有相同項

此時(一般情況下)

可以認為,如果校驗方程行線性無關(guān),那么

 

引理:

一個長為 的相互獨立的二進制序列,其中第個比特為1的概率為 ,那么整個序列中包含偶數(shù)個1的概率是

證明:

將上述函數(shù)展開為關(guān)于的多項式,則的系數(shù)表示這個長為m的序列中"1"的個數(shù)為的概率。

這個函數(shù)與前一個函數(shù)的區(qū)別在于:的奇數(shù)次冪的系數(shù)符號不同,兩者正好互為正負。將這兩個函數(shù)相加,那么的偶次冪的系數(shù)為原函數(shù)的2倍,奇次項相加后消去。令,就可以得到序列中"1"的個數(shù)為偶數(shù)的概率:

同樣可得,序列中"1"的個數(shù)為奇數(shù)的概率是

 

上文已經(jīng)闡述之間的條件獨立特性,同時

    

所以在基于除以外的其他概率分布已經(jīng)求得的前提下,求解是可行的。4

這個前提是無法達到的,上述過程中我們也看到了求解每一個比特的概率通過校驗方程環(huán)環(huán)相扣?;蛟S,如果我們可以找到一個線頭,這個問題可能就可以求解了。但很可惜的是,由于比特的相互依賴關(guān)系,計算概率的過程實際上是一個環(huán)。(大部分情況下是這樣的)這個時候,概率譯碼直接將其修剪成了一棵樹以計算概率分布。

修剪的原則在于,上層節(jié)點不能運用底層節(jié)點已經(jīng)用過的校驗信息,防止陷入循環(huán)。此時,通過繪制校驗樹,就能夠求解后驗概率分布。

概率譯碼給出了一種求解方式,那么這種針對單一比特的求解方式在真實的計算過程中是否可行?如果基于計算所有碼元考慮是否有更好的計算方法?這種方法求得的解是否最優(yōu)?在我看來,由于其余比特的概率是不準(zhǔn)確的(不是最佳估計),此時我們也不能夠得到求解比特的真實后驗概率。

置信傳播

 

如果我們回到要求解的式子

在求解的過程中我們希望得到(第個方程的第個節(jié)點為1的后驗概率)的好的估計值。采用是一個很簡單的選擇,但是很顯然不好,因為沒有用到校驗矩陣的約束信息。概率譯碼下考慮到了這一點,所以采用了樹結(jié)構(gòu)將校驗矩陣的約束信息包含在其中。但是即使概率譯碼這樣考慮了,實際上最頂層的節(jié)點采用的還是 。

或許另一種思路在于,對所有的都采用進行估計得到了一個更加好的估計,再用這些更好的估計進行迭代估計(所有節(jié)點并行估計)。問題在于,是否每次迭代都可以得到對于的更好的估計?

感性的認識是由于接收到了其他節(jié)點和校驗方程的信息,迭代之后的估計會更好。另一個認識是如果Tanner圖的某一個環(huán)的girth很短,那么自身的信息會大量的傳遞回來。因為距離越遠,傳遞信息的比重就會越?。ǔ肆颂嘈∮?的數(shù)),環(huán)girth很長就不用考慮這個問題。但這還需要更多的理性分析。

下面具體闡述置信傳播算法,假定編碼后的星座映射為假定編碼后的星座映射為

初始值

    

首先我們計算

    

圖 2 信息傳遞過程

 

之后我們更新各個變量節(jié)點的概率分布

這個時候我們發(fā)現(xiàn)了一個問題,如果對于每一個校驗節(jié)點來說,我們都給這一信息,那么剛從校驗節(jié)點傳遞過來的信息立刻就被返回去了。所以顯然不是 的更好的估計值。參考概率譯碼,我們至少能夠做的是將其他節(jié)點傳遞的消息傳遞出去。(關(guān)于這個問題,不從得到更好估計的角度,從消息傳遞的角度會更好解釋,這將在因子圖中介紹)因此置信傳播的迭代過程應(yīng)該是這樣的。(參考《An Introduction to Low-Density Parity Check Codes》,本部分以下內(nèi)容來自XXX師兄)

 

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

這一部分不是我寫的,可以參考任意一本LDPC書,這里就不放上來了

這一部分不是我寫的,可以參考任意一本LDPC書,這里就不放上來了×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

 

我們注意到在任何一種算法中,終止條件都有一條是校驗式等于零。為何要設(shè)置這一個終止條件?實際上在設(shè)計的過程中,我們會保證任意兩個可用碼字之間的距離足夠遠。在這一個前提假設(shè)下,迭代過程中一旦落入了可用碼字空間內(nèi),即使錯誤,那么也是幾乎沒有轉(zhuǎn)移到正確碼字的可能的。因此設(shè)置了這一終止條件。

因子圖

 

從概率譯碼到置信傳播,一個采用了校驗集合樹的概念,一個運用了Tanner圖。然而我們實際上還是計算的公式,具體來說是

加法和乘法的運用構(gòu)成了整個概率模型。但為何在這些算法中都引入了圖?圖在這里面起到了什么作用?《Pattern Recognition and Machine Learning》在圖模型章節(jié)的開篇是這樣說的

 

However, we shall find it highly advantageous to augment the analysis using diagrammatic representations of probability distributions, called probabilistic graphical models. These offer several useful properties:

1. They provide a simple way to visualize the structure of a probabilistic model and can be used to design and motivate new models.

2. Insights into the properties of the model, including conditional independence properties, can be obtained by inspection of the graph.

3. Complex computations, required to perform inference and learning in sophisticated models, can be expressed in terms of graphical manipulations, in which underlying mathematical expressions are carried along implicitly.

 

  • 將概率模型可視化,同時能夠用于設(shè)計新的模型;
  • 通過觀察圖,我們可以洞悉很多模型的內(nèi)部性質(zhì),譬如是否條件獨立;
  • 復(fù)雜的計算可以通過圖來表示。

     

很多時候我們更關(guān)注問題的表示而非其本身。就像LDPC關(guān)注校驗矩陣的形式,以及數(shù)據(jù)的各種變換。概率模型也一樣,三種圖模型被用來表示概率模型,包括有向圖模型、無向圖模型(馬爾可夫隨機場)和因子圖。三種模型各有優(yōu)點,本節(jié)將介紹因子圖。

對于多項式而言,我們有因式分解。譬如在解高次方程的時候,我們非常希望方程能夠分解為多個低次方程的乘積。那么,對于概率分布函數(shù)而言,我們也希望能夠這樣做,即

    

其中中變量的子集,至于到底能夠如何分解是取決于問題的,就好象多項式的分解取決于其具體形式。對于一個實際的問題,如果有以下關(guān)系

    

那么這一個式子的因子圖表示如下

圖 3 因子圖

 

從這個例子,我們總結(jié)一下因子圖是什么?因子圖有兩類節(jié)點,一是變量節(jié)點,另一個成為因子節(jié)點。這兩類節(jié)點的內(nèi)部沒有邊直接相連,變量的概率密度可以因式分解為因子節(jié)點的函數(shù)的乘積,因子節(jié)點的函數(shù)變量包括與其直接相連的變量節(jié)點。

寫到這里忽然發(fā)現(xiàn)了一個很嚴重的問題,因子圖這一表示是用來干什么的?不是我不想寫,是我也不知道。如果從和積算法來說,因子圖可以用來計算邊緣概率分布。這也是《Pattern Recognition and Machine Learning》中引入因子圖的理由。置信傳播算法可以看作是和積算法的一個特例。

目的:計算邊緣概率

手段:和積算法(要求兩個節(jié)點之間只有一條路徑,即多項式樹結(jié)構(gòu))

實現(xiàn)方式:

  1. 邊緣概率

    

表示除之外的變量集合。

  1. 因子分解

圖 4 因子圖的分解

 

這里為何要這樣做呢?一個算法要盡可能多的利用已知的結(jié)構(gòu)和信息,和積算法的一個假設(shè)是圖無環(huán)。同時我們發(fā)現(xiàn),對于一個最簡單的只有一個變量節(jié)點和因子節(jié)點的圖來說(這時實際上沒有意義了),我們已經(jīng)達到我們要的結(jié)果。如果圖無環(huán)的話,意味著只要我斷開一條邊,那么這個大的因子圖就變成了兩個小的因子圖。

如果我們將節(jié)點取出,那么因子圖變成了個小因子圖,這幾個小因子圖通過節(jié)點相連,故因子圖的概率分布可以寫成

其中代表和相連的因子節(jié)點,代表在這一個小因子圖上的所有因子節(jié)點的乘積。

  1. 將2代入1,得

    

我們設(shè) 如下

    

我們可以將其看作是因子節(jié)點傳遞的信息(也就是小因子圖傳遞的)。

  1. 計算

或許,我們將"計算"改為"表示"更為合適。上文中一直提到"小因子圖"顯然是可以因子化的,也就是說可以表示為

那么可以表示為

    

也就是說,實際上這個過程是小因子圖的繼續(xù)劃分的過程,具體可以表示為下圖

圖 5 因子圖的分解(續(xù))

 

同理可設(shè) ,可將其看作變量節(jié)點向因子節(jié)點傳遞的信息。

  1. 因子圖的繼續(xù)分解

如果我們繼續(xù)將其分解下去,那么將再次計算到因子節(jié)點向變量節(jié)點傳遞的信息,而我們的目的正是如此,希望能夠得到, 之間相對簡單的公式,這樣我們就能夠計算出邊緣概率分布了。

圖 6因子圖的分解(續(xù)2)

 

由圖 6 易知

    

也就是說

    

  1. 總結(jié)

和積和積,何為和積?變量節(jié)點的信息傳遞是求乘積的過程,因子節(jié)點傳遞的過程是對求乘積后的結(jié)果進行求和的過程(依據(jù)該因子節(jié)點的方程)。

我們注意到實際上都有一個連接的其他節(jié)點求乘積的過程,這也就意味著如果一個節(jié)點只和一個節(jié)點相連,那么其傳遞的消息是(和1相乘值不變)

  • 對應(yīng)變量節(jié)點;
  • ,對應(yīng)因子節(jié)點

 

到這里,因子圖和和積算法已經(jīng)寫完了,要把因子圖和和積算法和LDPC譯碼算法對應(yīng)起來,我們要解決的問題實際上有兩個

  • 在譯碼過程中觀測量如何處理?上述因子圖的所有變量節(jié)點都可以看作是隱藏節(jié)點,如何對觀測到的結(jié)果進行處理,計算條件概率?
  • 如何處理因子節(jié)點和校驗節(jié)點之間的關(guān)系?

 

這兩個問題還有待進一步思考……

參考

 

《LDPC碼基礎(chǔ)與應(yīng)用》 賀鶴云

《An Introduction to Low-Density Parity Check Codes》 Daniel J. Costello, Jr.

《LDPC碼理論與應(yīng)用》 袁東風(fēng)

《Pattern Recognition and Machine Learning》

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多