本發(fā)明屬于信道編譯碼技術領域,涉及一種用于ldpc碼的混合譯碼方法。
背景技術:
低密度奇偶校驗碼,又稱ldpc碼,是美國麻省理工學院robertgallager在他的博士論文中提出的一種具有稀疏校驗矩陣的分組糾錯碼。ldpc碼被證明是一類糾錯性能逼近shannon限的好碼。針對有限域的二元ldpc碼的譯碼方法,分為硬判決譯碼算法和軟判決譯碼算法。硬判決算法操作簡單,易于硬件實現(xiàn),但是譯碼性能較差;軟判決譯碼算法性能較好,但是復雜度較高。
在軟判決方面,gallager提出的消息傳播算法,也稱為置信傳播(beliefpropagation,bp)算法。軟判決譯碼迭代算法的主要優(yōu)勢表現(xiàn)在譯碼速度快,譯碼性能優(yōu)良,復雜度同時也比較低。然而,迭代算法在很多情況下,并不能保證算法收斂。即是算法收斂,收斂點也不一定全部有意義。因此采用迭代譯碼,譯碼性能難以分析。
j.feldman等人,利用線性規(guī)劃譯碼(linearprogramming,lp)松弛,對ldpc碼的最大似然(maximum,likehood,ml)譯碼進行近似求解,建立了二進制分組碼的松弛規(guī)劃譯碼模型,從而提出了lp譯碼算法。作為ml譯碼的估計,理論證明該算法具有最大似然保持特性,一旦最優(yōu)解為整數(shù)解,那么該解一定是最大似然碼字。并且,lp譯碼性能不受tanner圖中環(huán)的影響。然而,lp譯碼具有較高的譯碼復雜度。
為了改善lp譯碼的性能,提出了mlp譯碼算法,即當lp譯碼算法的最優(yōu)解不是整數(shù)解的時候,取出碼字中m個最接近0.5的似然值,對m個值進行0,1二進制,比如m=2,則將取出來的比特分別賦值為{00;01;10;11},根據(jù)上述的賦值數(shù)組求出線性規(guī)劃等式約束條件,將約束條件加入到線性規(guī)劃譯碼中,從而得到q=2m個偽碼字。對q個偽碼字進行驗證,找出滿足如下兩個條件的最優(yōu)解:
⑴在q個偽碼字中,找到使
⑵再對找到的這組偽碼字進行判斷,判斷其是否為整數(shù)解,如果是整數(shù)解則輸出,否則進行硬判決后輸出。
若得到的解是整數(shù)解,則該碼字為最大似然碼字。接下來將得到的似然值做折中計算后作為輸入進行bp譯碼。
技術實現(xiàn)要素:
本發(fā)明旨在提高bp譯碼的譯碼精度,對輸入bp譯碼的對數(shù)似然信息先進行l(wèi)p譯碼處理,得到新的對數(shù)似然信息,這相對于信道輸出的軟信息從置信度的角度上來說會有相應的提升。
本發(fā)明的技術方案為:
如圖1所示,一種用于ldpc碼的混合譯碼方法,其特征在于,包括以下步驟:
a.lp譯碼:將信道輸出的對數(shù)似然比輸入到lp譯碼器中進行l(wèi)p譯碼;
b.判斷l(xiāng)p譯碼器輸出的數(shù)據(jù)是否滿足整數(shù)解條件,若是,則將lp譯碼器的輸出作為譯碼后的碼字輸出并結束譯碼;若否,則進入步驟c;
c.mlp譯碼:對lp譯碼器輸出的數(shù)據(jù)進行mlp譯碼,通過mlp譯碼得到偽碼字;
d.判斷mlp譯碼得到的偽碼字是否為整數(shù)解,若是,則將偽碼字輸出并結束譯碼;若否,則進入步驟e;
e.bp譯碼:將mlp譯碼得到的偽碼字輸入到bp譯碼器,經(jīng)過bp譯碼后結束譯碼。
進一步的,將mlp譯碼得到的偽碼字輸入到bp譯碼器,具體方法為將通過mlp譯碼得到的似然比和信道傳遞的似然比進行折中后再輸入到bp譯碼器:
假設信道輸出的概率值分別為pc(0)和pc(1),則信道輸出的對數(shù)似然比llrc為:
通過lp譯碼器后,對不滿足整數(shù)解的解,則將其化為概率值后其概率分別為p1p(0)和p1p(1),對經(jīng)過信道的概率和通過lp譯碼器的概率做折中運算:
將上述已經(jīng)折中的概率換算成似然比輸入到bp譯碼器中:
所述的將lp譯碼器的解化為概率值的方法為:
假設lp譯碼器輸出的比特為0.3,將其為0的概率設定為0.7,為1的概率設定為0.3,同理可得出其他比特數(shù)據(jù)化為概率值的概率;特別的如果比特為1,將其為0的概率設定為0.001,為1的概率設定為0.999;如果比特為0,將其為0的概率為0.999,為1的概率為0.001。
上述方案的目的是提高bp譯碼的譯碼精度,從而對本發(fā)明中提出的混合譯碼方法進行改進,如圖3所示。假定lp譯碼器輸出fi,i∈{1,n},若fi∈[0,1],則直接輸出作為輸出碼字。反之,其為實數(shù)比特流,如假設為{0.3,0.6,0.7,…,1,0.4},在這種情況下,其碼字為錯誤碼字,不符合要求。根據(jù)原始lp,需要重新譯碼,直到其碼字符合標準。在本發(fā)明中把其中的每一個比特看作更傾向0還是1的概率,例如0.3,其為0的概率可以看作0.7,為1的概率可以看作0.3,如果比特為1或者0,可以看作概率為0.999或者0.001。這樣,譯碼器輸出的分數(shù)比特流可以等同的看作一組概率,跟信道輸出的類似,如圖2所示??梢杂猛瑯拥姆绞交癁閷?shù)似然比輸入到bp譯碼器中進行二次譯碼。在這里選擇bp譯碼器作為二次譯碼主要有兩個原因:第一個是根據(jù)上述的原始lp原理和標準形式得出,似然比在lp譯碼中,只是起到一個計算目標函數(shù)的作用,lp的原理是根據(jù)其校驗矩陣的校驗方程進行規(guī)劃,直到規(guī)劃出一組滿足所有校驗方程的解,似然比在譯碼中并沒有起到多大的作用,而bp譯碼器中,其原理是根據(jù)軟信息的傳遞更新迭代來進行譯碼,所以如果軟信息的置信度在進入譯碼器之前就提升的話,bp譯碼器的性能會有相應的提升;第二個原因是相對于lp譯碼器來說,bp譯碼的復雜度要低于lp譯碼復雜度,在混合譯碼中,如果進行了二次譯碼,由于lp譯碼的復雜度為指數(shù)型,bp譯碼的復雜度為線性,因此混合譯碼時bp譯碼復雜度可以基本忽略
本發(fā)明的有益效果為,在不增加復雜度的情況下,有效的提高了對ldpc碼的譯碼性能,降低了譯碼的誤幀率。
附圖說明
圖1為本發(fā)明的混合譯碼流程示意圖;
圖2為譯碼器輸出分數(shù)比特流的概率取值示意圖;
圖3為本發(fā)明中改進后的混合譯碼流程示意圖;
圖4為lp譯碼,bp譯碼,lp-bp混合譯碼誤幀率比較仿真圖;
圖5為lp譯碼,bp譯碼,lp-bp混合譯碼,mlp譯碼,mlp-bp混合譯碼誤幀率比較仿真圖;
圖6為lp譯碼,bp譯碼,lp-bp混合譯碼,mlp譯碼,mlp-bp混合譯碼,avmlp-bp混合譯碼誤幀率比較仿真示意圖;其中,avmlp-bp混合譯碼為本發(fā)明中改進后的混合譯碼。
具體實施方式
發(fā)明內容部分已經(jīng)對本發(fā)明的技術方案做了詳細描述,下面結合附圖,描述本發(fā)明技術方案的效果:
(1)lp譯碼,bp譯碼,lp-bp混合譯碼比較:
碼長為126,碼率為0.5的ldpc碼,bp迭代50次,分別經(jīng)過lp譯碼,bp譯碼,lp-bp混合譯碼后得到的誤幀率結果如圖4所示。根據(jù)比較可知,lp-bp混合譯碼的性能較bp譯碼提升不明顯。這是由于lp譯碼不需要迭代的譯碼和糾正,從全局的角度直接輸出。有些比特經(jīng)過lp譯碼后可能會發(fā)生比特翻轉,置信度有所降低,因此性能并未改善多少。
(2)lp譯碼,bp譯碼,lp-bp混合譯碼,mlp譯碼,mlp-bp混合譯碼比較:
碼長為126,碼率為0.5的ldpc碼,bp迭代50次,mlp打孔1個點,分別經(jīng)過lp譯碼,bp譯碼,lp-bp混合譯碼,mlp譯碼,mlp-bp混合譯碼后得到的誤幀率結果如圖5所示。
mlp譯碼原理由上可知,本次仿真打孔一個比特。根據(jù)圖5可以看出,混合譯碼方式的性能要遠好于mlp譯碼,原因是通過mlp譯碼使其似然比的置信度提升,再經(jīng)過bp譯碼后,成為最優(yōu)碼字的概率更大。而如果初始解為整數(shù)解,則不需要進行二次譯碼,直接輸出。lp譯碼的最大似然保證特性會保證其為最大似然碼字。所以,譯碼器輸出的碼字的最大似然特性會很大。
(3)lp譯碼,bp譯碼,lp-bp混合譯碼,mlp譯碼,mlp-bp混合譯碼,avmlp-bp混合譯碼比較:
碼長為126,碼率為0.5的ldpc碼,bp迭代50次,mlp打孔1個點,分別經(jīng)過lp譯碼,bp譯碼,lp-bp混合譯碼,mlp譯碼,mlp-bp混合譯碼,avmlp-bp混合譯碼后得到的誤幀率結果如圖6所示。
avmlp-bp譯碼較于mlp-bp譯碼,修正了bp譯碼輸入的似然值置信度。原因在于,lp譯碼從全局的角度去考慮比特的取值,其譯碼后的碼字會產(chǎn)生比特翻轉的情況。比如其中一個比特本身是0,但是通過lp譯碼后變?yōu)?。這種狀況使得某些比特的置信度經(jīng)過lp譯碼后反而會降低,最后的性能會受到影響。因此,本發(fā)明提出了一種折中運算(見發(fā)明內容部分),能有效的提升譯碼的性能。
如圖6可知,經(jīng)過折中后,基于mlp-bp譯碼的性能要優(yōu)于不經(jīng)過折中的mlp-bp譯碼。這說明lp譯碼中確實存在原始比特反轉的問題,而這一方法確實能改善這個問題,使得bp譯碼的輸入似然值置信度更高,獲得更好的譯碼性能。