專利名稱::一種優(yōu)化非規(guī)則ldpc碼校驗矩陣列重分布的仿真方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及分組信道編碼
技術(shù)領(lǐng)域:
,尤其涉及一種優(yōu)化LDPC(LowDensityParityCheckcode,低密度奇偶校驗碼)校驗矩陣列重分布的方法。
背景技術(shù):
:現(xiàn)代編碼技術(shù)的終極目標(biāo)是以逼近香農(nóng)極限Shannonlimit的有效功耗實現(xiàn)可靠通信,LDPC碼的誕生和發(fā)展使人們更加接近這一目標(biāo)。LDPC碼最早在1962年由Gallager提出,當(dāng)時沒有受到編碼界的重視,直到1996年英國的Mackay教授等人通過仿真證明了LDPC碼的優(yōu)秀性能,才轟動了編碼界,成為自信息論提出以來最重大的研究進(jìn)展之一。研究表明,基于非規(guī)則雙向圖的LDPC碼的性能優(yōu)于Turbo碼,具有更低的線性譯碼復(fù)雜度,沒有錯誤平層,因此受到廣泛關(guān)注。LDPC碼是一類線性分組碼,由它的校驗矩陣來定義,設(shè)碼長為W,信息位為《,校驗位M-7V-《,碼率為i^尺/7V,則校驗矩陣是一個MxW的矩陣。校驗矩陣中很少一部分元素非零,其他大部分元素都是零,所以LDPC碼的校驗矩陣是稀疏矩陣。矩陣中每一列非零元素的數(shù)目稱為該列的重。LDPC碼的校驗矩陣可以用一個與其對應(yīng)的雙向圖來表示,例如,一個碼長為10,碼率為0.5的LDPC碼的校驗矩陣如圖1所示,該校驗矩陣對應(yīng)的雙向圖如圖2所示。雙向圖的下邊有N個節(jié)點,每個節(jié)點表示碼字的信息位,這N個節(jié)點稱為信息節(jié)點(Xj,j=l,*",N},分別對應(yīng)于校驗矩陣的N列;雙向圖的上邊有M個節(jié)點,每個節(jié)點表示碼字的一個校驗集,這M個節(jié)點稱為校驗節(jié)點(Zi,i=1,…,M),分別對應(yīng)于校驗矩陣的各行,代表著校驗方程。與校驗矩陣中"1"相對應(yīng)的左右兩節(jié)點之間存在連接邊,將這條邊兩端的節(jié)點稱為相鄰節(jié)點,每個節(jié)點相連的邊的數(shù)目稱為該節(jié)點的度數(shù)。若LDPC碼對應(yīng)的雙向圖為規(guī)則雙向圖,則此LDPC碼稱為規(guī)則LDPC碼,規(guī)則雙向圖是指所有校驗節(jié)點度數(shù)相等,信息節(jié)點度數(shù)也相等,規(guī)則LDPC碼的校驗矩陣中每行或列中的"1"的個數(shù)是相等的;若LDPC碼對應(yīng)的雙向圖為非規(guī)則雙向圖,則此LDPC碼稱為非規(guī)則LDPC碼,非規(guī)則LDPC碼校驗矩陣中每行或列中的"1"的個數(shù)不相等。模擬實驗說明適當(dāng)構(gòu)造的不規(guī)則碼的性能優(yōu)于規(guī)則碼的性能。這一點可以從構(gòu)成LDPC碼的雙向圖中直觀的得到解釋信息節(jié)點的度數(shù)越大,它從相關(guān)聯(lián)的校驗節(jié)點得到的信息越多,便越能準(zhǔn)確地判斷它的正確值,而對于校驗節(jié)點,情況則相反,校驗節(jié)點的度數(shù)越小,它能反饋給其鄰接信息節(jié)點的信息便越有價值。顯然,不規(guī)則碼比規(guī)則碼能夠更好的平衡這兩種需求。PEG(ProgressiveEdge-Growth,漸進(jìn)邊增長)方法是一種基于隨機搜索方式構(gòu)造LDPC碼的重要方法。它以校驗矩陣對應(yīng)的雙向圖中環(huán)的長度最大化為目標(biāo),PEG方法具體是從左到右逐列以當(dāng)前的節(jié)點度數(shù)為循環(huán)次數(shù),依次將連接到信息節(jié)點的邊設(shè)定為與校驗節(jié)點之間的邊,通過迭代搜索逐列構(gòu)造LDPC碼的校驗矩陣,是一種參數(shù)配置非常靈活的方法。研究表明只要列重為某一數(shù)值的列所占總列數(shù)的百分比即列重分布確定了,不管其具體分布方式如何,也不管隨機搜索中隨機數(shù)的生成方式如何,PEG方法構(gòu)造出來的LDPC校驗矩陣,雖然具體形式各有不同,但是糾錯性能都是非常接近的。因此,一個LDPC碼的校驗矩陣的列重分布在很大程度上決定了LDPC碼的性能。
發(fā)明內(nèi)容5本發(fā)明要解決的技術(shù)問題是,提供一種優(yōu)化LDPC校驗矩陣列重分布的方法,進(jìn)一步提高LDPC校驗矩陣的性能,降低通信時的有效功耗。本發(fā)明采用的技術(shù)方案是,所述優(yōu)化LDPC校驗矩陣列重分布的方法,包括如下步驟步驟一、根據(jù)不同的碼率選擇校驗矩陣列重的取值集合,基于所述列重的取值集合隨機生成合法的列重分布,估計每一個列重分布下LDPC碼的性能;步驟二、將性能最差的LDPC碼校驗矩陣對應(yīng)的列重分布記為x,再將性能倒數(shù)第二差的LDPC碼校驗矩陣對應(yīng)的列重分布記為r,計算除了r之外剩下的列重分布的均值,并將其記為y;步驟三、構(gòu)造新的列重分布z:(l+a)y-ax,0<a<1;步驟四、將新的列重分布z合法化,然后估計其對應(yīng)LDPC碼的性能,若z對應(yīng)LDPC碼的性能好于r對應(yīng)LDPC碼的性能,則將x替換為z,跳轉(zhuǎn)步驟五,否則令z—z+y)/2,重復(fù)執(zhí)行步驟四;步驟五、判斷所有列重分布之間的差距是否小于某一個閾值,若是,則算法結(jié)束,否則重復(fù)步驟二。設(shè)步驟一中所述校驗矩陣列重的取值集合中包含的元素個數(shù)為L,基于所述列重的取值集合隨機生成合法的列重分布的具體過程如下步驟l、任意設(shè)定一個合法的第一列重分布向量,所述第一列重分布向量中分量的個數(shù)與所述列重的取值集合中元素的個數(shù)相等;步驟2、采用隨機算法生成第二列重分布向量到第2L-2列重分布向量中的前L-1個分量;步驟3、順序檢査所有列重分布向量是否合法,對不合法的列重分布向量進(jìn)行調(diào)整;步驟4、由分量和為1的約束計算出每個列重分布向量的最后一個分量。步驟一和步驟四中所述估計的方法是密度進(jìn)化方法或者蒙特卡洛仿真。步驟四中所述將新的列重分布Z合法化包括將所述新的列重分布Z向量中的各分量的數(shù)值調(diào)整到0和1之間,并保證各分量之和等于1。步驟五中所述列重分布之間的差距是列重分布向量模之間的差值,所述閾值根據(jù)實際應(yīng)用需求確定。采用上述技術(shù)方案,本發(fā)明至少具有下列優(yōu)點本發(fā)明所述優(yōu)化LDPC校驗矩陣列重分布的方法,根據(jù)不同的碼率選擇校驗矩陣列重的取值集合,基于所述列重的取值集合隨機生成合法的列重分布,可以在隨機編碼的前提下,優(yōu)化校驗矩陣的列重分布。同時仿真實驗表明,在相同的碼率下,與用其他方式構(gòu)造的相同碼長的LDPC碼誤碼率曲線相比,采用本發(fā)明技術(shù)方案構(gòu)造的校驗矩陣的LDPC碼的性能有明顯的優(yōu)勢,能在進(jìn)一步降低功耗的情況下實現(xiàn)可靠的通信。圖1為碼長為10,碼率為0.5的LDPC碼的校驗矩陣結(jié)構(gòu)示意圖;圖2為碼長為IO,碼率O.5的LDPC碼的雙向圖3給出了未經(jīng)過任何優(yōu)化的PEG方式下構(gòu)造的規(guī)則LDPC碼(所有列重均為3)在各種碼率、BPSK調(diào)制AWGN信道下的性能,碼長均為3200,解碼采用BP(置信概率傳播)算法。圖4為采用本發(fā)明所述方法構(gòu)造的LDPC碼在各種碼率、BPSK調(diào)制AWGN信道下的誤碼率仿真曲線,碼長同樣為均為3200,解碼采用BP算法;圖5為本法明所采用算法的流程框圖具體實施方式為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實施例,對本發(fā)明提出的所述優(yōu)化LDPC校驗矩陣列重分布的方法,詳細(xì)說明如后。本發(fā)明的具體實施例,一種優(yōu)化LDPC校驗矩陣列重分布的方法,包括如下步驟步驟一、根據(jù)不同的碼率選擇校驗矩陣列重的取值集合,設(shè)集合中元素的個數(shù)即集合的大小為/。由于在不同的碼率下,相同列重數(shù)值所在的列占整個校驗矩陣總列數(shù)的比例是不同的,本領(lǐng)域技術(shù)人員可以根據(jù)實際中不同碼率下關(guān)心的列重數(shù)值選擇一個校驗矩陣列重的取值集合,也可以根據(jù)不同的碼率下列重數(shù)值所在的列占整個校驗矩陣總列數(shù)的比例的經(jīng)驗值等因素選擇一個校驗矩陣列重的取值集合。步驟二、基于所述列重的取值集合隨機生成2/-2個合法的列重分布。一個合法的列重分布指的是一個長度為列重數(shù)值取值集合大小/的向量,可以稱為列重分布向量,其各個分量為列重取值集合中各列重所在的列的個數(shù)占總列數(shù)的比例,因此各個分量取值均在o,i之間,且所有分量的和為i。令這些向量為A^C/=l,2,...,2/-2),A/是A〗的第Z個分量,/=1,2,...,/。具體地,所述隨機生成2/-2個合法的列重分布過程如下步驟a、首先任意設(shè)定一個滿足合法分布要求的第一列重分布向量A、步驟b、構(gòu)造余下的2/-3個列重分布向量,具體地,在構(gòu)造第二列重分布向量A2時,將范圍內(nèi)的隨機數(shù)依次賦值給前/-1個分量八(/=1,一,/-1),按照同樣的方法構(gòu)造第三列重分布向量A3、……、第2/-2列重分布向量八2";步驟C、按照_/的取值從小到大的順序檢査^"<1的約束條件是否得到滿足,若在j取值的范圍內(nèi),§^<1的約束條件都能得到滿足,則所述隨機生成2/-2個合法的列重分布過程結(jié)束,若在j的前n個取值下,gA《〈l分布約束條件得到滿足,1《n《2Z-3,而在j的第n+l個取值時不滿足,則進(jìn)行下面8的替換操作A"+1=(A"+1+/)/2,其中,=丄^八、重復(fù)本步驟C,直到對所有的j的取值,g八;《l分布約束條件均能得到滿足;歩驟d、'計算2/-2個的列重分布的最后一個分量,即進(jìn)行如下計算-AW-;.=1,2,…,2/一2步驟三、估計每一個列重分布下LDPC碼的性能,所述估計的方法可以是密度進(jìn)化方法或者蒙特卡洛仿真方法。密度進(jìn)化方法是在實際譯碼算法上抽象地、理想化地迭代過程,它的應(yīng)用可以看作是一種數(shù)值仿真實驗。密度進(jìn)化可以在給定LDPC矩陣列重分布的前提下,通過迭代演算,得到碼長足夠長且LDPC矩陣無環(huán)的理想情況下該列重分布對應(yīng)的LDPC碼的性能,可以通過誤碼率曲線表現(xiàn)出來。在本
技術(shù)領(lǐng)域:
中,通常采用蒙特卡洛仿真方法對中短碼長LDPC碼的性能進(jìn)行估計,中短碼長為20005000比特,而采用密度進(jìn)化方法對長碼LDPC碼的性能進(jìn)行估計,長碼長為5000比特以上,因此根據(jù)不同的LDPC碼選擇適當(dāng)?shù)男阅芄烙嫹椒?,可以使得性能評估的結(jié)果針對性更強。因為上述兩種估計的方法是本領(lǐng)域技術(shù)人員在估計LDPC碼性能時常用的技術(shù)手段,所以此處不詳述。步驟四、將性能最差的LDPC碼校驗矩陣對應(yīng)的列重分布記為^,再將性能倒數(shù)第二差的LDPC碼校驗矩陣對應(yīng)的列重分布記為A計算除A^之外剩下的列重分布的均值a、a"=^;|;2a';步驟五、構(gòu)造新的列重分布A、(l+a)A"-"A"0<a<l,優(yōu)選的,a=0.5;步驟六、將新的列重分布A'合法化,然后按照步驟三中的估計方法估計A''對應(yīng)LDPC碼的性能,若Y對應(yīng)LDPC碼的性能好于A^對應(yīng)LDPC碼的性能,則將A^替換為A、跳轉(zhuǎn)步驟七,否則令A(yù)'-(A、A"/2,重復(fù)執(zhí)行步驟六;所述將新的列重分布Y合法化的過程如下步驟A、對Y中的各分量的數(shù)值進(jìn)行調(diào)整,使0<《<1,/=1,2,...,/-1。具9體地,若八;<0,則進(jìn)行賦值操作若《>1,則進(jìn)行賦值操作a;=a;-《,(j通常設(shè)定為i0-5。步驟b、檢查約束條件^>;<1是否滿足,如果滿足,則所述將新的列重分布a'合法化的過程結(jié)束;如果不滿足,則進(jìn)行賦值操作y=(a"+aR)/2,重復(fù)步驟A。步驟七、計算所有列重分布兩兩之間的差值向量,將這些差值向量求模取和;若該和小于預(yù)設(shè)的閾值,則算法結(jié)束,否則重復(fù)歩驟四。所述閾值根據(jù)實際應(yīng)用需求確定。采用本發(fā)明所述優(yōu)化LDPC校驗矩陣列重分布的方法確定的8種碼率下中短碼長LDPC碼校驗矩陣的理想列重分布如下,其中y,表示列重為z'的列占總列數(shù)的比例<table>tableseeoriginaldocumentpage10</column></row><table>經(jīng)過實驗仿真,在8種碼率下,現(xiàn)有技術(shù)中LDPC碼在BPSK調(diào)制AWGN信道下的誤碼率如圖3所示,采用本發(fā)明所述方法優(yōu)化LDPC碼校驗矩陣后,LDPC碼在BPSK調(diào)制AWGN信道下的誤碼率如圖4所示,解碼均采用BP(BeliefPropagation,置信概率傳播)算法,圖中橫坐標(biāo)為傳遞1比特信息所用的能量與噪聲的比值,縱坐標(biāo)為誤碼率,顯然,圖4中誤碼率曲線即有效功耗更逼近香濃極限Shannonlimit,在進(jìn)一步降低功耗的情況下實現(xiàn)可靠的通信。通過具體實施方式的說明,應(yīng)當(dāng)可對本發(fā)明為達(dá)成預(yù)定目的所采取的技術(shù)手段及功效得以更加深入且具體的了解,然而所附圖示僅是提供參考與說明之用,并非用來對本發(fā)明加以限制。ii權(quán)利要求1.一種優(yōu)化非規(guī)則LDPC碼校驗矩陣列重分布的仿真方法,其特征在于,所述方法是在計算機仿真中按照以下步驟實現(xiàn)的步驟(1),根據(jù)不同的碼率選擇校驗矩陣列重的取值集合,該集合的選擇可以根據(jù)經(jīng)驗,也可以根據(jù)設(shè)計者所關(guān)心的矩陣列重數(shù)值設(shè)定,設(shè)集合中元素的個數(shù)即集合的大小為l;步驟(2),基于所述列重的取值集合隨機生成2l-2個合法的列重分布,一個合法的列重分布指的是一個長度為列重數(shù)值取值集合大小l的向量,可以稱為列重分布向量,其各個分量為列重取值集合中各列重所在的列的個數(shù)占總列數(shù)的比例,因此各個分量取值均在0,1之間,且所有分量的和為1,令這些向量為Λj(j=1,2,...,2l-2),Λij是Λj的第i個分量,i=1,2,...,l,具體地,所述隨機生成2l-2個合法的列重分布過程如下步驟(2.1),首先任意設(shè)定一個滿足合法分布要求的第一列重分布向量Λ1;步驟(2.2)、構(gòu)造余下的2l-3個列重分布向量,具體地,在構(gòu)造第二列重分布向量Λ2時,將范圍內(nèi)的隨機數(shù)依次賦值給前l(fā)-1個分量Λi2(i=1,…,l-1),按照同樣的方法構(gòu)造第三列重分布向量Λ3、……、第2l-2列重分布向量Λ2l-2;步驟(2.3)、按照j的取值從小到大的順序檢查id="icf0001"file="A2009100922500002C1.tif"wi="14"he="10"top="203"left="137"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>的約束條件是否得到滿足,若在j取值的范圍內(nèi),id="icf0002"file="A2009100922500002C2.tif"wi="14"he="10"top="213"left="98"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>的約束條件都能得到滿足,則所述隨機生成2l-2個合法的列重分布過程結(jié)束,若在j的前n個取值下,id="icf0003"file="A2009100922500002C3.tif"wi="14"he="10"top="223"left="172"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>分布約束條件得到滿足,1≤n≤2l-3,而在j的第n+1個取值時不滿足,則進(jìn)行下面的替換操作Λn+1=(Λn+1+t)/2,其中id="icf0004"file="A2009100922500002C4.tif"wi="21"he="9"top="243"left="114"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>重復(fù)本步驟,直到對所有的j的取值,id="icf0005"file="A2009100922500002C5.tif"wi="14"he="10"top="253"left="57"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>分布約束條件均能得到滿足;步驟(2.4),計算2l-2個的列重分布的最后一個分量,即進(jìn)行如下計算<mathsid="math0001"num="0001"><math><![CDATA[<mrow><msubsup><mi>Λ</mi><mi>l</mi><mi>j</mi></msubsup><mo>=</mo><mn>1</mn><mo>-</mo><munderover><mi>Σ</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>l</mi><mo>-</mo><mn>1</mn></mrow></munderover><msubsup><mi>Λ</mi><mi>k</mi><mi>j</mi></msubsup><mo>,</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mn>2</mn><mi>l</mi><mo>-</mo><mn>2</mn></mrow>]]></math></maths>步驟(3)、估計每一個列重分布下LDPC碼的性能,所述估計的方法可以是密度進(jìn)化方法或者蒙特卡洛仿真方法;步驟(4),將性能最差的LDPC碼校驗矩陣對應(yīng)的列重分布記為ΛW,再將性能倒數(shù)第二差的LDPC碼校驗矩陣對應(yīng)的列重分布記為Λw,計算除ΛW之外剩下的列重分布的均值ΛR,id="icf0007"file="A2009100922500003C2.tif"wi="33"he="10"top="76"left="82"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>步驟(5),構(gòu)造新的列重分布Λr=(1+α)ΛR-αΛW,0<α<1,一般優(yōu)選α=0.5;步驟(6)、將新的列重分布Λr合法化,合法化的過程如下步驟(6.1)、對Λr中的各分量的數(shù)值進(jìn)行調(diào)整,使id="icf0008"file="A2009100922500003C3.tif"wi="47"he="4"top="109"left="139"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>具體地,若id="icf0009"file="A2009100922500003C4.tif"wi="15"he="4"top="119"left="46"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>則進(jìn)行賦值操作id="icf0010"file="A2009100922500003C5.tif"wi="21"he="4"top="119"left="105"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>若id="icf0011"file="A2009100922500003C6.tif"wi="12"he="4"top="119"left="135"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>則進(jìn)行賦值操作id="icf0012"file="A2009100922500003C7.tif"wi="21"he="4"top="129"left="22"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>δ通常設(shè)定為10-5;步驟(6.2),檢查約束條件id="icf0013"file="A2009100922500003C8.tif"wi="14"he="10"top="136"left="92"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>是否滿足,如果滿足,則所述將新的列重分布Λr合法化的過程結(jié)束;如果不滿足,則進(jìn)行賦值操作Λr=(Λr+ΛR)/2,重復(fù)步驟(6.1);然后按照步驟(3)中的估計方法估計Λr對應(yīng)LDPC碼的性能,若Λr對應(yīng)LDPC碼的性能好于Λw對應(yīng)LDPC碼的性能,則將ΛW替換為Λr,跳轉(zhuǎn)步驟(7),否則令Λr=(Λr+ΛR)/2,重復(fù)執(zhí)行步驟(6);步驟(7)、判斷所有列重分布之間的差距是否小于預(yù)設(shè)的閾值,若是,則算法結(jié)束,否則重復(fù)步驟四,所述列重分布之間的差距可以用列重分布向量模的差值來衡量,所述閾值根據(jù)實際應(yīng)用需求確定。全文摘要一種優(yōu)化非規(guī)則LDPC碼校驗矩陣列重分布的仿真方法,屬于分組信道編碼
技術(shù)領(lǐng)域:
。其特征是根據(jù)不同的碼率,選擇校驗矩陣的列重取值集合,生成一系列列重分布向量作為搜索樣本集。對于每一個分布估計該分布下LDPC矩陣的性能,并以此作為標(biāo)準(zhǔn)找出性能最差和次差的兩個分布向量。通過一些列循環(huán)優(yōu)化操作,對最差分布向量進(jìn)行改造,直到其性能超過次差的分布向量。對全部分布向量進(jìn)行評估,再次找出最差分布向量對其進(jìn)行同樣方式的改造。如此循環(huán),直到全部分布向量的差距小于某個預(yù)先設(shè)定的閾值,算法終止。選擇所有分布中性能最優(yōu)的一個作為搜索結(jié)果。根據(jù)本發(fā)明生成的LDPC校驗矩陣,與其他方式生成的LDPC校驗矩陣相比,誤碼率性能有明顯改善。文檔編號H03M13/11GK101667838SQ200910092250公開日2010年3月10日申請日期2009年9月8日優(yōu)先權(quán)日2009年9月8日發(fā)明者徐淑正,楊華中,金慶文申請人:清華大學(xué)