两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種非正則低密度奇偶校驗(yàn)碼的構(gòu)造方法

文檔序號(hào):7508612閱讀:336來源:國知局
專利名稱:一種非正則低密度奇偶校驗(yàn)碼的構(gòu)造方法
技術(shù)領(lǐng)域
本發(fā)明屬于無線通信技術(shù)領(lǐng)域,它特別涉及LDPCC(Low-Density Parity-Check Codes)即低密度奇偶校驗(yàn)碼的構(gòu)造方法。
背景技術(shù)
LDPC(Lower-Density Parity-Check)碼是一類可以用非常稀疏的校驗(yàn)矩陣或二分圖定義的線性分組糾錯(cuò)碼,最初由Gallager發(fā)現(xiàn),故亦稱Gallager碼。經(jīng)數(shù)十年的沉寂,隨著計(jì)算機(jī)能力的增強(qiáng)和相關(guān)理論(如圖論、BP傳播、turbo碼等)的發(fā)展,MacKay和Neal重新發(fā)現(xiàn)了它,并證明它在與基于BP的迭代譯碼相結(jié)合的條件下具有逼近Shannon限的性能。LDPC的重新發(fā)現(xiàn)是繼turbo碼后在糾錯(cuò)編碼領(lǐng)域又一重大進(jìn)展。
LDPC碼的特點(diǎn)是性能優(yōu)于turbo碼,具有較大靈活性和較低的差錯(cuò)平底特性;描述簡單,對(duì)嚴(yán)格的理論分析具有可驗(yàn)證性;譯碼復(fù)雜度低于turbo碼,且可實(shí)現(xiàn)完全的并行操作,硬件復(fù)雜度低,因而適合硬件實(shí)現(xiàn);吞吐量大,極具高速譯碼潛力。
研究結(jié)果顯示,對(duì)于二元輸入的二進(jìn)制對(duì)稱AWGN信道,碼率為1/2的非正則LDPC碼可具有距容量不到0.06dB的門限;計(jì)算機(jī)仿真結(jié)果表明,最好的非正則LDPC碼(長度為106)可獲得在BER=10-6時(shí)僅偏離容量0.13dB的性能,優(yōu)于迄今所知道的最佳turbo碼;當(dāng)碼長為107、碼率R=1/2時(shí),其性能距Shannon限只差0.04dB。
LDPC碼的優(yōu)異性能及其在信息可靠傳輸中的良好應(yīng)用前景(例如光通信、衛(wèi)星通信、深空通信、第4代移動(dòng)通信系統(tǒng)、高速與甚高速率數(shù)字用戶線、光和磁記錄系統(tǒng)等),已引起世界各國學(xué)術(shù)界和IT業(yè)界的高度重視,成為當(dāng)今信道編碼領(lǐng)域最矚目的研究熱點(diǎn)。LDPC碼在許多情況下將取代turbo碼的趨勢(shì)已很明顯,研究LDPC碼的學(xué)術(shù)意義、商業(yè)價(jià)值和對(duì)IT(特別是通信)領(lǐng)域相關(guān)技術(shù)發(fā)展的推動(dòng)作用是巨大的。近幾年國際上對(duì)LDPC碼的理論研究已取得重要進(jìn)展,在應(yīng)用基礎(chǔ)乃至工程應(yīng)用和VLSI(超大規(guī)模集成電路)實(shí)現(xiàn)方面的研究亦正在全方位開展。
LDPC碼分為正則碼和非正則碼兩種,它們相對(duì)應(yīng)的校驗(yàn)矩陣稱為正則矩陣和非正則矩陣。正則碼又分廣義正則碼和狹義正則碼,狹義正則碼簡稱正則碼。正則的LDPC碼是一種線性分組碼,結(jié)構(gòu)非常簡單,其校驗(yàn)矩陣為一稀疏矩陣,也就是說其矩陣元除一小部分不為0外其它絕大多數(shù)都為0。通常我們說一個(gè)(n,ρ,γ)LDPC碼是指其碼長為n,其奇偶校驗(yàn)矩陣滿足
(1)每行包含有固定個(gè)數(shù)的ρ(ρ為定值)個(gè)‘1’,ρ又稱為行的權(quán)重,其它元素為‘0’;(2)每列也包含有γ(γ也為定值)個(gè)‘1’,γ又稱為列的權(quán)重,其它元素為‘0’;(3)任意兩行或兩列至多有一個(gè)‘1’在相同的位置;(4)ρ和γ都遠(yuǎn)遠(yuǎn)小于n,以滿足校驗(yàn)矩陣的低密度特性。
校驗(yàn)矩陣的一行稱為關(guān)聯(lián)矢量(incidence vectors),一列稱為相交矢量(intersect vectors)。
廣義正則LDPC碼除上述條件(3)外與狹義正則碼相同。
非正則LDPC碼的奇偶校驗(yàn)矩陣滿足(1)每行包含的‘1’的個(gè)數(shù)不完全相同;(2)每列包含的‘1’的個(gè)數(shù)不完全相同;(3)任意兩行或兩列至多有一個(gè)‘1’在相同的位置;(4)每行或每列‘1’的個(gè)數(shù)都遠(yuǎn)遠(yuǎn)小于碼長,以滿足校驗(yàn)矩陣的低密度特性。
由校驗(yàn)矩陣H的零域得到的碼字稱為非正則LDPC碼。
正則校驗(yàn)矩陣的構(gòu)造方法有基于歐氏幾何空間(Euclidean Geometry簡稱EG,詳見Y.Kou,S.Lin,and M.Fossorier,“Low-Density Parity-Check Codes Based on Finite GeometriesA Rediscovery and NewResults”,IEEE Trans Inform Theor,Vol.47,No.7,pp2711-2736,Nov 2001)的構(gòu)造方法,均衡不完全區(qū)組設(shè)計(jì)方法(Balanced Incomplete Block Design簡稱BIBD,詳見Bassem Ammar,Bahram Honary,Yu Kou,JunXu,and Shu Lin,“Construction of Low-Density Parity-Check Codes Basedon Balanced Incomplete BlockDesigns”,IEEE Trans Inform Theor,Vol.50,No.6,Jun 2004),這些方法都充分利用了循環(huán)移位的特性,有效地降低了校驗(yàn)矩陣實(shí)現(xiàn)的復(fù)雜度。但是生成矩陣和編碼器的實(shí)現(xiàn)比較復(fù)雜。
非正則校驗(yàn)矩陣的構(gòu)造方法有隨機(jī)搜索的方法(詳見Thomas J.Richardson,M.Amin Shokrollahi,andRüdiger L.Urbanke,“Design of Capacity-Approaching IrregularLow-Density Parity-Check Codes”,IEEETrans Inform Theor,Vol.47,No.2,F(xiàn)eb 2001),基于Pi旋轉(zhuǎn)的設(shè)計(jì)方法(Pi-rotation,詳見Echard R,ChangS C,“The rotation low-density parity-check codes”,in Proc GLOBECOM 2001,pp980-984),基于Pi旋轉(zhuǎn)的設(shè)計(jì)方法的編碼器的設(shè)計(jì)復(fù)雜度低于正則校驗(yàn)矩陣。這兩種方法構(gòu)造的校驗(yàn)矩陣不具有循環(huán)移位的特性,實(shí)現(xiàn)和存儲(chǔ)比較復(fù)雜。
綜上所述,現(xiàn)有的非正則LDPC碼的構(gòu)造方法在實(shí)現(xiàn)校驗(yàn)矩陣上硬件的復(fù)雜度比較高,而且采用隨機(jī)搜索方法會(huì)大大影響編碼的速率。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種非正則的LDPC碼的構(gòu)造方法,采用本發(fā)明方法構(gòu)造的非正則LDPC碼具有編碼簡單、碼長和碼率靈活的優(yōu)點(diǎn)。
為了方便地描述本發(fā)明的內(nèi)容,首先作一個(gè)術(shù)語定義編碼器的輸入信息為μ,生成矩陣為G,校驗(yàn)矩陣為H,編碼器輸出的LDPC碼字為c。
本發(fā)明提出的校驗(yàn)矩陣H由兩個(gè)子矩陣組成H=[P D]在本發(fā)明中用到了以下公知的編碼基本知識(shí)包含有限個(gè)元素的域稱為有限域,域中元素的個(gè)數(shù)稱為域的階;編碼器的輸入碼字可以通過公式c=μ×G生成相應(yīng)的輸出碼字;生成矩陣G可以由公式H×GT=0→]]>通過校驗(yàn)矩陣H求得;其中,GT表示生成矩陣G的轉(zhuǎn)置, 是一個(gè)全零矢量;因此,校驗(yàn)矩陣H的設(shè)計(jì)是關(guān)鍵。
本發(fā)明提供了一種非正則校驗(yàn)矩陣的構(gòu)造方法,它包括下面的步驟步驟1,構(gòu)造子矩陣P首先,構(gòu)造初始有限域矢量矩陣選取階為N的有限域,域中元素為從1至N的正整數(shù),我們用帶箭頭的數(shù)字來表示這些元素;選取該域中所有元素,從小到大排成一列,得到一個(gè)N×1的列矩陣KK=1→2→3→···N-1→N→]]>用得到的列矩陣K按照下面的公式計(jì)算得到一個(gè)N×N的初始矢量矩陣
Λ→=K×KT=1×1→1×2→···1×N→2×1→2×2→···2×N→············N×1→N×2→···N×N→]]>其中,KT是K的轉(zhuǎn)置;這里,N選取大于5的奇素?cái)?shù),同時(shí)滿足N=4×q+1其中,q>1且為正整數(shù);再對(duì)初始矢量矩陣 中的每個(gè)元素進(jìn)行模N運(yùn)算,得到如下形式的N×N的初始有限域矢量矩陣 V→=(1×1)modN→(1×2)modN→···(1×(N-1)modN)→0→(2×1)modN→(2×2)modN→···(2×(N-1)modN)→0→···············((N-1)×1)modN→((N-1)×2)modN→···((N-1)×(N-1))modN→0→0→0→0→0→0→]]>其中,mod是取模運(yùn)算符。
從上式的計(jì)算結(jié)果可以看出,初始有限域矢量矩陣 由 至 這些元素構(gòu)成。
然后,對(duì)初始有限域矢量矩陣 進(jìn)行循環(huán)移位、去零陣、倒序處理、截取處理;循環(huán)移位處理選取N個(gè)N×N的子矩陣,按照從1到N列排列,分別定義為第一個(gè)子矩陣、第二個(gè)子矩陣、……、第N個(gè)子矩陣,將初始有限域矢量矩陣 的第一行放到第一個(gè)子矩陣的第一行,將初始有限域矢量矩陣 的第二行放到第二個(gè)子矩陣的第一行,依次類推,將初始有限域矢量矩陣 的第N行放到第N個(gè)子矩陣的第一行;這樣就構(gòu)造出N個(gè)子矩陣的第一行;對(duì)于第一個(gè)子矩陣,將它的第一行的最后一個(gè)元素放到第二行的第一個(gè)位置,將第一行的第一個(gè)元素放到第二行的第二個(gè)位置,將第一行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第一行的第N-1個(gè)元素放到第二行的第N個(gè)位置;再將它的第二行的最后一個(gè)元素放到第三行的第一個(gè)位置,將第二行的第一個(gè)元素放到第三行的第二個(gè)位置,將第二行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第二行的第N-1個(gè)元素放到第二行的第N個(gè)位置;同樣,將它的第N-1行的最后一個(gè)元素放到第N行的第一個(gè)位置,將第N-1行的第一個(gè)元素放到第N行的第二個(gè)位置,將第N-1行的第二個(gè)元素放到第N行的第三個(gè)位置,依次類推,將第N-1行的第N-1個(gè)元素放到第N行的第N個(gè)位置;這樣就構(gòu)造出了第一個(gè)子矩陣;對(duì)于第二個(gè)子矩陣,將它的第一行的最后一個(gè)元素放到第二行的第一個(gè)位置,將第一行的第一個(gè)元素放到第二行的第二個(gè)位置,將第一行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第一行的第N-1個(gè)元素放到第二行的第N個(gè)位置;再將它的第二行的最后一個(gè)元素放到第三行的第一個(gè)位置,將第二行的第一個(gè)元素放到第三行的第二個(gè)位置,將第二行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第二行的第N-1個(gè)元素放到第二行的第N個(gè)位置;同樣,將它的第N-1行的最后一個(gè)元素放到第N行的第一個(gè)位置,將第N-1行的第一個(gè)元素放到第N行的第二個(gè)位置,將第N-1行的第二個(gè)元素放到第N行的第三個(gè)位置,依次類推,將第N-1行的第N-1個(gè)元素放到第N行的第N個(gè)位置;這樣就構(gòu)造出了第二個(gè)子矩陣;依次類推,對(duì)于第N個(gè)子矩陣,將它的第一行的最后一個(gè)元素放到第二行的第一個(gè)位置,將第一行的第一個(gè)元素放到第二行的第二個(gè)位置,將第一行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第一行的第N-1個(gè)元素放到第二行的第N個(gè)位置;再將它的第二行的最后一個(gè)元素放到第三行的第一個(gè)位置,將第二行的第一個(gè)元素放到第三行的第二個(gè)位置,將第二行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第二行的第N-1個(gè)元素放到第二行的第N個(gè)位置;同樣,將它的第N-1行的最后一個(gè)元素放到第N行的第一個(gè)位置,將第N-1行的第一個(gè)元素放到第N行的第二個(gè)位置,將第N-1行的第二個(gè)元素放到第N行的第三個(gè)位置,依次類推,將第N-1行的第N-1個(gè)元素放到第N行的第N個(gè)位置;這樣就構(gòu)造出了第N個(gè)子矩陣;這樣就構(gòu)造出了N個(gè)N×N的循環(huán)子矩陣。
例如第一行循環(huán)移位得到的子矩陣為V1→(1×1)modN→(1×2)modN→···(1×(N-1)modN)→0→0→(1×1)modN→···(1×(N-2)modN)→(1×(N-1))modN→···············(1×2)modN→(1×3)modN→···0→(1×1)→modN]]>經(jīng)過以上的操作得到了N個(gè)N×N的循環(huán)子矩陣,它們的列排列構(gòu)成了N2×N的循環(huán)移位后的有限域矢量矩陣 V′→=V1→V2→···VN→]]>去零陣處理去掉循環(huán)移位后的有限域矢量矩陣 中的 這個(gè)全零矩陣,得到N-1個(gè)循環(huán)子矩陣按列排列的(N2-N)×N的循環(huán)移位并去零陣后的有限域矢量矩陣 V′′→=V1→V2→···VN-1→]]>倒序處理對(duì)循環(huán)移位并去零陣后的有限域矢量矩陣 中的N-1個(gè)循環(huán)子矩陣每隔一個(gè)子矩陣按行進(jìn)行倒序,也就是對(duì) 等下標(biāo)為偶數(shù)的循環(huán)子矩陣的1至N行進(jìn)行逆序排列,所述的逆序排列是指將原來循環(huán)子矩陣中的第一行放到倒序矩陣的最后一行,將原來的循環(huán)子矩陣中的最后一行放到倒序矩陣的第一行;將循環(huán)子矩陣的第二行放到倒序矩陣的倒數(shù)第二行,將原來循環(huán)子矩陣中的倒數(shù)第二行放到倒序矩陣的第二行;依次進(jìn)行,將循環(huán)子矩陣中第(N-1)/2行放到倒序矩陣的倒數(shù)第(N-1)/2行,將原來循環(huán)子矩陣中的倒數(shù)第(N-1)/2行放到倒序矩陣的第(N-1)/2行;這樣就得到了倒序矩陣。
倒序處理后得到(N2-N)×N的循環(huán)移位、去零陣、倒序處理后的有限域矢量矩陣 為V′′′→=V1→V2adv→V3→V4adv→···VN-2→VN-1adv→]]>
其中, 等帶有adv的符號(hào)表示行倒序后的矢量矩陣;截取處理下面在對(duì)循環(huán)移位、去零陣、倒序處理后的有限域矢量矩陣 進(jìn)行截取處理之前,需要確定三個(gè)重要的參數(shù)有限域的階N,列權(quán)值W,碼率R。
其中,有限域的階N已經(jīng)確定,列權(quán)值W是指子矩陣P的每列中‘1’的個(gè)數(shù),列權(quán)值W應(yīng)選取小于N-2的正整數(shù),列權(quán)值W的選擇方法是如果階N=4×q+1,則列權(quán)值W選擇為4;如果階N=8×q+1,則列權(quán)值W選擇為4或8,其中,q>1且為正整數(shù)。
碼率R根據(jù)用戶對(duì)通信系統(tǒng)的要求而定,碼率R的選擇要求保證R/(1-R)為大于或等于1的正整數(shù),碼率R的選擇值有0.5、0.75、0.8、0.875、0.9。
構(gòu)造一個(gè)行數(shù)為N×W、列數(shù)為N的矩陣,命名為矩陣一。
從矢量矩陣 中不重復(fù)地任意取出N×W行,作為矩陣一的N×W行;需要注意的是,在矢量矩陣 中取出的排在前面的行在矩陣一中仍然排在前面。
再構(gòu)造一個(gè)行數(shù)為N×W、列數(shù)為W×R/(1-R)的矩陣,命名為矩陣二。
從矩陣一中不重復(fù)地任意取出除最后兩列以外的W×R/(1-R)列,作為矩陣二的W×R/(1-R)列;需要注意的是,在矩陣一中取出的排在前面的列在矩陣二中仍然排在前面。
矩陣二就是循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 其行數(shù)為N×W,列數(shù)為W×R/(1-R)。
可以發(fā)現(xiàn),循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 由 至 這些元素構(gòu)成。
最后,將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 轉(zhuǎn)換為二進(jìn)制有限域上的稀疏矩陣二進(jìn)制有限域上的稀疏矩陣就是指矩陣中的所有元素為‘0’或者‘1’,且‘1’的個(gè)數(shù)遠(yuǎn)遠(yuǎn)小于‘0’的個(gè)數(shù)。
將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為N的向量{10…00}來替換,該向量的第一個(gè)元素為1,其余N-1個(gè)元素全為0;將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為N的向量{01…00}來替換,該向量的第二個(gè)元素為1,其余N-1個(gè)元素全為0;依次進(jìn)行,將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為N的向量{00…10}來替換,該向量的第N-1個(gè)元素為1,其余N-1個(gè)元素全為0;將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為N的向量{00…01}來替換,該向量的第N個(gè)元素為1,其余N-1個(gè)元素全為0。經(jīng)過這些操作,原來的循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素被替換成了向量,因此,新的循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 的元素為‘0’或者‘1’,這個(gè)新的循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 即是構(gòu)造的校驗(yàn)矩陣H的子矩陣P。
步驟2,構(gòu)造子矩陣D選擇一個(gè)行數(shù)和列數(shù)都等于N×W的方陣,令該方陣的主對(duì)角線和與主對(duì)角線相鄰的下對(duì)角線上的元素全為‘1’,其余元素全為‘0’,就可以得到校驗(yàn)矩陣H的子矩陣D 步驟3,構(gòu)造校驗(yàn)矩陣H將構(gòu)造好的校驗(yàn)矩陣H的兩個(gè)子矩陣P和D按下式組合H=[P D]就可以得到校驗(yàn)矩陣H。
步驟4,按照以下方法構(gòu)造編碼后的非正則LDPC碼字首先,構(gòu)造出子矩陣D的逆矩陣L選擇一個(gè)行數(shù)和列數(shù)都等于N×W的方陣,令該方陣的對(duì)角線以下的元素全為‘1’,其余元素全為‘0’,于是得到了子矩陣D的逆矩陣L 然后,生成非正則LDPC碼的校驗(yàn)元部分輸入已知的編碼器的信息μ,它的元素為‘0’或者‘1’,它的行數(shù)為N×W×R/(1-R),列數(shù)為1;則LDPC碼的校驗(yàn)元部分η的計(jì)算公式為η=L×(P×μ)得到的非正則LDPC碼的校驗(yàn)元部分η的行數(shù)為N×W,列數(shù)為1。
最后,生成編碼后的非正則LDPC碼將輸入的編碼器的信息μ和由上面計(jì)算得到的校驗(yàn)元部分η按下式組合c=μη]]>就得到了輸出的非正則LDPC碼字c,c的行數(shù)為N×W/(1-R),列數(shù)為1。
按照上述步驟,就可以構(gòu)造出非正則低密度奇偶校驗(yàn)碼。
綜上所述,本發(fā)明的關(guān)鍵是非正則校驗(yàn)矩陣的設(shè)計(jì),采用本發(fā)明設(shè)計(jì)的校驗(yàn)矩陣具有循環(huán)移位的特性,在提高譯碼性能的同時(shí)降低了硬件實(shí)現(xiàn)的復(fù)雜度。另外,在按本發(fā)明內(nèi)容得到校驗(yàn)矩陣H后,可以不用求出生成矩陣G,直接構(gòu)造出編碼后的LDPC碼字。
采用本發(fā)明的方法構(gòu)造的LDPC碼在無線通信系統(tǒng)如無線局域網(wǎng)中具有良好的性能,相比傳統(tǒng)的糾錯(cuò)碼有很優(yōu)異的特點(diǎn),具有良好的應(yīng)用前景。由本發(fā)明構(gòu)造的非正則LDPC碼字的編碼復(fù)雜度低,可采用完全并行的操作,適合硬件實(shí)現(xiàn),尤其可以利用線性反饋移位寄存器,具有高速的編譯碼潛力;由于碼長較長時(shí),相距甚遠(yuǎn)的信息比特可能參與同一校驗(yàn),使得連續(xù)的突發(fā)錯(cuò)誤對(duì)譯碼的影響不大,因此碼本身具有很好的抗突發(fā)差錯(cuò)的能力。由于碼的碼率和碼長選擇很靈活,甚至對(duì)于同樣的碼率和碼長,也可以構(gòu)造出不同的校驗(yàn)矩陣,所以,本發(fā)明的非正則LDPC碼有良好的工程應(yīng)用前景。


圖1是本發(fā)明的工作流程框2是本發(fā)明在有限域的階數(shù)為N=233,列權(quán)值W=8,碼率R=0.5下的碼字(3728,1864)和在有限域的階數(shù)為N=401,列權(quán)值W=8,碼率R=0.5下的碼字(6416,3208)的誤碼率性能比較圖。
其中, 表示碼率R=0.5時(shí)的香農(nóng)限0.18dB, 表示碼字(3728,1864)的誤碼率曲線圖, 表示碼字(6416,3208)的誤碼率曲線圖。
圖3是本發(fā)明在有限域的階數(shù)為N=401,列權(quán)值W=8,碼率R=0.5下的碼字(6416,3208)和在有限域的階數(shù)為N=269,列權(quán)值W=8,碼率R=0.75下的碼字(4304,3228)的誤碼率性能比較圖。其中, 表示碼率R=0.5時(shí)的香農(nóng)限0.18dB, 表示表示碼字(6416,3208)的誤碼率曲線圖, 表示碼率R=0.75時(shí)的香農(nóng)限1.63dB, 表示表示碼字(4304,3228)的誤碼率曲線圖。
圖4是本發(fā)明在有限域的階數(shù)為N=89,列權(quán)值W=4,碼率R=0.9375下的碼字(5696,5340)的誤碼率性能圖。其中, 表示碼率R=0.9375時(shí)的香農(nóng)限3.88dB, 表示表示碼字(5696,5340)的誤碼率曲線圖。
圖2、圖3、圖4中的(3728,1864)表示輸入編碼器的信息位的長度為1864,輸出編碼器的碼字的長度為3728;(6416,3208)表示輸入編碼器的信息位的長度為3208,輸出編碼器的碼字的長度為6416;(4304,3228)表示輸入編碼器的信息位的長度為3228,輸出編碼器的碼字的長度為4304。圖2、圖3、圖4中的仿真都是在調(diào)制方式為二進(jìn)制相移鍵控(BPSK),信道為加性白高斯噪聲信道(AWGN),譯碼算法采用和積算法(SPA)的條件下進(jìn)行的。
具體實(shí)施例方式
采用本發(fā)明的方法構(gòu)造一個(gè)具體非正則LDPC碼字c,具體步驟如下步驟1,構(gòu)造子矩陣P。
首先,構(gòu)造初始有限域矢量矩陣選取階為233的有限域,域中元素為從1至233的正整數(shù),我們用帶箭頭的數(shù)字來表示這些元素。選取該域中所有元素,從小到大排成一列,得到一個(gè)233×1的列矩陣K
K=1→2→3→···232→233→]]>用得到的列矩陣K按照下面的公式計(jì)算得到一個(gè)233×233的初始矢量矩陣 Λ→=K×KT=1×1→1×2→···233→2×1→2×2→···466→············233→466→···54289→]]>其中,KT是K的轉(zhuǎn)置。
這里,233是大于5的奇素?cái)?shù),同時(shí)滿足233=4×58+1再對(duì)初始矢量矩陣 中的每個(gè)元素進(jìn)行模233運(yùn)算,得到如下形式的233×233的初始有限域矢量矩陣 V→=1→2→···232→0→2→4→···231→0→···············232→231→···1→0→0→0→0→0→0→]]>然后,對(duì)初始有限域矢量矩陣 進(jìn)行循環(huán)移位、去零陣、倒序處理、截取處理循環(huán)移位處理對(duì)初始有限域矢量矩陣 進(jìn)行循環(huán)移位處理,例如第一行循環(huán)移位得到的子矩陣為V1→1→2→···232→0→0→1→···231→232→···············2→3→···0→1→]]>
于是得到了233個(gè)233×233的循環(huán)子矩陣,它們的列排列構(gòu)成了54289×233的循環(huán)移位后的有限域矢量矩陣 去零陣處理去掉循環(huán)移位后的有限域矢量矩陣 中的 這個(gè)全零矩陣,得到232個(gè)循環(huán)子矩陣按列排列的54056×233的循環(huán)移位并去零陣后的有限域矢量矩陣 V′′→=V1→V2→···V232→]]>倒序處理對(duì)循環(huán)移位并去零陣后的有限域矢量矩陣 中的232個(gè)循環(huán)子矩陣每隔一個(gè)子矩陣按行進(jìn)行倒序,也就是對(duì) 等下標(biāo)為偶數(shù)的循環(huán)子矩陣的1至233行進(jìn)行逆序排列。
由于233為大于5奇素?cái)?shù),所以矢量矩陣 經(jīng)過倒序處理后得到54056×233的循環(huán)移位、去零陣、倒序處理后的有限域矢量矩陣
其中, 等帶有adv的符號(hào)表示行倒序后的矢量矩陣。
截取處理在進(jìn)行截取處理之前,需要確定三個(gè)重要的參數(shù)有限域的階N,列權(quán)值W,碼率R。
其中,有限域的階N已經(jīng)確定,就是233;列權(quán)值W選擇為8;碼率R選擇為0.5。
構(gòu)造一個(gè)行數(shù)為1864、列數(shù)為233的矩陣,命名為矩陣一。
從矢量矩陣 中不重復(fù)地任意取出1864行,作為矩陣一的1864行;需要注意的是,在矢量矩陣 中取出的排在前面的行在矩陣一中仍然排在前面。
再構(gòu)造一個(gè)行數(shù)為1864、列數(shù)為8的矩陣,命名為矩陣二。
從矩陣一中不重復(fù)地任意取出除最后兩列以外的8列,作為矩陣二的8列;需要注意的是,在矩陣一中取出的排在前面的列在矩陣二中仍然排在前面。
矩陣二就是循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 其行數(shù)為1864,列數(shù)為8。
可以發(fā)現(xiàn),循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 由 至 這些元素構(gòu)成。
最后,將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 轉(zhuǎn)換為二進(jìn)制有限域上的稀疏矩陣
二進(jìn)制有限域上的稀疏矩陣就是指矩陣中的所有元素為‘0’或者‘1’,且‘1’的個(gè)數(shù)遠(yuǎn)遠(yuǎn)小于‘0’的個(gè)數(shù)。
將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為233的向量{10…00}來替換,該向量的第一個(gè)元素為1,其余232個(gè)元素全為0;將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為233的向量{01…00}來替換,該向量的第二個(gè)元素為1,其余232個(gè)元素全為0;依次進(jìn)行,將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為233的向量{00…10}來替換,該向量的第232個(gè)元素為1,其余232個(gè)元素全為0;將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為233的向量{00…01}來替換,該向量的第233個(gè)元素為1,其余232個(gè)元素全為0。經(jīng)過這些操作,原來的循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素被替換成了向量,因此,新的循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 的元素為‘0’或者‘1’,這個(gè)新的循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 即是構(gòu)造的校驗(yàn)矩陣H的子矩陣P。
步驟2,構(gòu)造子矩陣D。
選擇一個(gè)行數(shù)和列數(shù)都等于1864的方陣,令該方陣的主對(duì)角線和與主對(duì)角線相鄰的下對(duì)角線上的元素全為‘1’,其余元素全為‘0’,就可以得到校驗(yàn)矩陣H的子矩陣D 步驟3,構(gòu)造校驗(yàn)矩陣H。
將構(gòu)造好的校驗(yàn)矩陣H的兩個(gè)子矩陣P和D按下式組合H=[P D]就可以得到校驗(yàn)矩陣H。
步驟4,按照以下方法構(gòu)造編碼后的非正則LDPC碼字。
首先,構(gòu)造出子矩陣D的逆矩陣L選擇一個(gè)行數(shù)和列數(shù)都等于1864的方陣,令該方陣的對(duì)角線以下的元素全為‘1’,其余元素全為‘0’,于是得到了子矩陣D的逆矩陣L 然后,生成非正則LDPC碼的校驗(yàn)元部分輸入編碼器的信息μ行數(shù)為1864,列數(shù)為1,則LDPC碼的校驗(yàn)元部分η的計(jì)算公式為η=L×(P×μ)得到的非正則LDPC碼的校驗(yàn)元部分η的行數(shù)為1864,列數(shù)為1。
最后,生成編碼后的非正則LDPC碼將輸入的信息元部分μ和由上面計(jì)算得到的校驗(yàn)元部分η按下式組合c=μη]]>就得到了輸出的非正則LDPC碼字c,c的行數(shù)為3728,列數(shù)為1。
按照上述步驟,就可以構(gòu)造出非正則低密度奇偶校驗(yàn)碼(3728,1864)。
從圖1可以看到,碼字(3728,1864)在誤碼率為10-6處的單位比特信噪比距離香農(nóng)限(Shannonlimit)0.18dB僅有2.7dB;而碼字(6416,3208)在誤碼率為10-6處的單位比特信噪比距離香農(nóng)限(Shannonlimit)0.18dB僅有2.5dB。
從圖2可以看到,碼字(4304,3228)在誤碼率為10-6處的單位比特信噪比距離香農(nóng)限(Shannonlimit)1.63dB僅有1.7dB。
從圖3可以看到,碼字(5696,5340)在誤碼率為10-6處的單位比特信噪比距離香農(nóng)限(Shannonlimit)3.88dB僅有1.3dB。
綜上所述,計(jì)算機(jī)仿真結(jié)果表明,采用本發(fā)明方法構(gòu)造的非正則LDPC碼在加性白高斯噪聲信道中具有良好的抗干擾的能力;隨著碼長的增長,它們的誤碼率曲線逼進(jìn)于香農(nóng)限。
權(quán)利要求
1.一種非正則校驗(yàn)矩陣的構(gòu)造方法,其特征是它包括下面的步驟步驟1,構(gòu)造子矩陣P首先,構(gòu)造初始有限域矢量矩陣選取階為N的有限域,域中元素為從1至N的正整數(shù),我們用帶箭頭的數(shù)字來表示這些元素;選取該域中所有元素,從小到大排成一列,得到一個(gè)N×1的列矩陣KK=1→2→3→···N-1→N→]]>用得到的列矩陣K按照下面的公式計(jì)算得到一個(gè)N×N的初始矢量矩陣 Λ→=K×KT=1×1→1×2→···1×N→2×1→2×2→···2×N→············N×1→N×2→···N×N→]]>其中,KT是K的轉(zhuǎn)置;這里,N選取大于5的奇素?cái)?shù),同時(shí)滿足N=4×q+1其中,q>1且為正整數(shù);再對(duì)初始矢量矩陣 中的每個(gè)元素進(jìn)行模N運(yùn)算,得到如下形式的N×N的初始有限域矢量矩陣 V→=(1×1)modN→(1×2)modN→···(1×(N-1))modN→0→(2×1)modN→(2×2)modN→···(2×(N-1))modN→0→···············((N-1)×1)modN→((N-1)×2)modN→···((N-1)×(N-1))modN→0→0→0→0→0→0→]]>其中,mod是取模運(yùn)算符;然后,對(duì)初始有限域矢量矩陣 進(jìn)行循環(huán)移位、去零陣、倒序處理、截取處理;循環(huán)移位處理選取N個(gè)N×N的子矩陣,按照從1到N列排列,分別定義為第一個(gè)子矩陣、第二個(gè)子矩陣、……、第N個(gè)子矩陣,將初始有限域矢量矩陣 的第一行放到第一個(gè)子矩陣的第一行,將初始有限域矢量矩陣 的第二行放到第二個(gè)子矩陣的第一行,依次類推,將初始有限域矢量矩陣 的第N行放到第N個(gè)子矩陣的第一行;這樣就構(gòu)造出N個(gè)子矩陣的第一行;對(duì)于第一個(gè)子矩陣,將它的第一行的最后一個(gè)元素放到第二行的第一個(gè)位置,將第一行的第一個(gè)元素放到第二行的第二個(gè)位置,將第一行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第一行的第N-1個(gè)元素放到第二行的第N個(gè)位置;再將它的第二行的最后一個(gè)元素放到第三行的第一個(gè)位置,將第二行的第一個(gè)元素放到第三行的第二個(gè)位置,將第二行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第二行的第N-1個(gè)元素放到第二行的第N個(gè)位置;同樣,將它的第N-1行的最后一個(gè)元素放到第N行的第一個(gè)位置,將第N-1行的第一個(gè)元素放到第N行的第二個(gè)位置,將第N-1行的第二個(gè)元素放到第N行的第三個(gè)位置,依次類推,將第N-1行的第N-1個(gè)元素放到第N行的第N個(gè)位置;這樣就構(gòu)造出了第一個(gè)子矩陣;對(duì)于第二個(gè)子矩陣,將它的第一行的最后一個(gè)元素放到第二行的第一個(gè)位置,將第一行的第一個(gè)元素放到第二行的第二個(gè)位置,將第一行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第一行的第N-1個(gè)元素放到第二行的第N個(gè)位置;再將它的第二行的最后一個(gè)元素放到第三行的第一個(gè)位置,將第二行的第一個(gè)元素放到第三行的第二個(gè)位置,將第二行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第二行的第N-1個(gè)元素放到第二行的第N個(gè)位置;同樣,將它的第N-1行的最后一個(gè)元素放到第N行的第一個(gè)位置,將第N-1行的第一個(gè)元素放到第N行的第二個(gè)位置,將第N-1行的第二個(gè)元素放到第N行的第三個(gè)位置,依次類推,將第N-1行的第N-1個(gè)元素放到第N行的第N個(gè)位置;這樣就構(gòu)造出了第二個(gè)子矩陣;依次類推,對(duì)于第N個(gè)子矩陣,將它的第一行的最后一個(gè)元素放到第二行的第一個(gè)位置,將第一行的第一個(gè)元素放到第二行的第二個(gè)位置,將第一行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第一行的第N-1個(gè)元素放到第二行的第N個(gè)位置;再將它的第二行的最后一個(gè)元素放到第三行的第一個(gè)位置,將第二行的第一個(gè)元素放到第三行的第二個(gè)位置,將第二行的第二個(gè)元素放到第二行的第三個(gè)位置,依次類推,將第二行的第N-1個(gè)元素放到第二行的第N個(gè)位置;同樣,將它的第N-1行的最后一個(gè)元素放到第N行的第一個(gè)位置,將第N-1行的第一個(gè)元素放到第N行的第二個(gè)位置,將第N-1行的第二個(gè)元素放到第N行的第三個(gè)位置,依次類推,將第N-1行的第N-1個(gè)元素放到第N行的第N個(gè)位置;這樣就構(gòu)造出了第N個(gè)子矩陣;這樣就構(gòu)造出了N個(gè)N×N的循環(huán)子矩陣;經(jīng)過以上的操作得到了N個(gè)N×N的循環(huán)子矩陣,它們的列排列構(gòu)成了N2×N的循環(huán)移位后的有限域矢量矩陣 V′→=V1→V2→···VN→]]>去零陣處理去掉循環(huán)移位后的有限域矢量矩陣 中的 這個(gè)全零矩陣,得到N-1個(gè)循環(huán)子矩陣按列排列的(N2-N)×N的循環(huán)移位并去零陣后的有限域矢量矩陣 V′′→=V1→V2→···VN-1→]]>倒序處理對(duì)循環(huán)移位并去零陣后的有限域矢量矩陣 中的N-1個(gè)循環(huán)子矩陣每隔一個(gè)子矩陣按行進(jìn)行倒序,也就是對(duì) 等下標(biāo)為偶數(shù)的循環(huán)子矩陣的1至N行進(jìn)行逆序排列,所述的逆序排列是指將原來循環(huán)子矩陣中的第一行放到倒序矩陣的最后一行,將原來的循環(huán)子矩陣中的最后一行放到倒序矩陣的第一行;將循環(huán)子矩陣的第二行放到倒序矩陣的倒數(shù)第二行,將原來循環(huán)子矩陣中的倒數(shù)第二行放到倒序矩陣的第二行;依次進(jìn)行,將循環(huán)子矩陣中第(N-1)/2行放到倒序矩陣的倒數(shù)第(N-1)/2行,將原來循環(huán)子矩陣中的倒數(shù)第(N-1)/2行放到倒序矩陣的第(N-1)/2行;這樣就得到了倒序矩陣;由于N為大于5奇素?cái)?shù),所以矢量矩陣 經(jīng)過倒序處理后得到(N2-N)×N的循環(huán)移位、去零陣、倒序處理后的有限域矢量矩陣 V′′′→=V1→V2adv→V3→V4adv→···VN-2→VN-1adv→]]>其中, 等帶有adv的符號(hào)表示行倒序后的矢量矩陣;截取處理下面在對(duì)循環(huán)移位、去零陣、倒序處理后的有限域矢量矩陣 進(jìn)行截取處理之前,需要確定三個(gè)重要的參數(shù)有限域的階N,列權(quán)值W,碼率R;其中,有限域的階N已經(jīng)確定,列權(quán)值W是指子矩陣P的每列中‘1’的個(gè)數(shù),列權(quán)值W應(yīng)選取小于N-2的正整數(shù),列權(quán)值W的選擇方法是如果階N=4×q+1,則列權(quán)值W選擇為4;如果階N=8×q+1,則列權(quán)值W選擇為4或8,其中,q>1且為正整數(shù);碼率R根據(jù)用戶對(duì)通信系統(tǒng)的要求而定,碼率R的選擇要求保證R/(1-R)為大于或等于1的正整數(shù),碼率R的選擇值有0.5、0.75、0.8、0.875、0.9;構(gòu)造一個(gè)行數(shù)為N×W、列數(shù)為N的矩陣,命名為矩陣一;從矢量矩陣 中不重復(fù)地任意取出N×W行,作為矩陣一的N×W行,在矢量矩陣 中取出的排在前面的行在矩陣一中仍然排在前面;再構(gòu)造一個(gè)行數(shù)為N×W、列數(shù)為W×R/(1-R)的矩陣,命名為矩陣二;從矩陣一中不重復(fù)地任意取出除最后兩列以外的W×R/(1-R)列,作為矩陣二的W×R/(1-R)列,在矩陣一中取出的排在前面的列在矩陣二中仍然排在前面;矩陣二就是循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 ,其行數(shù)為N×W,列數(shù)為W×R/(1-R);循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 由 至 這些元素構(gòu)成;最后,將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 轉(zhuǎn)換為二進(jìn)制有限域上的稀疏矩陣二進(jìn)制有限域上的稀疏矩陣就是指矩陣中的所有元素為‘0’或者‘1’,且‘1’的個(gè)數(shù)遠(yuǎn)遠(yuǎn)小于‘0’的個(gè)數(shù);將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為N的向量{1 0…0 0}來替換,該向量的第一個(gè)元素為1,其余N-1個(gè)元素全為0;將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為N的向量{0 1…0 0}來替換,該向量的第二個(gè)元素為1,其余N-1個(gè)元素全為0;依次進(jìn)行,將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為N的向量{0 0…1 0}來替換,該向量的第N-1個(gè)元素為1,其余N-1個(gè)元素全為0;將循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素 用維數(shù)為N的向量{0 0…0 1}來替換,該向量的第N個(gè)元素為1,其余N-1個(gè)元素全為0;經(jīng)過這些操作,原來的循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 中的元素被替換成了向量,因此,新的循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 的元素為‘0’或者‘1’,這個(gè)新的循環(huán)移位、去零陣、倒序處理、截取后的有限域矢量矩陣 即是構(gòu)造的校驗(yàn)矩陣H的子矩陣P;步驟2,構(gòu)造子矩陣D構(gòu)造一個(gè)行數(shù)和列數(shù)都等于N×W的方陣,令該方陣的主對(duì)角線和與主對(duì)角線相鄰的下對(duì)角線上的元素全為‘1’,其余元素全為‘0’,就可以得到校驗(yàn)矩陣H的子矩陣D 步驟3,構(gòu)造校驗(yàn)矩陣H將構(gòu)造好的校驗(yàn)矩陣H的兩個(gè)子矩陣P和D按下式組合H=[P D]就可以得到校驗(yàn)矩陣H;步驟4,按照以下方法構(gòu)造編碼后的非正則LDPC碼字首先,構(gòu)造出子矩陣D的逆矩陣L構(gòu)造一個(gè)行數(shù)和列數(shù)都等于N×W的方陣,令該方陣的對(duì)角線以下的元素全為‘1’,其余元素全為‘0’,于是得到了子矩陣D的逆矩陣L 然后,生成非正則LDPC碼的校驗(yàn)元部分輸入已知的編碼器的信息μ,它的元素為‘0’或者‘1’,它的行數(shù)為N×W×R/(1-R),列數(shù)為1;則LDPC碼的校驗(yàn)元部分η的計(jì)算公式為η=L×(P×μ)得到的非正則LDPC碼的校驗(yàn)元部分η的行數(shù)為N×W,列數(shù)為1;最后,生成編碼后的非正則LDPC碼將輸入的編碼器的信息μ和由上面計(jì)算得到的校驗(yàn)元部分η按下式組合c=μη]]>就得到了輸出的非正則LDPC碼字c,c的行數(shù)為N×W/(1-R),列數(shù)為1。
全文摘要
本發(fā)明提供了一種非正則低密度奇偶校驗(yàn)碼的構(gòu)造方法,它首先構(gòu)造有限域上的矢量矩陣,然后通過循環(huán)移位、倒序處理、截取得到新的矢量矩陣,最后將這個(gè)新的矢量矩陣的元素用向量替換得到一個(gè)稀疏矩陣,將這個(gè)稀疏矩陣與雙對(duì)角線元素全為“1”的矩陣并排就得到了低密度奇偶校驗(yàn)矩陣。由于采用了循環(huán)移位,大大降低了軟硬件實(shí)現(xiàn)的復(fù)雜度,整個(gè)方法在保證構(gòu)造簡單的同時(shí),可采用完全并行的操作,適合硬件實(shí)現(xiàn),尤其可以利用線性反饋移位寄存器,具有高速的編譯碼潛力,因此,本發(fā)明的非正則LDPC碼有良好的工程應(yīng)用前景。
文檔編號(hào)H03M13/00GK1941635SQ20051002177
公開日2007年4月4日 申請(qǐng)日期2005年9月30日 優(yōu)先權(quán)日2005年9月30日
發(fā)明者謝丹, 文宇, 王軍, 李少謙 申請(qǐng)人:電子科技大學(xué), 華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
普兰店市| 祁门县| 禄丰县| 阿尔山市| 榆社县| 舒兰市| 德江县| 平舆县| 庄河市| 澎湖县| 北宁市| 高邮市| 陇西县| 万州区| 梨树县| 江达县| 江门市| 屯留县| 当阳市| 乐都县| 施甸县| 米易县| 陕西省| 洪湖市| 竹溪县| 临海市| 新绛县| 崇州市| 哈密市| 桦川县| 吉林市| 灵川县| 保德县| 永平县| 南城县| 马边| 阳曲县| 贡山| 邳州市| 平定县| 金秀|