專利名稱:一種ldpc及其縮短碼的高速譯碼方法
技術(shù)領(lǐng)域:
本發(fā)明屬于編譯碼技術(shù)領(lǐng)域,涉及一種LDPC及其縮短碼的高速譯碼裝置。
背景技術(shù):
LDPC碼最早在20世紀60年代由Villager在他的博士論文中提出,但限于當(dāng)時的 技術(shù)條件,缺乏可行的譯碼算法,此后的35年間基本上被人們忽略,其間由Tarmer在1981 年推廣了 LDPC(低密度奇偶校驗碼)碼并給出了 LDPC碼的圖表示,即后來所稱的Tarmer 圖。1993年Berrou等人發(fā)現(xiàn)了 Turbo碼,在此基礎(chǔ)上,1995年前后MacKay和Neal等人對 LDPC碼重新進行了研究,提出了可行的譯碼算法,從而進一步發(fā)現(xiàn)了 LDPC碼所具有的良好 性能,迅速引起強烈反響和極大關(guān)注。目前已廣泛應(yīng)用于深空通信、光纖通信、衛(wèi)星數(shù)字視 頻和音頻廣播等領(lǐng)域。LDPC碼已成為第四代通信系統(tǒng)GG)強有力的競爭者,而基于LDPC 碼的編碼方案已經(jīng)被下一代衛(wèi)星數(shù)字視頻廣播標準DVB-S2采納。LDPC信道編碼技術(shù)首次應(yīng)用于我國航天領(lǐng)域是在2010年10月1日發(fā)射升空的嫦 娥二號。其下行數(shù)據(jù)速率是12M/S,也就是LDPC編譯碼器均工作在12MHz的頻率下。隨著 我國空間技術(shù)的發(fā)展,空間探測中各種有效載荷需要下傳的數(shù)據(jù)量會越來越大,這就需要 具有良好糾錯能力的LDPC碼能夠有效的適應(yīng)高碼速率的要求。當(dāng)前LDPC譯碼的硬件實現(xiàn)多是基于碼長較短的碼型(幾十到幾百比特的碼長), 且運算速率較低(十幾兆到幾十兆),而且由于硬件資源的限制,實現(xiàn)功能較強的LDPC譯碼 器需要性能很好的芯片、甚至需要針對特定算法專門設(shè)計,硬件實現(xiàn)平臺的成本很高,不利 于大規(guī)模應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足,提供了一種LDPC譯碼裝置及方 法。本發(fā)明以CCSDS為標準對(8176,7154)碼型,在較低成本的硬件平臺上實現(xiàn)了對高速 數(shù)據(jù)流的譯碼,解決了長碼長的低密度奇偶校驗碼在高碼率下的譯碼問題。本發(fā)明的技術(shù)解決方案通過以下步驟進行實現(xiàn)(1)對譯碼數(shù)據(jù)的第i個數(shù)據(jù)幀進行判斷若輸入為LDPC數(shù)據(jù),則按所使用的輸出數(shù)據(jù)寄存器的地址將LDPC數(shù)據(jù)中幀頭數(shù) 據(jù)的原碼進行存儲;并由輸出數(shù)據(jù)寄存器輸出前一運算周期中數(shù)據(jù)幀的幀頭數(shù)據(jù);若輸入為LDPC的縮短碼數(shù)據(jù),則按所使用的輸出數(shù)據(jù)寄存器的地址將LDPC數(shù)據(jù) 中幀頭和填充數(shù)數(shù)據(jù)的原碼進行存儲;并由輸出數(shù)據(jù)寄存器輸出前一運算周期中數(shù)據(jù)幀的 幀頭和填充數(shù)數(shù)據(jù);(2)按照所使用的中間數(shù)據(jù)寄存器和迭代結(jié)果數(shù)據(jù)寄存器的地址存儲第i個數(shù) 據(jù)幀中的有效數(shù)據(jù);并由步驟(1)中所述的輸出數(shù)據(jù)寄存器輸出前一運算周期中的譯碼數(shù) 據(jù);
(3)第i個數(shù)據(jù)幀存儲完畢后,對第i個數(shù)據(jù)幀進行校驗節(jié)點和變量節(jié)點的迭代運 算操作;同時對輸入的第i+ι個數(shù)據(jù)幀從步驟(1)開始利用不同的輸出數(shù)據(jù)寄存器、中間數(shù) 據(jù)寄存器和迭代結(jié)果數(shù)據(jù)寄存器進行操作;(4)當(dāng)對第i個數(shù)據(jù)幀的操作完成并輸出后,重新采用對第i個數(shù)據(jù)幀進行操作的 數(shù)據(jù)寄存器、中間數(shù)據(jù)寄存器和迭代結(jié)果數(shù)據(jù)寄存器對新到達的數(shù)據(jù)幀進行操作;在上述步驟中,同時對輸入的所有數(shù)據(jù)幀進行操作,對一個數(shù)據(jù)幀進行存儲后操 作所用時間等于對該單個數(shù)據(jù)幀之后輸入的其余各數(shù)據(jù)幀進行存儲所用時間的累加和。所述步驟(3)中的校驗節(jié)點和變量節(jié)點的迭代運算操作分別由校驗節(jié)點運算模 塊和變量節(jié)點模塊實現(xiàn),并可在連續(xù)到達的數(shù)據(jù)幀中進行復(fù)用。同時進行操作的數(shù)據(jù)幀為4個;當(dāng)完成對第i個數(shù)據(jù)幀的操作后,第i+4個輸入數(shù) 據(jù)幀重新采用對第i個數(shù)據(jù)幀進行操作的數(shù)據(jù)寄存器、中間數(shù)據(jù)寄存器和迭代結(jié)果數(shù)據(jù)寄 存器。本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點(1)采用2個校驗節(jié)點模塊和16個變量節(jié)點模塊的半并行數(shù)據(jù)處理方式,使資源 占用和運算效率取得平衡優(yōu)化。相對于完全串行的處理方式,可以使得在緩存3幀數(shù)據(jù)的 情況下迭代運算次數(shù)增加一倍;相對于完全并行的處理方式,可以大量節(jié)省芯片資源占用, 使得在較低端芯片上實現(xiàn)此規(guī)模的譯碼成為可能。另外,以此種方法為基礎(chǔ),為相鄰兩幀數(shù) 據(jù)分配獨立的運算單元,在少量增加硬件資源支出的情況下可以進一步提高系統(tǒng)的工作頻 率。根據(jù)實際工程需求,對時序控制部分作適當(dāng)修改,還可以在降低工作頻率百分之五十的 情況下再增加一倍的迭代次數(shù),提供更優(yōu)的譯碼效果。(2)采用半并行的數(shù)據(jù)處理方式也會產(chǎn)生大量的中間數(shù)據(jù)。如果在對碼長較短 LDPC碼進行譯碼的情況下,可以采用FPGA的片內(nèi)寄存器資源進行臨時存儲。但對(8176, 7154)這種碼長較長的LDPC碼進行譯碼,片內(nèi)的寄存器資源就會不足,而且運算中頻繁 的對不同位置的寄存器進行讀寫訪問也會降低系統(tǒng)的工作頻率。基于此,設(shè)計中采用了 BlockRam作為中間數(shù)據(jù)的存儲,有效利用FPGA內(nèi)部的專用電路從而大量節(jié)省了邏輯和布 線資源,解決了以上問題。另外,由于BlockRam尋址讀寫的特點,也增加了設(shè)計的可移植 性。(3)多層流水線結(jié)構(gòu)的控制方式實際上是對半并行的數(shù)據(jù)處理方式的一種優(yōu)化。 從數(shù)據(jù)流狀態(tài)上看,這種并行結(jié)構(gòu)是動態(tài)的,在提高系統(tǒng)工作頻率的同時,解決了譯碼數(shù)據(jù) 流輸入、輸出的連貫問題。
圖1為本發(fā)明結(jié)構(gòu)示意圖;圖2為Min-sum算法校驗矩陣Tanner圖;圖3為校驗節(jié)點運算示意圖;圖4為本發(fā)明工作流程圖。
具體實施例方式下面就結(jié)合附圖對本發(fā)明做進一步描述。
LDPC碼的譯碼算法有1. SPA (Sum-Product Algorithm),Probability-domain ;2. SPA, Log-domain ;3. Min-sum (Log-domain SPA的簡化算法),及其各種修正版本;4. BF(Bit-Flipping);5. MLG (Majority-Logic),只對循環(huán) LDPC 碼可以應(yīng)用。以上所列的算法,復(fù)雜性和誤碼性能依次降低。其中,ftObability-domainSPA計 算太過復(fù)雜,BF算法和MLG算法不能提供良好的誤碼性能,實際中均不宜采用??梢允褂?的幾種算法中,修正的Min-sum算法誤碼性能可以接近SPA,又有相對低的復(fù)雜度,因此,經(jīng) 綜合考慮本設(shè)計采用了修正的Min-sum算法。Min-sum算法譯碼迭代實施方式
權(quán)利要求
1.一種LDPC及其縮短碼的高速譯碼方法,其特征在于通過以下步驟進行實現(xiàn)(1)對譯碼數(shù)據(jù)的第i個數(shù)據(jù)幀進行判斷若輸入為LDPC數(shù)據(jù),則按所使用的輸出數(shù)據(jù)寄存器的地址將LDPC數(shù)據(jù)中幀頭數(shù)據(jù)的 原碼進行存儲;并由輸出數(shù)據(jù)寄存器輸出前一運算周期中數(shù)據(jù)幀的幀頭數(shù)據(jù);若輸入為LDPC的縮短碼數(shù)據(jù),則按所使用的輸出數(shù)據(jù)寄存器的地址將LDPC數(shù)據(jù)中幀 頭和填充數(shù)數(shù)據(jù)的原碼進行存儲;并由輸出數(shù)據(jù)寄存器輸出前一運算周期中數(shù)據(jù)幀的幀頭 和填充數(shù)數(shù)據(jù);(2)按照所使用的中間數(shù)據(jù)寄存器和迭代結(jié)果數(shù)據(jù)寄存器的地址存儲第i個數(shù)據(jù)幀中 的有效數(shù)據(jù);并由步驟(1)中所述的輸出數(shù)據(jù)寄存器輸出前一運算周期中的譯碼數(shù)據(jù);(3)第i個數(shù)據(jù)幀存儲完畢后,對第i個數(shù)據(jù)幀進行校驗節(jié)點和變量節(jié)點的迭代運算操 作;同時對輸入的第i+Ι個數(shù)據(jù)幀從步驟(1)開始利用不同的輸出數(shù)據(jù)寄存器、中間數(shù)據(jù)寄 存器和迭代結(jié)果數(shù)據(jù)寄存器進行操作;(4)當(dāng)對第i個數(shù)據(jù)幀的操作完成并輸出后,重新采用對第i個數(shù)據(jù)幀進行操作的數(shù)據(jù) 寄存器、中間數(shù)據(jù)寄存器和迭代結(jié)果數(shù)據(jù)寄存器對新到達的數(shù)據(jù)幀進行操作;在上述步驟中,同時對輸入的所有數(shù)據(jù)幀進行操作,對一個數(shù)據(jù)幀進行存儲后操作所 用時間等于對該單個數(shù)據(jù)幀之后輸入的其余各數(shù)據(jù)幀進行存儲所用時間的累加和。
2.根據(jù)權(quán)利要求1所述的一種LDPC及其縮短碼的高速譯碼方法,其特征在于所述步 驟(3)中的校驗節(jié)點和變量節(jié)點的迭代運算操作分別由校驗節(jié)點運算模塊和變量節(jié)點模 塊實現(xiàn),并可在連續(xù)到達的數(shù)據(jù)幀中進行復(fù)用。
3.根據(jù)權(quán)利要求1所述的一種LDPC及其縮短碼的高速譯碼方法,其特征在于同時進 行操作的數(shù)據(jù)幀為4個;當(dāng)完成對第i個數(shù)據(jù)幀的操作后,第i+4個輸入數(shù)據(jù)幀重新采用對 第i個數(shù)據(jù)幀進行操作的數(shù)據(jù)寄存器、中間數(shù)據(jù)寄存器和迭代結(jié)果數(shù)據(jù)寄存器。
全文摘要
本發(fā)明公開了一種LDPC及其縮短碼的高速譯碼方法,本發(fā)明以CCSDS為標準對(8176,7154)碼型,在較低成本的硬件平臺上實現(xiàn)了對高速數(shù)據(jù)流的譯碼,解決了長碼長的低密度奇偶校驗碼在高碼率下的譯碼問題。
文檔編號H03M13/11GK102118173SQ201110029300
公開日2011年7月6日 申請日期2011年1月27日 優(yōu)先權(quán)日2011年1月27日
發(fā)明者傅得立, 牛毅, 馬忠松 申請人:牛毅