国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于改進(jìn)的分層譯碼算法的QC-LDPC譯碼器設(shè)計(jì)

2012-07-03 00:24馬匯淼馬林華
電子技術(shù)應(yīng)用 2012年7期
關(guān)鍵詞:譯碼器碼率譯碼

馬匯淼,馬林華,田 雨

(空軍工程大學(xué) 工程學(xué)院航空電子工程系,陜西 西安710038)

LDPC 碼[1](Low-Density Parity-Check Code)已 經(jīng) 被證明是實(shí)用的好碼,因其優(yōu)異的糾錯(cuò)性能和高效的迭代譯碼算法而具有廣闊的應(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)委員會(huì)(CCSDS)推薦了多種碼長和碼率的QC-LDPC碼作為衛(wèi)星通信和深空通信的信道編碼標(biāo)準(zhǔn)[2]。

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

1 QC-LDPC碼及其譯碼算法

QC-LDPC碼具有分塊矩陣的形式,由多個(gè)子矩陣構(gòu)成,形式如下:

其中每個(gè)子矩陣 Ai,j都是一個(gè) 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)用中會(huì)占用大量硬件資源,且譯碼延時(shí)較長?;贠MS(Offset Min-Sum)的分層譯碼算法[6]能保證信息馬上得到傳遞,從而改進(jìn)信息的收斂性。

結(jié)合MMSP譯碼算法和基于OMS的分層譯碼算法的優(yōu)點(diǎn)并采用整數(shù)量化后的改進(jìn)算法如下:

(1)校驗(yàn)節(jié)點(diǎn)更新

(3)校驗(yàn)檢測

②ξ=ξ+1,如果ξ<K,則進(jìn)行下一層的校驗(yàn)節(jié)點(diǎn)更新。

③如果v?·H=,則停止迭代,輸出為譯完碼字,否則轉(zhuǎn)④。

④l=l+1,ξ=1;若 l>Nmax,Nmax為最大迭代次數(shù),譯碼結(jié)束,輸出譯碼結(jié)果;否則,轉(zhuǎn)⑤。

⑤重復(fù)①~④。

2 譯碼器的FPGA實(shí)現(xiàn)

2.1 譯碼器結(jié)構(gòu)總體設(shè)計(jì)

譯碼器有三種不同的譯碼結(jié)構(gòu):全并行結(jié)構(gòu)、串行結(jié)構(gòu)和部分并行結(jié)構(gòu)。部分并行結(jié)構(gòu)避免了全并行結(jié)構(gòu)資源消耗過大、硬件實(shí)現(xiàn)難度大的缺點(diǎn),同時(shí)譯碼速率比串行結(jié)構(gòu)快得多,十分適于實(shí)際應(yīng)用。然而,部分并行結(jié)構(gòu)對校驗(yàn)矩陣中非零元素的分布有特定的要求,而現(xiàn)有的大多數(shù)LDPC碼其校驗(yàn)矩陣中“l(fā)”的分布具有隨機(jī)性,因此譯碼器采用部分并行結(jié)構(gòu)十分困難。

QC-LDPC校驗(yàn)矩陣H的每行校驗(yàn)子矩陣中所有行對應(yīng)的校驗(yàn)節(jié)點(diǎn)自然地被劃分為一個(gè)校驗(yàn)節(jié)點(diǎn)集合,而且任意兩個(gè)集合 Li和 Lj,滿足 Li∩Lj=φ。 集合 Li中的任意兩個(gè)校驗(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)個(gè)數(shù),得到的部分并行結(jié)構(gòu)共有b個(gè)NUU單元。b為循環(huán)子矩陣的行數(shù)。

QC-LDPC并行譯碼器模塊主要由以下幾個(gè)模塊構(gòu)成:輸入緩沖模塊、控制模塊、節(jié)點(diǎn)更新模塊(NUU)、數(shù)據(jù)存儲(chǔ)模塊、數(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ù)存儲(chǔ)模塊完成中間數(shù)據(jù)的存儲(chǔ);數(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)處理模塊可以合并成同一個(gè)模塊,簡稱節(jié)點(diǎn)更新模塊NUU(Node Update Unit)。

本文只研究信息位k=1 024的QC-LDPC碼,其結(jié)構(gòu)如表1所示。

表1 QC-LDPC碼結(jié)構(gòu)

圖2所示的模塊是每層b路并行處理單元中的一個(gè),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ù)存儲(chǔ)模塊

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

當(dāng)開始譯碼時(shí),再將存放在存儲(chǔ)器里的b個(gè)級聯(lián)的數(shù)據(jù)還原成b個(gè)7 bit的數(shù)據(jù)。而當(dāng)信息需要傳遞給下一層時(shí),按照校驗(yàn)節(jié)點(diǎn)運(yùn)算的取數(shù)順序重新排列判決信息在子矩陣中的位置,這個(gè)功能由數(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)行誤碼比對,計(jì)算誤碼率。

圖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)嵌的存儲(chǔ)單元,如表2所示。

3.3 譯碼速率性能測試

輸入緩沖模塊中的FIFO有溢出指示電平en_full,可用來判斷譯碼速率是否合適。若數(shù)據(jù)緩沖區(qū)沒有數(shù)據(jù)溢出,則逐步增加數(shù)字信號發(fā)生器的符號速率,一直增加到緩沖區(qū)溢出的臨界值。這時(shí)得到的數(shù)字信號發(fā)生器的信息比特速率就是該譯碼器在該信噪比條件下的最大譯碼速率。

表2 譯碼器布局布線后結(jié)果

最后測試結(jié)果:當(dāng)1/2碼率QC-LDPC碼譯碼器在信噪比 Eb/N0=2 dB時(shí),譯碼速率為 183 Mb/s;當(dāng) 2/3碼率QC-LDPC碼譯碼器在信噪比Eb/N0=2.7 dB時(shí),譯碼速率為143 Mb/s;當(dāng)4/5碼率QC-LDPC碼譯碼器在信噪比Eb/N0=3.6 dB時(shí),譯碼速率為90 Mb/s。

隨著信噪比的增加,譯碼器譯完一個(gè)碼字的迭代次數(shù)將隨之減少,因此譯碼的速率會(huì)隨著信噪比的增加而增加,但是并不是完全成比例的增加。這是因?yàn)榇g碼字的輸入速率是受限的,隨著譯碼速率的增加,譯碼器將擁有超過其待譯碼字輸入速率的能力,此時(shí)譯碼的速率將不再增加。本文實(shí)現(xiàn)的譯碼器最高可實(shí)現(xiàn)200 Mb/s的譯碼速率。

在對CCSDS推薦的QC-LDPC碼研究的基礎(chǔ)上,設(shè)計(jì)了一種基于改進(jìn)分層譯碼算法的部分并行結(jié)構(gòu)QCLDPC譯碼器,并給出了節(jié)點(diǎn)更新模塊和數(shù)據(jù)存儲(chǔ)模塊的結(jié)構(gòu)。譯碼器性能測試表明,該結(jié)構(gòu)譯碼速率高,設(shè)計(jì)模塊化,布線簡單,便于Xilinx綜合布線工具生成性能良好的可下載文件。

[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-thefly computation[C].Signals,Systems and Computers,2006.ACSSC’06,2006(1):1192-1199.

猜你喜歡
譯碼器碼率譯碼
分段CRC 輔助極化碼SCL 比特翻轉(zhuǎn)譯碼算法
基于校正搜索寬度的極化碼譯碼算法研究
一種基于HEVC 和AVC 改進(jìn)的碼率控制算法
基于FPGA的多碼率卷積編碼器設(shè)計(jì)與實(shí)現(xiàn)
糾錯(cuò)模式可配置的NAND Flash BCH譯碼器設(shè)計(jì)
基于狀態(tài)機(jī)的視頻碼率自適應(yīng)算法
跟蹤導(dǎo)練(一)5
從霍爾的編碼譯碼理論看彈幕的譯碼
LDPC 碼改進(jìn)高速譯碼算法
多光譜圖像壓縮的聯(lián)合碼率分配—碼率控制方法
高雄县| 临汾市| 来安县| 赤城县| 绥德县| 苍梧县| 青铜峡市| 四会市| 沙湾县| 芮城县| 巴彦淖尔市| 紫阳县| 宝鸡市| 洛隆县| 红河县| 金乡县| 苏州市| 布尔津县| 晋州市| 泸西县| 龙海市| 和静县| 蒙自县| 邓州市| 抚宁县| 正阳县| 铁力市| 资兴市| 太谷县| 沙洋县| 台中县| 方正县| 德昌县| 涿州市| 柳林县| 静乐县| 大城县| 新晃| 广东省| 库伦旗| 贵州省|