專利名稱:Ldpc碼校驗(yàn)矩陣構(gòu)造方法及對(duì)應(yīng)矩陣乘法運(yùn)算裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線信息傳輸領(lǐng)域,特別是涉及一種LDPC碼校驗(yàn)矩陣構(gòu)造方法及對(duì)應(yīng)矩陣乘法運(yùn)算裝置。
背景技術(shù):
低密度校驗(yàn)碼(Low-Density Parity-Check codes, LDPC)最早由 Gallager 于 1962年提出,1981年Tanner引入雙向圖描述LDPC碼,90年代Mackey等再次發(fā)現(xiàn)LDPC碼并證明LDPC碼是一種逼近香農(nóng)(shannon)極限的好碼。LDPC碼在數(shù)字通信和數(shù)據(jù)存儲(chǔ)中得到廣泛應(yīng)用。在 802. 16e、802. lln、802. 3a、DVB-S2、DMB_T、CMMB 等標(biāo)準(zhǔn)都使用了 LDPC 作
為其信道編碼方案。目前LDPC碼的構(gòu)造方法主要有隨機(jī)構(gòu)造和結(jié)構(gòu)構(gòu)造方法。隨機(jī)構(gòu)造方法包括隨機(jī)搜索、PEG算法等,其中,PEG算法構(gòu)造的碼字具有很好的性能,被認(rèn)為是目前構(gòu)造出的中等碼長中性能最優(yōu)的LDPC碼。雖然該類碼在長碼時(shí)具有很好的糾錯(cuò)能力,然而由于碼組過長,以及生成矩陣與校驗(yàn)矩陣的不規(guī)則性,使編碼過于復(fù)雜而難以硬件實(shí)現(xiàn),該類碼字適合理論研究和仿真比較;結(jié)構(gòu)構(gòu)造方法包括幾何、代數(shù)和組合設(shè)計(jì)等構(gòu)造方法,大多數(shù)LDPC 結(jié)構(gòu)碼具有循環(huán)或準(zhǔn)循環(huán)結(jié)構(gòu),準(zhǔn)循環(huán)碼OiC-LDPC)在中短碼時(shí)具有很強(qiáng)的糾錯(cuò)能力,性能接近隨機(jī)構(gòu)造的最優(yōu)LDPC碼,又因其硬件實(shí)現(xiàn)極其簡單,因此現(xiàn)有標(biāo)準(zhǔn)中均采用具有特定結(jié)構(gòu)的準(zhǔn)循環(huán)碼。LDPC碼是一種稀疏的線性分組碼,但是與一般的線性分組碼不同,LDPC碼通常使用校驗(yàn)矩陣H表示,其對(duì)應(yīng)的生成矩陣G通常是非稀疏的,因此,編碼復(fù)雜度較高。為了降低編碼復(fù)雜度,Richardson和tobanke提出了一種基于近似下三角陣的有效編碼方法(簡稱RU算法),其H矩陣具有近似下三角結(jié)構(gòu),直接使用H矩陣進(jìn)行編碼。另外,基于下三角結(jié)構(gòu)提出的另一種具有雙對(duì)角結(jié)構(gòu)的B-LDPC碼,該碼字可以使用RU算法快速編碼,復(fù)雜度更低,而且性能非常接近于同等長度隨機(jī)構(gòu)造的碼字,802. 16e中使用了這種結(jié)構(gòu)的碼字。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種LDPC碼校驗(yàn)矩陣構(gòu)造方法,使得編碼復(fù)雜度低并且得到糾錯(cuò)性能非常接近隨機(jī)構(gòu)造的LDPC碼。本發(fā)明所要解決的技術(shù)問題是還提供一種上述校驗(yàn)矩陣乘法運(yùn)算裝置,使得LDPC 碼的實(shí)現(xiàn)復(fù)雜度降低。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是提供一種LDPC碼校驗(yàn)矩陣構(gòu)造方法,包括以下步驟(a)確定構(gòu)造碼字的長度nXL,子矩陣的大小L,碼率R以及校驗(yàn)矩陣的行數(shù) mXL,基礎(chǔ)矩陣Hb大小為mXn,校驗(yàn)矩陣H大小為mLXnL ;(b)確定校驗(yàn)矩陣H的最優(yōu)度數(shù)分布;(c)構(gòu)造一個(gè)環(huán)長最大的基礎(chǔ)矩陣Hb ;
4
(d)選擇合適的移位因子將得到的基礎(chǔ)矩陣Hb擴(kuò)展成環(huán)長最大化的QC-LDPC碼, 通過確定基礎(chǔ)矩陣Hb中元素為‘1’位置的移位因子來確定了整個(gè)校驗(yàn)矩陣H。所述步驟(C)還包括以下步驟(cl)構(gòu)造一個(gè)mXn的零矩陣;(c2)將變量節(jié)點(diǎn)按照列重由低到高的順序排列,依次對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行如下操作(c21)在與基礎(chǔ)矩陣Hb對(duì)應(yīng)的二部圖上以該變量節(jié)點(diǎn)為根節(jié)點(diǎn)逐層進(jìn)行樹狀展開,在樹擴(kuò)展中逐層記錄每一層到達(dá)的校驗(yàn)節(jié)點(diǎn),重復(fù)出現(xiàn)的節(jié)點(diǎn)只記錄第一次到達(dá)的,當(dāng)由第L層擴(kuò)展到第L+1層時(shí),第L+1層到達(dá)的所有節(jié)點(diǎn)都已經(jīng)在樹中則停止擴(kuò)展;(c22)判斷所有校驗(yàn)節(jié)點(diǎn)是否都在樹中,如果有校驗(yàn)節(jié)點(diǎn)在樹外,根節(jié)點(diǎn)則從中選擇當(dāng)前度數(shù)最低的校驗(yàn)節(jié)點(diǎn)相連,如果所有校驗(yàn)節(jié)點(diǎn)都在樹中,根節(jié)點(diǎn)則選擇距離根節(jié)點(diǎn)距離最遠(yuǎn)度數(shù)最低的校驗(yàn)節(jié)點(diǎn)相連;(c23)重復(fù)步驟(c21) 步驟(c22),直到該變量節(jié)點(diǎn)滿足相應(yīng)的度數(shù)要求;(c24)重復(fù)步驟(c21) 步驟(c23),直到所有變量節(jié)點(diǎn)都滿足度數(shù)要求。在所述步驟(cl)中,如果H矩陣為雙對(duì)角結(jié)構(gòu)或下三角結(jié)構(gòu)時(shí),對(duì)零矩陣已知位置處賦值相應(yīng)值。所述步驟(d)還包括以下步驟(dl)構(gòu)造一個(gè)mXn的矩陣Hs,如果基礎(chǔ)矩陣Hb相應(yīng)位置元素為‘1,則將矩陣Hs 相應(yīng)元素置為0,其余基礎(chǔ)矩陣Hb元素為‘0’的位置將矩陣Hs相應(yīng)元素置為-1 ;(d2)按照列重由小到大的順序,逐個(gè)給基礎(chǔ)Hb矩陣中元素為‘1’的位置選擇移位因子,并更新矩陣Hs相應(yīng)位置元素的值,得到完整的矩陣Hs,該矩陣Hs即為校驗(yàn)矩陣H。所述的步驟(dl)和步驟(d2)之間還包括判斷矩陣Hs是否為雙對(duì)角結(jié)構(gòu)或下三角結(jié)構(gòu),如果是則給矩陣Hs已知的移位因子的元素賦值,否則進(jìn)入下一步。所述步驟(d2)包括以下步驟(d21)以基礎(chǔ)矩陣Hb中的變量節(jié)點(diǎn)η為起始節(jié)點(diǎn),在基礎(chǔ)矩陣Hb所對(duì)應(yīng)的二部圖上求可到達(dá)校驗(yàn)節(jié)點(diǎn)m的所有路徑,其中路徑中包含的節(jié)點(diǎn)不能重復(fù),然后根據(jù)矩陣Hs的值按照約定的邊的權(quán)重計(jì)算路徑的權(quán)重以及該路徑的權(quán)重對(duì)應(yīng)的多條路徑中的最小路徑長度;(d22)計(jì)算移位因子候選集;(d23)如果移位因子候選集為非空,則從移位因子候選集中隨機(jī)選取一個(gè)值為移位因子;如果移位因子候選集為空,則選取權(quán)重對(duì)應(yīng)的路徑長度最大的那個(gè)值為移位因子, 用得到的移位因子更新矩陣Hs ;(d24)重復(fù)步驟(d21) 步驟(d23),直到給基礎(chǔ)矩陣Hb中元素為‘1,的所有位置選擇了合適的移位因子,最后得到完整的矩陣Hs。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是還提供一種LDPC碼校驗(yàn)矩陣乘法運(yùn)算裝置,包括校驗(yàn)矩陣生成單元,用于采用上述LDPC碼校驗(yàn)矩陣構(gòu)造方法生成校驗(yàn)矩陣,該校驗(yàn)矩陣由mXn個(gè)LXL子矩陣構(gòu)成,每個(gè)子矩陣是一個(gè)由單位矩陣循環(huán)右移若干位置的置換矩陣;信息序列生成單元,用于生成nXL的信息序列;分割單元,用于將生成的 nXL的信息序列劃分為η個(gè)長度為L的子序列;乘法單元,用于將校驗(yàn)矩陣中的每個(gè)循環(huán)置換矩陣與每個(gè)子信息序列的相乘。
5
有益效果由于采用了上述的技術(shù)方案,本發(fā)明與現(xiàn)有技術(shù)相比,具有以下的優(yōu)點(diǎn)和積極效果本發(fā)明構(gòu)造出的LDPC碼校驗(yàn)矩陣,并利用該矩陣得到的LDPC碼在編碼的復(fù)雜度和碼字的性能之間取得了一個(gè)很好的折中,既具有隨機(jī)構(gòu)造碼字的良好性能,又獲得了準(zhǔn)循環(huán)碼的簡單編碼結(jié)構(gòu)。仿真顯示,在10_5誤碼率條件下,本發(fā)明構(gòu)造出的碼字性能與隨機(jī)構(gòu)造的碼字性能差距僅為0. OldB,與準(zhǔn)循環(huán)碼字相比,本發(fā)明構(gòu)造的碼字有0. 4dB的增益。本發(fā)明給出的矩陣乘法的快速實(shí)現(xiàn)裝置,進(jìn)一步降低了 LDPC碼的實(shí)現(xiàn)復(fù)雜度,提高了 LDPC碼在實(shí)際系統(tǒng)應(yīng)用的可能性。
圖1是本發(fā)明第一實(shí)施方式的流程圖;圖2是本發(fā)明第二實(shí)施方式的方框圖;圖3是本發(fā)明中下三角結(jié)構(gòu)的校驗(yàn)矩陣分成6個(gè)部分后的具體參數(shù)示意圖。
具體實(shí)施例方式下面結(jié)合具體實(shí)施例,進(jìn)一步闡述本發(fā)明。應(yīng)理解,這些實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對(duì)本發(fā)明作各種改動(dòng)或修改,這些等價(jià)形式同樣落于本申請(qǐng)所附權(quán)利要求書所限定的范圍。本發(fā)明構(gòu)造的碼字是一種復(fù)雜度低,它是一種基于置換矩陣的碼字,它的校驗(yàn)矩陣H由mXn個(gè)LXL子矩陣構(gòu)成,每個(gè)子矩陣是一個(gè)由單位矩陣循環(huán)右移若干位置的置換矩陣,記置換矩陣為櫨“,0彡a,,j < LS移位因子,并且約定為零矩陣,于是一個(gè)mLXnL 的校驗(yàn)矩陣H可以簡化表示為式(1)
權(quán)利要求
1.一種LDPC碼校驗(yàn)矩陣構(gòu)造方法,其特征在于,包括以下步驟(a)確定構(gòu)造碼字的長度nXL,子矩陣的大小L,碼率R以及校驗(yàn)矩陣的行數(shù)mXL,基礎(chǔ)矩陣Hb大小為mXn,校驗(yàn)矩陣H大小為mLXnL ;(b)確定校驗(yàn)矩陣H的最優(yōu)度數(shù)分布;(c)構(gòu)造一個(gè)環(huán)長最大的基礎(chǔ)矩陣Hb;(d)選擇合適的移位因子將得到的基礎(chǔ)矩陣Hb擴(kuò)展成環(huán)長最大化的QC-LDPC碼,通過確定基礎(chǔ)矩陣Hb中元素為‘1’位置的移位因子來確定了整個(gè)校驗(yàn)矩陣H。
2.根據(jù)權(quán)利要求1所述的LDPC碼校驗(yàn)矩陣構(gòu)造方法,其特征在于,所述步驟(c)還包括以下步驟(cl)構(gòu)造一個(gè)mXn的零矩陣;(c2)將變量節(jié)點(diǎn)按照列重由低到高的順序排列,依次對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行如下操作 (c21)在與基礎(chǔ)矩陣Hb對(duì)應(yīng)的二部圖上以該變量節(jié)點(diǎn)為根節(jié)點(diǎn)逐層進(jìn)行樹狀展開,在樹擴(kuò)展中逐層記錄每一層到達(dá)的校驗(yàn)節(jié)點(diǎn),重復(fù)出現(xiàn)的節(jié)點(diǎn)只記錄第一次到達(dá)的,當(dāng)由第L 層擴(kuò)展到第L+1層時(shí),第L+1層到達(dá)的所有節(jié)點(diǎn)都已經(jīng)在樹中則停止擴(kuò)展;(c22)判斷所有校驗(yàn)節(jié)點(diǎn)是否都在樹中,如果有校驗(yàn)節(jié)點(diǎn)在樹外,根節(jié)點(diǎn)則從中選擇當(dāng)前度數(shù)最低的校驗(yàn)節(jié)點(diǎn)相連,如果所有校驗(yàn)節(jié)點(diǎn)都在樹中,根節(jié)點(diǎn)則選擇距離根節(jié)點(diǎn)距離最遠(yuǎn)度數(shù)最低的校驗(yàn)節(jié)點(diǎn)相連;(c23)重復(fù)步驟(c21) 步驟(c22),直到該變量節(jié)點(diǎn)滿足相應(yīng)的度數(shù)要求; (c24)重復(fù)步驟(c21) 步驟(c23),直到所有變量節(jié)點(diǎn)都滿足度數(shù)要求。
3.根據(jù)權(quán)利要求2所述的LDPC碼校驗(yàn)矩陣構(gòu)造方法,其特征在于,在所述步驟(cl) 中,如果H矩陣為雙對(duì)角結(jié)構(gòu)或下三角結(jié)構(gòu)時(shí),對(duì)零矩陣已知位置處賦值相應(yīng)值。
4.根據(jù)權(quán)利要求1所述的LDPC碼校驗(yàn)矩陣構(gòu)造方法,其特征在于,所述步驟(d)還包括以下步驟(dl)構(gòu)造一個(gè)mXn的矩陣Hs,如果基礎(chǔ)矩陣Hb相應(yīng)位置元素為‘1,則將矩陣Hs相應(yīng)元素置為0,其余基礎(chǔ)矩陣Hb元素為‘0’的位置將矩陣Hs相應(yīng)元素置為-1 ;(d2)按照列重由小到大的順序,逐個(gè)給基礎(chǔ)Hb矩陣中元素為‘1’的位置選擇移位因子,并更新矩陣Hs相應(yīng)位置元素的值,得到完整的矩陣Hs,該矩陣Hs即為校驗(yàn)矩陣H。
5.根據(jù)權(quán)利要求4所述的LDPC碼校驗(yàn)矩陣構(gòu)造方法,其特征在于,所述的步驟(dl)和步驟(d2)之間還包括判斷矩陣Hs是否為雙對(duì)角結(jié)構(gòu)或下三角結(jié)構(gòu),如果是則給矩陣Hs已知的移位因子的元素賦值,否則進(jìn)入下一步。
6.根據(jù)權(quán)利要求4所述的LDPC碼校驗(yàn)矩陣構(gòu)造方法,其特征在于,所述步驟(業(yè))包以下步驟(d21)以基礎(chǔ)矩陣Hb中的變量節(jié)點(diǎn)η為起始節(jié)點(diǎn),在基礎(chǔ)矩陣Hb所對(duì)應(yīng)的二部圖上求可到達(dá)校驗(yàn)節(jié)點(diǎn)m的所有路徑,其中路徑中包含的節(jié)點(diǎn)不能重復(fù),然后根據(jù)矩陣Hs的值按照約定的邊的權(quán)重計(jì)算路徑的權(quán)重以及該路徑的權(quán)重對(duì)應(yīng)的多條路徑中的最小路徑長度;(d22)計(jì)算移位因子候選集;(d23)如果移位因子候選集為非空,則從移位因子候選集中隨機(jī)選取一個(gè)值為移位因子;如果移位因子候選集為空,則選取權(quán)重對(duì)應(yīng)的路徑長度最大的那個(gè)值為移位因子,用得到的移位因子更新矩陣Hs;(d24)重復(fù)步驟(d21) 步驟(d23),直到給基礎(chǔ)矩陣Hb中元素為‘1’的所有位置選擇了合適的移位因子,最后得到完整的矩陣Hs。
7. —種LDPC碼校驗(yàn)矩陣乘法運(yùn)算裝置,其特征在于,包括校驗(yàn)矩陣生成單元,用于采用如權(quán)利要求1-6中任一權(quán)利要求所述LDPC碼校驗(yàn)矩陣構(gòu)造方法生成校驗(yàn)矩陣,該校驗(yàn)矩陣由mXn個(gè)LXL子矩陣構(gòu)成,每個(gè)子矩陣是一個(gè)由單位矩陣循環(huán)右移若干位置的置換矩陣;信息序列生成單元,用于生成肌L的信息序列;分割單元,用于將生成的nXL的信息序列劃分為η個(gè)長度為L的子序列;乘法單元,用于將校驗(yàn)矩陣中的每個(gè)循環(huán)置換矩陣與每個(gè)子信息序列的相乘。
全文摘要
本發(fā)明涉及一種LDPC碼校驗(yàn)矩陣構(gòu)造方法及對(duì)應(yīng)矩陣乘法運(yùn)算裝置,所述方法包括以下步驟確定構(gòu)造碼字的長度n×L,循環(huán)置換子矩陣的大小L,碼率R以及校驗(yàn)矩陣的行數(shù)m×L,基礎(chǔ)矩陣Hb大小為m×n,校驗(yàn)矩陣H大小為mL×nL;確定校驗(yàn)矩陣H的最優(yōu)度數(shù)分布;構(gòu)造一個(gè)環(huán)長最大的基礎(chǔ)矩陣Hb;選擇合適的移位因子將得到的基礎(chǔ)矩陣Hb擴(kuò)展成環(huán)長最大化的QC-LDPC碼,通過確定基礎(chǔ)矩陣Hb中元素為‘1’位置的移位因子來確定了整個(gè)校驗(yàn)矩陣H。裝置包括校驗(yàn)矩陣生成單元、信息序列生成單元、分割單元和乘法單元。本發(fā)明使得編碼復(fù)雜度降低并且得到糾錯(cuò)性能非常接近隨機(jī)構(gòu)造的LDPC碼,同時(shí)使得LDPC碼的實(shí)現(xiàn)復(fù)雜度降低。
文檔編號(hào)H03M13/11GK102394659SQ20111022192
公開日2012年3月28日 申請(qǐng)日期2011年8月4日 優(yōu)先權(quán)日2011年8月4日
發(fā)明者施玉松, 朱磊基, 汪涵, 王營冠, 邢濤 申請(qǐng)人:中國科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所