專利名稱:一種ldpc解碼器及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種LDPC解碼器及其實(shí)現(xiàn)方法,特別是涉及一種符合CMMB標(biāo)準(zhǔn)的LDPC解碼器及其實(shí)現(xiàn)方法。
背景技術(shù):
現(xiàn)代通信系統(tǒng)中,糾錯(cuò)碼是提高信道傳輸可靠性和功率利用率的重要手段,LDPC碼(Low Density Parity Check Code,低密度奇偶校驗(yàn)碼)是目前最逼近香農(nóng)極限的一類糾錯(cuò)碼,目前已廣泛應(yīng)用于深空通信、光纖通信、衛(wèi)星數(shù)字視頻和音頻廣播等領(lǐng)域。在中國(guó)移動(dòng)多媒體廣播數(shù)字系統(tǒng)(CMMB, china mobile multimediabroadcasting),采用了 RS碼(Reed-solomon codes,里所碼)和LDPC碼級(jí)聯(lián)作為信道的糾錯(cuò)碼。要求碼長(zhǎng)為9216bit,支持1/2,3/4兩種碼率,數(shù)據(jù)的吞吐率要求達(dá)到10Mbit/S。CMMB系統(tǒng)中LDPC碼是一個(gè)規(guī)則LDPC碼,其H矩陣的列度都是3。1/2碼率的H矩陣行度為6,3/4碼率的H矩陣行度為12。進(jìn)一步分析可以看出:CMMB系統(tǒng)中LDPC碼的H矩陣是由一個(gè)基本的碼字矩陣擴(kuò)展而來(lái)??梢杂蓛煞N方式擴(kuò)展得到,行擴(kuò)展方式,列擴(kuò)展方式。(I)行擴(kuò)展方式:1/2碼率的H矩陣就是由前18行擴(kuò)展而來(lái),具體擴(kuò)展方法為:以后的任意一行m都是對(duì)應(yīng)i行(i = 18)0≤i≤256,向右循環(huán)移位j (j = [m/18]*36)0 ( j ( 256得至Li。%表示取模運(yùn)算。[m/18]表示m除18取整運(yùn)算。3/4碼率的H矩陣就是由前9行擴(kuò)展而來(lái),具體擴(kuò)展方法為:以后的任意一行m都是對(duì)應(yīng)i行(i = m% 9),向右循環(huán)移位j (j = [m/9]*36)得到。%表示取模運(yùn)算。[m/9]表示m除9取整運(yùn)算。(2)列擴(kuò)展方式:1/2碼率H矩陣是由一個(gè)4608*36矩陣,經(jīng)過(guò)擴(kuò)展得到的。第t列是向下位移t*18得到的,0≤t≤2563/4碼率H矩陣是由一個(gè)2304*36矩陣,經(jīng)過(guò)擴(kuò)展得到的。第t列是向下位移t*9得到的,0≤t≤256從CMMB校驗(yàn)矩陣可以看出只要存儲(chǔ)器能保存每個(gè)子矩陣中的非零元素,并且能讓這些元素在需要的時(shí)候準(zhǔn)確調(diào)用即可。且兩種碼率的列度都是為3,行度也是倍數(shù)關(guān)系,這樣變量節(jié)點(diǎn)單元完全可以復(fù)用,校驗(yàn)節(jié)點(diǎn)單元只要合理安排調(diào)度,也完全可以復(fù)用。一般來(lái)說(shuō),傳統(tǒng)的LDPC譯碼算法包括以下步驟:步驟一,對(duì)數(shù)域上的BP(belief_propagation,置信傳播)算法。為便于算法描述,首先定義了以下變量:Fn為第n個(gè)比特的最初輸入的初始對(duì)數(shù)似然比信息;Lmn為第m個(gè)校驗(yàn)節(jié)點(diǎn)傳送至第n個(gè)信息節(jié)點(diǎn)的對(duì)數(shù)似然比信息;Zmn為第n個(gè)信息節(jié)點(diǎn)傳送至第m個(gè)校驗(yàn)節(jié)點(diǎn)的對(duì)數(shù)似然比信息;
Zn為第n比特在每次迭代運(yùn)算后得到的后對(duì)數(shù)似然比信息;N(m)為與第m個(gè)校驗(yàn)節(jié)點(diǎn)相連的所有信息節(jié)點(diǎn)的集合;N(m) \n對(duì)應(yīng)的則為N(m)中除去信息節(jié)點(diǎn)n后的信息節(jié)點(diǎn)集合;M(n)為與第n個(gè)信息節(jié)點(diǎn)相連的所有校驗(yàn)節(jié)點(diǎn)的集合;M(n) \m對(duì)應(yīng)的則為M(n)中除去校驗(yàn)節(jié)點(diǎn)m后的校驗(yàn)節(jié)點(diǎn)集合;BP算法的譯碼過(guò)程如下:(I)初始化對(duì)于所有的n 及 mi G M (n),令 Zmin = Fn ;(2)校驗(yàn)節(jié)點(diǎn)更新。對(duì)于每個(gè)校驗(yàn)節(jié)點(diǎn)m及與之相連的所有比特節(jié)點(diǎn)ni,即ni G N(m),進(jìn)行如下處理
權(quán)利要求
1.一種LDPC解碼器,至少包括: 輸入緩沖單元,包括H矩陣陣列單元、V矩陣陣列單元以及初始信息存儲(chǔ)單元,該輸入緩沖單元接收初始化后的輸入數(shù)據(jù)后,并將其寫(xiě)入該H矩陣陣列單元與該初始信息存儲(chǔ)單元; 狀態(tài)控制及地址產(chǎn)生模塊,用于實(shí)現(xiàn)整個(gè)解碼器的控制功能及產(chǎn)生校驗(yàn)節(jié)點(diǎn)處理模塊與變量節(jié)點(diǎn)處理模塊處理階段的地址信息; 校驗(yàn)節(jié)點(diǎn)處理模塊,包含5個(gè)校驗(yàn)節(jié)點(diǎn)處理單元,在該狀態(tài)控制及地址產(chǎn)生模塊控制下,讀取該H矩陣陣列單元的數(shù)據(jù)完成所有校驗(yàn)節(jié)點(diǎn)到變量節(jié)點(diǎn)的更新,并將當(dāng)前次迭代的校驗(yàn)節(jié)點(diǎn)到比特節(jié)點(diǎn)的信息存儲(chǔ)于該V矩陣陣列單元; 變量節(jié)點(diǎn)處理模塊,連接于該V矩陣陣列單元與該初始信息存儲(chǔ)單元,其包含9個(gè)變量節(jié)點(diǎn)處理單元,用于完成所有變量節(jié)點(diǎn)到校驗(yàn)節(jié)點(diǎn)的更新,并同時(shí)將當(dāng)前變量節(jié)點(diǎn)在當(dāng)前次迭代過(guò)程中得到的硬判決結(jié)果輸出至判決碼字存儲(chǔ)單元;以及 判決碼字存儲(chǔ)單元,將譯碼結(jié)束的信息碼字輸出。
2.如權(quán)利要求1所述的LDPC解碼器,其特征在于:該LDPC解碼器還包括LMN寄存器組與ZMN寄存器組,該LMN寄存器組用來(lái)存儲(chǔ)該校驗(yàn)節(jié)點(diǎn)處理模塊運(yùn)算完成的校驗(yàn)節(jié)點(diǎn)到變量節(jié)點(diǎn)的信息;該ZMN寄存器組用于存儲(chǔ)該變量節(jié)點(diǎn)處理模塊運(yùn)算完成的變量節(jié)點(diǎn)到校驗(yàn)節(jié)點(diǎn)的信息。
3.如權(quán)利要求2所述的LDPC解碼器,其特征在于:該LDPC解碼器還包括一索引表存儲(chǔ)單元,用于存儲(chǔ)不同碼率的索引,并在譯碼完成后,輸出信息碼字至判決碼字存儲(chǔ)單元。
4.如權(quán)利要求1所述的LDPC解碼器,其特征在于:該校驗(yàn)節(jié)點(diǎn)處理模塊的5個(gè)校驗(yàn)節(jié)點(diǎn)處理單元同時(shí)工作,經(jīng)過(guò) 4個(gè)周期,完成18個(gè)校驗(yàn)節(jié)點(diǎn)的運(yùn)算,經(jīng)過(guò)256*4個(gè)周期完成一次所有校驗(yàn)節(jié)點(diǎn)到變量節(jié)點(diǎn)的更新。
5.如權(quán)利要求4所述的LDPC解碼器,其特征在于:該校驗(yàn)節(jié)點(diǎn)處理模塊利用上一次迭代周期相應(yīng)變量節(jié)點(diǎn)的硬判決結(jié)果代入校驗(yàn)矩陣判斷公式,得到相應(yīng)信息是否滿足當(dāng)前校驗(yàn),當(dāng)所有的信息都滿足校驗(yàn)式時(shí),迭代結(jié)束;或者達(dá)到最大迭代次數(shù)時(shí),譯碼結(jié)束。
6.如權(quán)利要求5所述的LDPC解碼器,其特征在于:該校驗(yàn)節(jié)點(diǎn)處理模塊采用流水線技術(shù)設(shè)計(jì),將處理單元?jiǎng)澐譃槎嗉?jí)流水處理。
7.如權(quán)利要求6所述的LDPC解碼器,其特征在于:該校驗(yàn)節(jié)點(diǎn)處理模塊采用9級(jí)流水線結(jié)構(gòu)設(shè)計(jì)。
8.如權(quán)利要求1所述的LDPC解碼器,其特征在于:該變量節(jié)點(diǎn)處理模塊的9個(gè)變量節(jié)點(diǎn)處理單元經(jīng)過(guò)4個(gè)周期,完成36個(gè)VNU節(jié)點(diǎn)的運(yùn)算,經(jīng)過(guò)256*4個(gè)周期后完成一次所有的變量節(jié)點(diǎn)到校驗(yàn)節(jié)點(diǎn)的更新。
9.如權(quán)利要求8所述的LDPC解碼器,其特征在于:該變量節(jié)點(diǎn)處理模塊采用流水線技術(shù)設(shè)計(jì),將處理單元?jiǎng)澐譃槎嗉?jí)流水處理。
10.如權(quán)利要求9所述的LDPC解碼器,其特征在于:該變量節(jié)點(diǎn)處理模塊采用7級(jí)流水線結(jié)構(gòu)設(shè)計(jì)。
11.如權(quán)利要求1所述的LDPC解碼器,其特征在于:該H矩陣陣列單元由30個(gè)9位數(shù)據(jù)寬度的RAM組成,其最高位存儲(chǔ)的是上次迭代譯碼輸出,低8位是上次迭代的比特節(jié)點(diǎn)到校驗(yàn)節(jié)點(diǎn)的信息。
12.如權(quán)利要求1所述的LDPC解碼器,其特征在于:該V矩陣陣列單元由27個(gè)8位數(shù)據(jù)寬度的RAM組成,8位存儲(chǔ)的是本次迭代的校驗(yàn)節(jié)點(diǎn)到比特節(jié)點(diǎn)的信息。
13.如權(quán)利要求1所述的LDPC解碼器,其特征在于:該判決碼字存儲(chǔ)單元為一9位寬度、1024深度的存儲(chǔ)器。
14.如權(quán)利要求3所述的LDPC解碼器,其特征在于:該索引表存儲(chǔ)單元用來(lái)存儲(chǔ)9216*2個(gè)索引表,0-9215存儲(chǔ)的是1/2碼率的索引,9216-18431存儲(chǔ)的是3/4碼率的索引,譯碼完成后,按照該索引表存儲(chǔ)單元的順序?qū)?216個(gè)碼字重新排列。
15.如權(quán)利要求2所述的LDPC解碼器,其特征在于:該LMN寄存器組包含兩組寄存器陣列,每一組為27*4的寄存器陣列;該ZMN寄存器組也包含兩組寄存器陣列,每一組為30*4的寄存器陣列。
16.如權(quán)利要求2所述的LDPC解碼器,其特征在于:該LDPC解碼器采用VLSI硬件架構(gòu)。
17.如權(quán)利要求2所述的LDPC解碼器,其特征在于:該狀態(tài)控制及地址產(chǎn)生模塊控制該LDPC解碼器于空閑狀態(tài)、初始化狀態(tài)、校驗(yàn)節(jié)點(diǎn)運(yùn)算狀態(tài)及變量節(jié)點(diǎn)運(yùn)算狀態(tài)之間調(diào)度。
18.一種LDPC解碼器的實(shí)現(xiàn)方法,包括如下步驟: 系統(tǒng)初始化,信道信息寫(xiě)入H矩陣陣列單元與初始信息存儲(chǔ)單元; 校驗(yàn)節(jié)點(diǎn)模塊采用5個(gè)校驗(yàn)節(jié)點(diǎn)處理單元完成所有校驗(yàn)節(jié)點(diǎn)到變量節(jié)點(diǎn)的更新,并將當(dāng)前次迭代的校驗(yàn)節(jié)點(diǎn)到比特節(jié)點(diǎn)的信息存儲(chǔ)于V矩陣陣列單元;以及 變量節(jié)點(diǎn)處理模塊利用9個(gè)變量節(jié)點(diǎn)處理單元所有變量節(jié)點(diǎn)到校驗(yàn)節(jié)點(diǎn)的更新,并同時(shí)將當(dāng)前變量節(jié)點(diǎn)在當(dāng)前次迭代過(guò)程中得到的硬判決結(jié)果輸出至判決碼字存儲(chǔ)單元。
19.如權(quán)利要求18所述的LDPC解碼器的實(shí)現(xiàn)方法,其特征在于:該校驗(yàn)節(jié)點(diǎn)模塊與該變量節(jié)點(diǎn)處理模塊采用流水線技術(shù)設(shè)計(jì),將處理單元?jiǎng)澐譃槎嗉?jí)流水處理以進(jìn)行校驗(yàn)節(jié)點(diǎn)與變量節(jié)點(diǎn)的更新。
20.如權(quán)利要求18所述的LDPC解碼器的實(shí)現(xiàn)方法,其特征在于:系統(tǒng)初始化的同時(shí)將上一次譯碼判決的碼字進(jìn)行輸出。
全文摘要
本發(fā)明公開(kāi)一種LDPC解碼器及其實(shí)現(xiàn)方法,該LDPC解碼器包括輸入緩沖單元、狀態(tài)控制及地址產(chǎn)生模塊、校驗(yàn)節(jié)點(diǎn)處理模塊、變量節(jié)點(diǎn)處理模塊以及判決碼字存儲(chǔ)單元,該輸入緩沖單元包括H矩陣陣列單元、V矩陣陣列單元以及初始信息存儲(chǔ)單元,本發(fā)明通過(guò)僅用57塊RAM來(lái)進(jìn)行行矩陣、列矩陣計(jì)算結(jié)果的存儲(chǔ),減小了將近50%的RAM的數(shù)量,降低了LDPC解碼器實(shí)現(xiàn)過(guò)程中所需要的存儲(chǔ)空間;同時(shí),本發(fā)明僅用5個(gè)CNU節(jié)點(diǎn)的運(yùn)算單元進(jìn)行校驗(yàn)節(jié)點(diǎn)運(yùn)算、9個(gè)VNU節(jié)點(diǎn)的運(yùn)算單元進(jìn)行變量節(jié)點(diǎn)運(yùn)算,減少了LDPC解碼器實(shí)現(xiàn)過(guò)程中所需要的運(yùn)算單元,達(dá)到了節(jié)省芯片資源的目的。
文檔編號(hào)H03M13/11GK103166648SQ201110418739
公開(kāi)日2013年6月19日 申請(qǐng)日期2011年12月14日 優(yōu)先權(quán)日2011年12月14日
發(fā)明者雷海燕 申請(qǐng)人:聯(lián)芯科技有限公司