張亞林,樹玉泉,張金濤,魏海濤,張萬(wàn)玉
(1.衛(wèi)星導(dǎo)航系統(tǒng)與裝備技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室, 河北 石家莊 050081;2.河北省衛(wèi)星導(dǎo)航技術(shù)與裝備工程技術(shù)研究中心,河北 石家莊 050081;3.中國(guó)電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081;4.陸軍北京軍代局駐石家莊地區(qū)軍代室,河北 石家莊050081)
一種多進(jìn)制LDPC編譯碼器硬件的實(shí)現(xiàn)方法
張亞林1,2,3,樹玉泉1,2,3,張金濤1,2,3,魏海濤1,2,3,張萬(wàn)玉4
(1.衛(wèi)星導(dǎo)航系統(tǒng)與裝備技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室, 河北 石家莊 050081;2.河北省衛(wèi)星導(dǎo)航技術(shù)與裝備工程技術(shù)研究中心,河北 石家莊 050081;3.中國(guó)電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081;4.陸軍北京軍代局駐石家莊地區(qū)軍代室,河北 石家莊050081)
多進(jìn)制LDPC碼比二進(jìn)制LDPC碼性能更加優(yōu)異,但編譯碼算法較為復(fù)雜,近幾年針對(duì)復(fù)雜的校驗(yàn)節(jié)點(diǎn)的更新計(jì)算多位學(xué)者提出了多種改進(jìn)算法。提出基于查表法實(shí)現(xiàn)直接編碼算法,以TMM譯碼算法為基礎(chǔ),對(duì)其譯碼性能進(jìn)行Matlab仿真驗(yàn)證,基于硬件實(shí)現(xiàn)提出多個(gè)關(guān)鍵模塊的優(yōu)化設(shè)計(jì)方案,最終實(shí)現(xiàn)的編譯碼器資源消耗小、吞吐量大。應(yīng)用結(jié)果表明,該方法實(shí)現(xiàn)的編譯碼器性能與仿真結(jié)果一致,設(shè)計(jì)方案正確、可行。
多進(jìn)制低密度奇偶校驗(yàn);查表法;TMM譯碼算法;現(xiàn)場(chǎng)可編程門陣列
LDPC(低密度奇偶校驗(yàn))碼是由Gallager在1962年首次提出來(lái)[1],但由于當(dāng)時(shí)硬件條件限制,一直被忽略,直到1996年MacKay和Neal對(duì)它進(jìn)行重新研究,發(fā)現(xiàn)其具有逼近香濃限的優(yōu)異性能[2],才重新被人們認(rèn)識(shí)。隨后,Davey和MacKay又將二進(jìn)制LDPC碼擴(kuò)展到多進(jìn)制LDPC碼[3]。研究表明LDPC碼在碼長(zhǎng)較長(zhǎng)時(shí),譯碼性能優(yōu)于Turbo碼[4-5];多進(jìn)制LDPC碼在糾錯(cuò)能力[6-7]、對(duì)高速傳輸系統(tǒng)的適應(yīng)性[8-10]方面優(yōu)于二進(jìn)制LDPC碼。
目前針對(duì)多進(jìn)制LDPC編碼的算法主要有直接編碼算法、近似下三角編碼算法和準(zhǔn)循環(huán)RA結(jié)構(gòu)編碼算法。直接編碼算法原理簡(jiǎn)單,計(jì)算復(fù)雜度較高,但對(duì)校驗(yàn)矩陣無(wú)要求;近似下三角編碼算法,也叫做RU編碼算法,該算法要求校驗(yàn)矩陣具有下三角或可化簡(jiǎn)為下三角構(gòu)造,算法復(fù)雜度有所減小,但該種結(jié)構(gòu)的碼在性能上會(huì)有損失[11];準(zhǔn)循環(huán)RA結(jié)構(gòu)編碼算法利用校驗(yàn)矩陣的準(zhǔn)循環(huán)結(jié)構(gòu),進(jìn)行迭代計(jì)算,該算法計(jì)算復(fù)雜度進(jìn)一步降低,但要求校驗(yàn)矩陣具有準(zhǔn)循環(huán)結(jié)構(gòu)[12]。
多進(jìn)制LDPC譯碼算法復(fù)雜度高,大量計(jì)算集中在校驗(yàn)節(jié)點(diǎn)的更新,因此目前針對(duì)多進(jìn)制LDPC譯碼算法的改進(jìn)主要在校驗(yàn)節(jié)點(diǎn)更新算法的簡(jiǎn)化上。最初Davey和MacKay提出概率域和積譯碼算法(QSPA),該算法運(yùn)算量太大,硬件無(wú)法實(shí)現(xiàn);Henk Wymccrsch等人提出對(duì)數(shù)域和積譯碼算法(log-SPA)[13],該算法計(jì)算量大幅降低,但硬件仍難以實(shí)現(xiàn);Barnault和Declercq提出了快速傅里葉變換和積算法(FFT-SPA)[14],該算法利用FFT及IFFT計(jì)算校驗(yàn)節(jié)點(diǎn)更新中的卷積運(yùn)算,計(jì)算量進(jìn)一步簡(jiǎn)化;2007年擴(kuò)展最小和算法(Extended Min-Sum)被提出[15],它對(duì)和積譯碼算法(log-SPA)做了近似,使得校驗(yàn)節(jié)點(diǎn)的更新只有比較和加法的運(yùn)算,計(jì)算量進(jìn)一步降低;最大最小算法(Min-Max)[16]在擴(kuò)展最小和算法的基礎(chǔ)上做了進(jìn)一步改進(jìn),將加法運(yùn)算用比較計(jì)算最大置信度代替,避免了加法運(yùn)算帶來(lái)的數(shù)據(jù)位擴(kuò)展問題,運(yùn)算量進(jìn)一步降低;T-EMS(Trellis EMS)算法[17]在擴(kuò)展最小和(EMS)的基礎(chǔ)上額外引入一列最高置信度信息,從而避免了EMS算法和Min-Max算法中前向后向迭代計(jì)算,增加了并行度,增大了吞吐速率;TMM(Trellis Min-Max)算法[18-19]進(jìn)一步簡(jiǎn)化了T-EMS算法,該算法在計(jì)算校驗(yàn)節(jié)點(diǎn)時(shí)只用到了2個(gè)最大置信度信息,并且在配置集計(jì)算上使用比較最大值代替了加法運(yùn)算,同時(shí)并不會(huì)帶來(lái)譯碼性能的損失。
本文所述多進(jìn)制LDPC碼應(yīng)用背景校驗(yàn)矩陣為64進(jìn)制、維度為44×88的普通稀疏矩陣,并不具有下三角或準(zhǔn)循環(huán)結(jié)構(gòu),因此編碼算法采用直接編碼算法,提出一種利用查表法計(jì)算伽羅華域乘法運(yùn)算的方法,有效降低了直接編碼算法的計(jì)算復(fù)雜度,提高了編碼效率。譯碼算法在TMM的基礎(chǔ)上,對(duì)其進(jìn)行了Matlab仿真驗(yàn)證,并對(duì)硬件實(shí)現(xiàn)方法進(jìn)行了進(jìn)一步優(yōu)化,提出了多個(gè)關(guān)鍵模塊的優(yōu)化設(shè)計(jì)方案,如整體架構(gòu)設(shè)計(jì)、交換網(wǎng)絡(luò)設(shè)計(jì)、存儲(chǔ)單元設(shè)計(jì)、比較最小次小值單元設(shè)計(jì)等。最后以64進(jìn)制44×88的校驗(yàn)矩陣為例進(jìn)行編譯碼的FPGA實(shí)現(xiàn)。本文提出的設(shè)計(jì)方案有效解決了多進(jìn)制LDPC譯碼工程實(shí)現(xiàn)中資源消耗過(guò)大的問題,并在工程實(shí)踐中得到驗(yàn)證。
假設(shè)校驗(yàn)矩陣為:
待編碼信息向量為:
x1=x11x12…x1M,
式中,x1i∈GFq,i=1,2…M。
編碼后的信息向量為c=x1x2,其中,
x2=x21x22…x2 N-M,x2i∈GFq,
i=1,2…N-M。
(1)
直接編碼算法即根據(jù)式(1),由待編碼信息和校驗(yàn)矩陣直接計(jì)算得出冗余位。流程圖如圖1所示。
圖1 直接編碼算法流程
具體步驟如下:① 接收并存儲(chǔ)待編碼的信息;② 將待編碼信息與變換后的校驗(yàn)矩陣在伽羅華域相乘;③ 乘法運(yùn)算的結(jié)果在伽羅華域相加;④ 與待編碼信息組合輸出編碼后的信息比特。
多進(jìn)制LDPC譯碼算法主體步驟類似于二進(jìn)制LDPC譯碼算法,主要包括初始化、迭代更新和輸出判決。主要區(qū)別在于多進(jìn)制LDPC譯碼過(guò)程中所涉及到的除概率外的計(jì)算均在伽羅華域GFq中進(jìn)行,另外,在迭代更新過(guò)程中由于多進(jìn)制LDPC每個(gè)節(jié)點(diǎn)有q個(gè)取值的可能,計(jì)算復(fù)雜度明顯增加。
對(duì)于校驗(yàn)矩陣HM×N為q=2p進(jìn)制的LDPC譯碼具體包括以下步驟。
1.2.1 初始化
初始化的目的是根據(jù)接收到的信息完成每個(gè)信息對(duì)應(yīng)q個(gè)取值的概率。對(duì)數(shù)操作可將乘除法運(yùn)算變?yōu)榧訙p法運(yùn)算,顯著降低計(jì)算量。歸一化的目的是使所有的概率取值為非負(fù),為方便后續(xù)計(jì)算,此時(shí)概率越小表示置信度越高。具體計(jì)算公式如下:
1.2.2 迭代更新
迭代更新包括變量節(jié)點(diǎn)更新和校驗(yàn)節(jié)點(diǎn)更新,根據(jù)初始化信息,通過(guò)一定次數(shù)的反復(fù)迭代計(jì)算,最終使變量節(jié)點(diǎn)真值位置概率最小,具體計(jì)算公式如下:
按照m=1,2…M的順序進(jìn)行更新,在完成M行計(jì)算后表示一次迭代更新結(jié)束,重新開始下一次迭代更新,在完成設(shè)置次數(shù)的迭代更新后,迭代更新步驟完成。
1.2.3 輸出判決
根據(jù)迭代更新步驟計(jì)算的變量節(jié)點(diǎn)信息,比較計(jì)算最小值所在位置即為譯碼結(jié)果,具體計(jì)算公式如下:
TMM譯碼算法在計(jì)算校驗(yàn)節(jié)點(diǎn)更新時(shí)通過(guò)額外引入一列中間變量,使得校驗(yàn)節(jié)點(diǎn)的更新值在每行最小值、次小值和額外引入的值之間選取,整個(gè)計(jì)算過(guò)程只涉及比較和賦值運(yùn)算,不涉及數(shù)據(jù)位的擴(kuò)展,大大簡(jiǎn)化了計(jì)算量,易于硬件實(shí)現(xiàn)。TMM的具體計(jì)算步驟如下,假設(shè)輸入為Qmn(a)∈N(m),為便于表示,這里省略了迭代次數(shù)t:
zn=argmina∈GF(q)Qmn(a)?n∈N(m)
ΔQmnjηj=a+zηj=Qmnj(a),j=1,…dc
ΔRmnj(a)=ΔQ(a)
ΔRmnj(a)=m2(a)
else
ΔRmnj(a)=m1(a)
end
Rmnja+β+zηj=λ·ΔRmnj(a),a∈GFq
編譯碼算法中涉及到的關(guān)于位置的運(yùn)算均在伽羅華域GF(q)中進(jìn)行,伽羅華域元素可以由本原表示和矢量表示,表1為GF(8)域元素表示法對(duì)照表。
伽羅華域中的運(yùn)算與普通域中運(yùn)算有所不同,加法運(yùn)算為矢量表示按位異或;乘法運(yùn)算中本原表示為0的元素與任何元素相乘仍為0,本原表示非0的元素乘法運(yùn)算為本原元素的冪次模(2p-1)加。
表1 GF(8)域元素表示法對(duì)照表
采用Matlab對(duì)多進(jìn)制LDPC直接編碼算法及TMM譯碼算法進(jìn)行仿真驗(yàn)證。以GF 64 域校驗(yàn)矩陣為H44×88的多進(jìn)制LDPC譯碼為例,該校驗(yàn)矩陣行重dc=4,列重dv=2,碼長(zhǎng)為528 bit。
仿真結(jié)果如圖2所示,為便于比較引入同樣為528 bit碼長(zhǎng)的二進(jìn)制LDPC[20],譯碼采用BP(和積譯碼)算法[21-23]。
圖2 GF(2)與GF(64)LDPC譯碼性能比較
由仿真結(jié)果可以看出,多進(jìn)制LDPC TMM譯碼算法原理正確,比同樣碼長(zhǎng)的二進(jìn)制LDPC性能要好,GF 64 LDPC譯碼性能優(yōu)于GF 2 LDPC約0.3 dB。
直接編碼算法具體硬件實(shí)現(xiàn)整體框圖如圖3所示,包括存儲(chǔ)模塊、校驗(yàn)矩陣模塊、伽羅華域乘法器、伽羅華域加法器、組合模塊和控制模塊。
圖3 硬件實(shí)現(xiàn)整體框圖
存儲(chǔ)模塊用于接收待編碼信息,并在控制模塊的作用下以p比特為單位存儲(chǔ)待編碼信息,將待編碼信息分別發(fā)送至伽羅華域乘法器和組合模塊。
校驗(yàn)矩陣模塊用于存儲(chǔ)對(duì)校驗(yàn)矩陣進(jìn)行變換后得到的矩陣:
將變換后的校驗(yàn)矩陣每一行的值存入一個(gè)存儲(chǔ)單元,并在控制模塊的作用下將各個(gè)存儲(chǔ)單元中的值發(fā)送至伽羅華域乘法器,所述的校驗(yàn)矩陣模塊包括M個(gè)存儲(chǔ)單元。
伽羅華域乘法器用于每次提取各個(gè)存儲(chǔ)單元中相同列數(shù)的一個(gè)值,將提取值與待編碼信息在伽羅華域相乘,得到乘法運(yùn)算的結(jié)果輸出至伽羅華域加法器。
伽羅華域加法器用于將乘法運(yùn)算的結(jié)果在伽羅華域采用按位異或的方法相加,將相加的結(jié)果輸出至組合模塊。
組合模塊用于在控制模塊的作用下將相加的結(jié)果與待編碼信息組合,輸出編碼后的信息。
控制模塊用于控制存儲(chǔ)模塊中輸入數(shù)據(jù)的存儲(chǔ)、校驗(yàn)矩陣模塊輸入伽羅華域乘法器的數(shù)據(jù)以及編碼信息的輸出。
伽羅華域乘法器采用查表法實(shí)現(xiàn),實(shí)現(xiàn)框圖如圖4所示,包括第一查找表、第二查找表、模2p-1加模塊。xm或hmn為0時(shí),乘法運(yùn)算結(jié)果直接置零;xm和hmn不為0時(shí),將xm和hmn分別減1后作為地址輸入第一查找表,第一查找表查找xm和hmn分別減一后的地址所對(duì)應(yīng)的冪次,將查找得到的2個(gè)冪次分別輸出至模2p-1加模塊,模2p-1加模塊將2個(gè)冪次模2p-1加,將相加的結(jié)果作為地址輸出至第二查找表,第二查找表查找相加結(jié)果的地址所對(duì)應(yīng)的矢量表示,矢量表示結(jié)果即為伽羅華域兩數(shù)相乘的結(jié)果,將兩數(shù)相乘的結(jié)果輸出。其中,2p表示伽羅華域?qū)?yīng)的進(jìn)制,xm表示第m個(gè)待編碼信息,hmn表示校驗(yàn)矩陣模塊中第m個(gè)存儲(chǔ)單元中第n個(gè)元素。
圖4 查表法計(jì)算伽羅華域乘法實(shí)現(xiàn)
TMM譯碼算法整體實(shí)現(xiàn)框圖如圖5所示,主要包括初始化模塊、迭代更新模塊、存儲(chǔ)模塊、輸出判決模塊和迭代控制模塊。
圖5 TMM算法整體實(shí)現(xiàn)
初始化模塊用于在迭代控制模塊的作用下接收待譯碼信息,計(jì)算所有輸入的待譯碼信息的后驗(yàn)概率,從所有后驗(yàn)概率中找到最大的后驗(yàn)概率,并根據(jù)最大后驗(yàn)概率初始化待譯碼信息,將初始化后的待譯碼信息輸出至存儲(chǔ)模塊,并將本模塊運(yùn)行狀態(tài)報(bào)告給迭代控制模塊。
迭代更新模塊用于在迭代控制模塊的作用下從存儲(chǔ)模塊中讀取初始化后的待譯碼信息、前一次校驗(yàn)節(jié)點(diǎn)的迭代更新值和變量節(jié)點(diǎn)的迭代更新值,計(jì)算本次校驗(yàn)節(jié)點(diǎn)及變量節(jié)點(diǎn)的迭代更新值,將更新值存入存儲(chǔ)模塊,并將本模塊運(yùn)行狀態(tài)報(bào)告給迭代控制模塊。
輸出判決模塊用于在迭代控制模塊的作用下從存儲(chǔ)模塊中讀取最后一次變量節(jié)點(diǎn)的迭代更新值,根據(jù)最后一次變量節(jié)點(diǎn)的迭代更新值進(jìn)行譯碼輸出計(jì)算,輸出譯碼后的信息,并將本模塊運(yùn)行狀態(tài)報(bào)告迭代控制模塊。
存儲(chǔ)模塊用于存儲(chǔ)初始化信息、2組變量節(jié)點(diǎn)信息、校驗(yàn)節(jié)點(diǎn)信息、校驗(yàn)矩陣信息,接收初始化模塊送入的初始化信息,與迭代更新模塊進(jìn)行初始化、變量節(jié)點(diǎn)、校驗(yàn)節(jié)點(diǎn)、校驗(yàn)矩陣的信息交互,并將最后一次更新的變量節(jié)點(diǎn)信息送入輸出判決模塊。
迭代控制模塊用于接收初始化模塊、迭代更新模塊和輸出判決模塊的運(yùn)行狀態(tài),并控制初始化模塊、迭代更新模塊和輸出判決模塊的工作狀態(tài)。
迭代更新模塊是整個(gè)譯碼算法中最關(guān)鍵的一部分,算法的核心部分都集中在該模塊,具體實(shí)現(xiàn)框圖如圖6所示。
圖6 迭代更新模塊實(shí)現(xiàn)
該模塊中與概率有關(guān)的運(yùn)算均在普通域中進(jìn)行,與位置有關(guān)的運(yùn)算均在伽羅華域中進(jìn)行。
最小值次小值及最小值對(duì)應(yīng)列查找模塊(2 min finder)設(shè)計(jì)2個(gè)基本的比較單元,一個(gè)比較單元輸入為2個(gè)被比較值及其所對(duì)應(yīng)列,輸出為最小值、次小值及最小值對(duì)應(yīng)的列;另一個(gè)比較單元輸入為2組最小值、次小值及最小值對(duì)應(yīng)的列,輸出為最小值、次小值及最小值對(duì)應(yīng)的列。通過(guò)這2種比較器的組合可實(shí)現(xiàn)任意多個(gè)輸入的最小值次小值及最小值對(duì)應(yīng)列信息查找。具體實(shí)現(xiàn)框圖如圖7所示。
圖7 最小值次小值及最小值對(duì)應(yīng)列查找實(shí)現(xiàn)
圖8 額外列提取計(jì)算實(shí)現(xiàn)
整個(gè)提取過(guò)程通過(guò)二級(jí)比較運(yùn)算和一級(jí)選擇運(yùn)算實(shí)現(xiàn)。第一級(jí)比較運(yùn)算通過(guò)3個(gè)兩輸入一輸出的最大值比較器實(shí)現(xiàn),隨后輸出至二選一選擇器的一個(gè)輸入口,選擇器另一個(gè)輸入口輸入固定最大值,以確保在列信息相等時(shí)不會(huì)被下一級(jí)最小值查找單元選中。選擇器通過(guò)對(duì)應(yīng)的列信息進(jìn)行選擇,若對(duì)應(yīng)的列信息相等則輸出最大值,否則輸出2個(gè)參與比較的較大的一個(gè),選擇器的輸出送入最小值查找單元。在計(jì)算ΔQ(t)α0時(shí),m1α0不經(jīng)過(guò)第一級(jí)比較運(yùn)算直接輸入到最小值查找單元,最小值查找單元找出最小值及其對(duì)應(yīng)的列信息。
由于多進(jìn)制LDPC譯碼算法較為復(fù)雜,即使采用計(jì)算復(fù)雜度最小的TMM算法仍要在資源占用和計(jì)算延遲方面權(quán)衡考慮,本文在硬件實(shí)現(xiàn)時(shí)大部分計(jì)算以一個(gè)節(jié)點(diǎn)為最小單位進(jìn)行串行運(yùn)算,這樣可以最大化地減小資源消耗。在進(jìn)行m1(a)、m1col(a)、m2(a)以及ΔQ(a)計(jì)算時(shí),必須采用并行方法,以一行對(duì)應(yīng)的非零節(jié)點(diǎn)為單位進(jìn)行計(jì)算。在縮放系數(shù)λ的選擇上,通過(guò)仿真計(jì)算得出λ=0.8時(shí),迭代收斂速度最快,考慮到硬件實(shí)現(xiàn)的方便本文選擇λ=0.75。
本文以GF 64 域校驗(yàn)矩陣為H44×88的多進(jìn)制LDPC編譯碼為例,以altera的stratix IV EP4SE530芯片為平臺(tái),對(duì)直接編碼算法和TMM譯碼算法進(jìn)行實(shí)現(xiàn),實(shí)現(xiàn)結(jié)果編碼器硬件資源占用為:邏輯單元(ALUT):1 763、寄存器(Registers):5 173、存儲(chǔ)單元(Block Memory Bits):10 736。譯碼器硬件資源占用為:邏輯單元(ALUT):71 111、寄存器(Registers):46 648、存儲(chǔ)單元(Block Memory Bits):202 522。
編譯碼器實(shí)現(xiàn)后Modelsim仿真結(jié)果分別如圖9和圖10所示。編碼器只需要7個(gè)時(shí)鐘周期即可得出第一個(gè)校驗(yàn)位計(jì)算結(jié)果,再經(jīng)過(guò)43個(gè)系統(tǒng)時(shí)鐘周期就可以完成整個(gè)編碼運(yùn)算。譯碼器在10次迭代時(shí)只需約2 500個(gè)時(shí)鐘周期即可完成從數(shù)據(jù)輸入到譯碼輸出的計(jì)算。最終實(shí)現(xiàn)的編譯碼器在相同激勵(lì)作用下運(yùn)算結(jié)果與Matlab仿真計(jì)算結(jié)果一致,該編譯碼器設(shè)計(jì)正確可行。
圖9 編碼器Modelsim仿真結(jié)果
圖10 譯碼器Modelsim仿真結(jié)果
多進(jìn)制LDPC編碼器采用直接編碼算法,利用查表法實(shí)現(xiàn)伽羅華域乘法運(yùn)算,原理簡(jiǎn)單易于實(shí)現(xiàn)。譯碼器雖然采用目前計(jì)算復(fù)雜度最小的TMM算法,但在硬件實(shí)現(xiàn)過(guò)程中資源消耗仍較大,尤其是隨著進(jìn)制的增加,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的可能性相應(yīng)增加,存儲(chǔ)及邏輯資源消耗變大。本文提出的譯碼器整體及內(nèi)部各個(gè)模塊的實(shí)現(xiàn)方案在資源消耗及計(jì)算延遲之間進(jìn)行了折中考慮,根據(jù)具體應(yīng)用需求和硬件平臺(tái)資源,可通過(guò)增加或減小模塊并行運(yùn)算在資源消耗和譯碼延遲之間統(tǒng)籌考慮。
多進(jìn)制LDPC碼以其優(yōu)異的性能受到廣泛關(guān)注,但其復(fù)雜的譯碼算法嚴(yán)重制約了在工程中的應(yīng)用,本文提出的多進(jìn)制LDPC編譯碼方案大大降低了對(duì)應(yīng)用平臺(tái)的限制,有效拓寬了多進(jìn)制LDPC的應(yīng)用場(chǎng)景。
[1] GALLAGER R G.Low-Density Parity-Check Codes[J].IRE Transactions on Information Theory,1962,IT-8(1):21-28.
[2] MACKAY D J C,NEAL R M.Near Shannon Limit Performance of Low Density Parity Check Codes[J].Electronics letters,1996,32(8):1645-1646.
[3] DAVEY M,MACKAY D J C.Low Density Parity Check Codes over GF(2q) [J].IEEE Comunications Letters,1998,2(6):165-167.
[4] 賀琛,韓建兵,賀鶴云.一種性能優(yōu)于Turbo碼的LDPC規(guī)則碼[J].無(wú)線電工程,2008,38(5):21-23.
[5] 張帆,周武旸.一種高速并行的信道編碼-LDPC碼[J].無(wú)線電工程,2005,31(1):48-50.
[6] MACKAY D J C,DAVID J C,DAVEY M.Evaluation of Gallager Codes for Short Block Length and High Rate Applications[C]∥Codes,Systems,and Graphical Models.Springer New York,2001:113-130.
[7] HU X Y,EVANGELOS E.Binary Representation of Cycle Tanner-Graph GF(q) Codes[C]∥Communications,2004 IEEE International Conference on,2004:528-532.
[8] AMIR B,DAVID B.On the Application of LDPC Codes to Arbitrary Discrete-Memoryless Channels[J].IEEE Transactions on Information Theory,2004,50(3):417-438.
[9] LI G,FAIR I J,KRZYMIEN W A.Low-Density Parity-Check Codes for Space-Time Wireless Transmission[J].IEEE Transactions on Wirelses Communications,2006,5(2):312-322.
[10] FENG G,LAJOS H.Low Complexity Non-Binary LDPC and Modulation Schemes Communicating over MIMO Channels[C] ∥Vehicular Technology Conference,2004,VTC2004-Fall,2004 IEEE 60th,2004:1294-1298.
[11] MACKAY D J C,WILSON S T,DAVEY M C.Comparison of Constructions of Irregular Gallager Codes[J].IEEE Transactions on Communications,1999,47(10):1449-1454.
[12] YANG K.Weighted Nonbinary Repeat-Accumulate Codes[J].IEEE Transactions on Information Theory,2004,50(3):527-531.
[13] HENK W,HEIDI S,MARC M.Log-Domain Decoding of LDPC Codes over GF(q)[C] ∥Communications,2004 IEEE International Conference on,2004:772-776.
[14] BARNAULT L,DECLERCQ D.Fast Decoding Algorithm for LDPC over GF(q)[C]∥Information Theory Workshop,IEEE,2003:70-73.
[15] DAVID D,MARC F.Decoding Algorithms for Nonbinary LDPC Codes over GF(q)[J].IEEE Transactions on Communications,2007,55(4):633-643.
[16] VALENTIN S.Min-Max Decoding for Non Binary LDPC Codes[C]∥Information Theory,2008.ISIT 2008.IEEE International Symposium on,2004:960-964.
[17] ERBAO L,DAVID D,KIRAN G,Trellis-Based Extended Min-Sum Algorithm for Non-Binary LDPC Codes and its Hardware Structure[J].IEEE Transactions on Comunications,2013,61(7):2600-2611.
[18] JESUS O L,FRANCISCO G H,DAVID D.Simplified Trellis Min-Max Decoder Architecture for Nonbinary Low-Density Parity-Check Codes[J].IEEE Transactions on Very Large Scale Integration(VLSI) Systems,2015,23(9):1783-1792.
[19] JESUS O L,FRANCISCO G H,CANET M J,et al.A 630 Mbps Non-Binary LDPC Decoder for FPGA[J].IEEE Transactions on Very Large Scale Integration(VLSI) Systems,2015,23(9):1783-1792.
[20] 陳遠(yuǎn)友.一種用于短猝發(fā)通信的LDPC短碼設(shè)計(jì)[J].無(wú)線電通信技術(shù),2014,40(1):32-33.
[21] 張亞林,蔚保國(guó),范廣偉.IEEE802.16e標(biāo)準(zhǔn)下LDPC碼譯碼性能分析[J].無(wú)線電工程,2013,43(11):8-10.
[22] 雷婷,張建志.LDPC編譯碼算法分析[J].無(wú)線電工程,2012,42(10):8-10.
[23] 岳田,裴保臣.LDPC碼的幾種譯碼算法比較[J].無(wú)線電通信技術(shù),2006,32(4):24-26.
AHardwareImplementationMethodofEncodingandDecodingNon-binaryLDPCCodes
ZHANG Yalin1,2,3,SHU Yuquan1,2,3,ZHANG Jintao1,2,3,WEI Haitao1,2,3,ZHANG Wanyu4
(1.StateKeyLaboratoryofSatelliteNavigationSystemandEquipmentTechnology,Shijiazhuang050081,China;2.SatelliteNavigationTechnologyandEquipmentEngineeringTechnologyResearchCenterofHebeiProvince,Shijiazhuang050081,China;.The54thResearchInstituteofCETC,Shijiazhuang050081,China; 4.MilitaryRepresentativeOfficeinShijiazhuangDistrict,MIlitaryRepresentativeBureauofArmyinBeijing,Shijiazhuang050081,China)
Non-binary LDPC codes have better performance than binary LDPC codes.And because of the complexity of non-binary LDPC codes encoding and decoding algorithms,several scholars proposed some advanced methods in check node processing.The method of direct encoding algorithm based on the lock-up table is proposed.The performance of TMM decoding algorithm is verified according Matlab simulation.And some major module improved design schemes in the hardware implementation are proposed.The encoder and decoder realized in the paper need less resource and have high throughput.According to the application result,the performance of the encoder and decoder using the method is the same with simulation and the design schemes are correct and feasible.
non-binary LDPC;lock-up table method;TMM decoding algorithm;FPGA
2017-01-19
國(guó)家自然科學(xué)基金資助項(xiàng)目(91638203)
10.3969/j.issn.1003-3106.2018.01.16
張亞林,樹玉泉,張金濤,等.一種多進(jìn)制LDPC編譯碼器硬件的實(shí)現(xiàn)方法[J].無(wú)線電工程,2018,48(1):72-79.[ZHANG Yalin,SHU Yuquan,ZHANG Jintao,et al.A Hardware Implementation Method of Encoding and Decoding Non-binary LDPC Codes[J].Radio Engineering,2018,48(1):72-79.]
TN91
A
1003-3106(2018)01-0072-08
張亞林男,(1985—),畢業(yè)于通信與測(cè)控技術(shù)硬件民通信與信息系統(tǒng)專業(yè),碩士,工程師。主要研究方向:衛(wèi)星導(dǎo)航。
樹玉泉男,(1990—),碩士,工程師。主要研究方向:衛(wèi)星導(dǎo)航。
張金濤男,(1979—),碩士,高級(jí)工程師。主要研究方向:衛(wèi)星導(dǎo)航。
魏海濤男,(1979—),碩士,高級(jí)工程師。主要研究方向:衛(wèi)星導(dǎo)航。
張萬(wàn)玉男,(1988—),工程師。主要研究方向:衛(wèi)星導(dǎo)航。
更正
本刊2017年第47卷第12期第71頁(yè)“專題技術(shù)與工程應(yīng)用”欄目中,《數(shù)字下變頻中基于CORDIC算法的NCO設(shè)計(jì)》一文,“基金項(xiàng)目:國(guó)家部委基金資助項(xiàng)目?!备秊椤盎痦?xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目(61472136,61772196);湖南省教育廳科學(xué)研究一般項(xiàng)目(15C0103);湖南省大學(xué)生研究性學(xué)習(xí)和創(chuàng)新性實(shí)驗(yàn)項(xiàng)目(601)?!?/p>
本刊編輯部