《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于改進(jìn)的分層譯碼算法的QC-LDPC譯碼器設(shè)計
基于改進(jìn)的分層譯碼算法的QC-LDPC譯碼器設(shè)計
來源:電子技術(shù)應(yīng)用2012年第7期
馬匯淼,馬林華,田 雨
空軍工程大學(xué) 工程學(xué)院航空電子工程系,陜西 西安710038
摘要: 對空間數(shù)據(jù)系統(tǒng)委員會(CCSDS)推薦的QC-LDPC碼進(jìn)行了研究,給出了改進(jìn)的分層譯碼算法?;诟倪M(jìn)的分層譯碼算法設(shè)計部分并行結(jié)構(gòu)QC-LDPC譯碼器,譯碼速率較快,適合應(yīng)用需求,并通過仿真驗(yàn)證所設(shè)計的譯碼器的性能。
中圖分類號: TN911.72
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)07-0051-03
The design of QC-LDPC decoder based on improved hierarchical decoding algorithm
Ma Huimiao,Ma Linhua,Tian Yu
Aeronautical Electronics Engineering Department, Institute of Engineering, Air Force Engineering University, Xi′an 710038,China
Abstract: The Quasi-Cyclic LDPC(QC-LDPC) codes which were proposed by CCSDS is investigated, and an improved hierarchical decoding algorithm is proposed. The design of the QC-LDPC decoder which has partial parallel architecture based on improved hierarchical decoding algorithm decodes fast and is suitable for practical applications, and by simulation the performances of the design are verified.
Key words : LDPC codes;quasi-cyclic;hierarchical decoding algorithm;partial parallel architecture

    LDPC碼[1](Low-Density Parity-Check Code)已經(jīng)被證明是實(shí)用的好碼,因其優(yōu)異的糾錯性能和高效的迭代譯碼算法而具有廣闊的應(yīng)用前景。QC-LDPC碼(Quasi-Cyclic LDPC Code)是根據(jù)系統(tǒng)化構(gòu)造方法構(gòu)造的一類非常重要的LDPC碼,目前已經(jīng)成為LDPC碼硬件實(shí)現(xiàn)研究的熱點(diǎn)。空間數(shù)據(jù)系統(tǒng)委員會(CCSDS)推薦了多種碼長和碼率的QC-LDPC碼作為衛(wèi)星通信和深空通信的信道編碼標(biāo)準(zhǔn)[2]。

    為滿足不同碼率的需要,同時考慮譯碼器應(yīng)當(dāng)具有低復(fù)雜度和低功耗,本文設(shè)計了一種基于改進(jìn)分層譯碼算法的譯碼器結(jié)構(gòu),以滿足實(shí)際需要。

其中每個子矩陣Ai,j都是一個z×z的循環(huán)方陣,此方陣只可能是零矩陣、單位陣或者單位循環(huán)移位后的矩陣。
    置信傳播算法[3-4]BP(Belief-propagation decoding algorithm)是很重要的一類基于LDPC碼的譯碼算法,因其具有嚴(yán)格的數(shù)學(xué)結(jié)構(gòu)和良好的性能,可以對譯碼算法的性能做定量分析。修正最小和(MMSP)譯碼算法[5]實(shí)際采用的是BP算法機(jī)制,雖然具有較低復(fù)雜度并保持良好的性能,但在實(shí)際應(yīng)用中會占用大量硬件資源,且譯碼延時較長?;贠MS(Offset Min-Sum)的分層譯碼算法[6]能保證信息馬上得到傳遞,從而改進(jìn)信息的收斂性。


2 譯碼器的FPGA實(shí)現(xiàn)
2.1 譯碼器結(jié)構(gòu)總體設(shè)計

    譯碼器有三種不同的譯碼結(jié)構(gòu):全并行結(jié)構(gòu)、串行結(jié)構(gòu)和部分并行結(jié)構(gòu)。部分并行結(jié)構(gòu)避免了全并行結(jié)構(gòu)資源消耗過大、硬件實(shí)現(xiàn)難度大的缺點(diǎn),同時譯碼速率比串行結(jié)構(gòu)快得多,十分適于實(shí)際應(yīng)用。然而,部分并行結(jié)構(gòu)對校驗(yàn)矩陣中非零元素的分布有特定的要求,而現(xiàn)有的大多數(shù)LDPC碼其校驗(yàn)矩陣中“l”的分布具有隨機(jī)性,因此譯碼器采用部分并行結(jié)構(gòu)十分困難。
    QC-LDPC校驗(yàn)矩陣H的每行校驗(yàn)子矩陣中所有行對應(yīng)的校驗(yàn)節(jié)點(diǎn)自然地被劃分為一個校驗(yàn)節(jié)點(diǎn)集合,而且任意兩個集合Li和Lj,滿足Li∩Lj=?準(zhǔn)。集合Li中的任意兩個校驗(yàn)節(jié)點(diǎn)Ci、Cj不與相同的變量節(jié)點(diǎn)相連,因此可以并行地對每一集合中的校驗(yàn)節(jié)點(diǎn)Ci進(jìn)行更新。
    為此,借鑒全并行結(jié)構(gòu)的思想,對串形結(jié)構(gòu)進(jìn)行修改,增加譯碼器中的并行節(jié)點(diǎn)更新模塊(NUU)個數(shù),得到的部分并行結(jié)構(gòu)共有b個NUU單元。b為循環(huán)子矩陣的行數(shù)。
    QC-LDPC并行譯碼器模塊主要由以下幾個模塊構(gòu)成:輸入緩沖模塊、控制模塊、節(jié)點(diǎn)更新模塊(NUU)、數(shù)據(jù)存儲模塊、數(shù)據(jù)重構(gòu)模塊、校驗(yàn)?zāi)K和譯碼輸出緩沖模塊,如圖1所示。其中,控制模塊分別產(chǎn)生各子模塊的使能,它是譯碼器的核心控制模塊,控制著迭代的正確進(jìn)行;NUU為譯碼器的核心運(yùn)算模塊;數(shù)據(jù)緩沖模塊用來判斷譯碼器速率是否大于進(jìn)入譯碼器的數(shù)據(jù)速率;數(shù)據(jù)存儲模塊完成中間數(shù)據(jù)的存儲;數(shù)據(jù)重構(gòu)模塊將變量節(jié)點(diǎn)更新的輸出數(shù)據(jù)按照校驗(yàn)節(jié)點(diǎn)運(yùn)算的取數(shù)順序重新排列;校驗(yàn)?zāi)K用來校驗(yàn)判決出的碼字是否滿足校驗(yàn)矩陣。

2.2 節(jié)點(diǎn)更新模塊(NUU)
    本文實(shí)現(xiàn)的譯碼器采用基于修正因子的分層譯碼算法,每一層的校驗(yàn)節(jié)點(diǎn)處理完成以后,信息立即被用來更新變量節(jié)點(diǎn)。它的結(jié)果被用來提供給下一層的校驗(yàn)節(jié)點(diǎn)處理。因而校驗(yàn)節(jié)點(diǎn)處理模塊和變量節(jié)點(diǎn)處理模塊可以合并成同一個模塊,簡稱節(jié)點(diǎn)更新模塊NUU(Node Update Unit)。
    本文只研究信息位k=1 024的QC-LDPC碼,其結(jié)構(gòu)如表1所示。

    圖2所示的模塊是每層b路并行處理單元中的一個,b為校驗(yàn)矩陣H的循環(huán)子矩陣的行數(shù)。為了降低部分并行LDPC碼譯碼器中連接的復(fù)雜度,節(jié)點(diǎn)更新模塊(NUU)中節(jié)點(diǎn)更新的信息都采用數(shù)據(jù)串行方法。變量節(jié)點(diǎn)的度決定了校驗(yàn)節(jié)點(diǎn)單元一次處理的節(jié)點(diǎn)數(shù),將校驗(yàn)節(jié)點(diǎn)單元處理的節(jié)點(diǎn)數(shù)設(shè)為節(jié)點(diǎn)變量的最大值,可以通過邏輯選通來適應(yīng)不同的碼率。

2.3 數(shù)據(jù)存儲模塊
      本文對接收到的原始數(shù)據(jù)和計算過程產(chǎn)生的中間數(shù)據(jù)都采用了8 bit整數(shù)量化,其中1 bit為符號位,7 bit為數(shù)據(jù)位。將譯碼開始時外部輸入的數(shù)據(jù)存入判決信息存儲器時,將接收的前b個二進(jìn)制數(shù)據(jù)的最高位依次級聯(lián)為一個b bit的數(shù)據(jù),存入判決信息存儲器1,地址為0;將前b個數(shù)據(jù)的次高位級聯(lián)為一個b bit的數(shù)據(jù),存入判決信息存儲器2;然后依次將b個數(shù)據(jù)剩下的相同位置的數(shù)據(jù)級聯(lián),存入判決信息存儲器2:7,地址為0;將接收的后b個數(shù)據(jù)按上述同樣的方式存入判決信息存儲器1:7,地址為1;當(dāng)待譯碼字的所有數(shù)據(jù)都存入了判決信息存儲器后,就開始譯碼。圖3為數(shù)據(jù)存儲模塊框圖。

 

 

    當(dāng)開始譯碼時,再將存放在存儲器里的b個級聯(lián)的數(shù)據(jù)還原成b個7 bit的數(shù)據(jù)。而當(dāng)信息需要傳遞給下一層時,按照校驗(yàn)節(jié)點(diǎn)運(yùn)算的取數(shù)順序重新排列判決信息在子矩陣中的位置,這個功能由數(shù)據(jù)重構(gòu)模塊實(shí)現(xiàn)。
3 性能測試
3.1 誤碼率性能測試

    首先由數(shù)字信號發(fā)生器對待譯碼字進(jìn)行BPSK調(diào)制,然后由加噪儀對調(diào)制后的信號加噪(高斯白噪聲)。在信號的接收端對該信號經(jīng)行解調(diào)、同步后,將待譯碼字的信道軟信息輸入FPGA譯碼芯片。譯碼芯片將譯碼后的結(jié)果傳輸給誤碼儀進(jìn)行誤碼比對,計算誤碼率。
    圖4為8 bit整數(shù)量化譯碼的仿真結(jié)果,在譯碼過程中所有的數(shù)據(jù)長度都為8 bit,其中符號位1 bit,信息位7 bit。其中,1/2和2/3碼率的QC-LDPC碼,迭代的最大次數(shù)為25;4/5碼率的QC-LDPC碼,迭代的最大次數(shù)為20。

3.2 譯碼器布局布線后結(jié)果
    按照本節(jié)的半并行碼結(jié)構(gòu),在Xilinx公司的Virtex4 vlx160芯片上分別實(shí)現(xiàn)了CCSDS推薦的三種不同碼率的QC-LDPC碼編碼器。經(jīng)過綜合布線后得到芯片內(nèi)嵌的存儲單元,如表2所示。
3.3 譯碼速率性能測試
  輸入緩沖模塊中的FIFO有溢出指示電平en_full,可用來判斷譯碼速率是否合適。若數(shù)據(jù)緩沖區(qū)沒有數(shù)據(jù)溢出,則逐步增加數(shù)字信號發(fā)生器的符號速率,一直增加到緩沖區(qū)溢出的臨界值。這時得到的數(shù)字信號發(fā)生器的信息比特速率就是該譯碼器在該信噪比條件下的最大譯碼速率。
    最后測試結(jié)果:當(dāng)1/2碼率QC-LDPC碼譯碼器在信噪比Eb/N0=2 dB時,譯碼速率為183 Mb/s;當(dāng)2/3碼率QC-LDPC碼譯碼器在信噪比Eb/N0=2.7 dB時,譯碼速率為143 Mb/s;當(dāng)4/5碼率QC-LDPC碼譯碼器在信噪比Eb/N0=3.6 dB時,譯碼速率為90 Mb/s。
    隨著信噪比的增加,譯碼器譯完一個碼字的迭代次數(shù)將隨之減少,因此譯碼的速率會隨著信噪比的增加而增加,但是并不是完全成比例的增加。這是因?yàn)榇g碼字的輸入速率是受限的,隨著譯碼速率的增加,譯碼器將擁有超過其待譯碼字輸入速率的能力,此時譯碼的速率將不再增加。本文實(shí)現(xiàn)的譯碼器最高可實(shí)現(xiàn)200 Mb/s的譯碼速率。
    在對CCSDS推薦的QC-LDPC碼研究的基礎(chǔ)上,設(shè)計了一種基于改進(jìn)分層譯碼算法的部分并行結(jié)構(gòu)QC-LDPC譯碼器,并給出了節(jié)點(diǎn)更新模塊和數(shù)據(jù)存儲模塊的結(jié)構(gòu)。譯碼器性能測試表明,該結(jié)構(gòu)譯碼速率高,設(shè)計模塊化,布線簡單,便于Xilinx綜合布線工具生成性能良好的可下載文件。
參考文獻(xiàn)
[1] GALLAGER R G.Low density parity-check codes[J].IEEE Trans.Inf.Theory,1962,8(1):21-28.
[2] The consultative committee for space data systems.131.1-O-2 low density parity check codes for use in near-earth  and deep space applications[S].Washington D.C,USA,CCSDS,2007.
[3] KSCHISCHANG F R,F(xiàn)REY B J,LOELIGER H A.Factor  graphs and the sum-product algorithm[J].IEEE Transaction.  Information.Theory,2001(47):498-519.
[4] FREY B J,KSCHISCHANG F R.Probability propagation  and iterative decoding[C].In Proceeding.34th Allerton Conference.On Communication,Control,and Computing,Monticello,Illinois,Oct.1996.
[5] Zhang Luoming,Gui Lin,Xu Youyun,et al.Configurable multi-rate decoder architecture for QC-LDPC codes based  broadband broadcasting system[J].IEEE Transactons on  broadcasting,2008,54(2):226-235.
[6] GUNNAM K K,CHOI G S,Wang Weihuang,et al. Decoding of quasic-cyclic LDPC codes using an on-the-fly computation[C].Signals,Systems and Computers,2006. ACSSC’06,2006(1):1192-1199.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。