兼容dvb-s2x標準的ldpc譯碼器設計方法
【技術領域】
[0001] 本發明屬于無線通信領域,涉及一種兼容DVB-S2X標準的LDPC譯碼器設計方法,可 用于DVB-S2和DVB-S2X標準中所有碼長和碼率LDPC碼的譯碼。
【背景技術】
[0002] 低密度奇偶校驗碼簡稱LDPC碼,是一種線性分組碼。眾多研究結果表明LDPC碼性 能良好,更加適合未來通信系統對數據傳輸的有效性和可靠性的要求,所以越來越多的通 信標準都使用LDPC碼作為其信道編碼方案。DVB-S2和DVB-S2X標準中都采用了 LDPC碼,針對 這些標準的LDPC碼譯碼器的高速FPGA實現吸引了眾多關注。串行結構的LDPC譯碼器由于校 驗節點更新單元和變量節點更新單元都只有一個,所以校驗節點更新和變量節點更新需要 交替進行。串行結構硬件結構簡單,消耗的硬件資源少,但是由于各個節點需要共用校驗節 點更新單元和變量節點更新單元,所以需要輪流進行更新,這會導致譯碼器的時延變得非 常大,譯碼時延會隨著碼長的增加而增加。基于串行結構的LDPC譯碼器吞吐量小,不能滿足 DVB-S2和DVB-S2X標準中高速數據吞吐量的要求。全并行結構的LDPC譯碼器每個節點都使 用獨立的更新模塊,所有的節點更新都同時進行,所以全并行結構的LDPC譯碼器譯碼速度 最快。全并行結構中校驗節點更新單元和變量節點更新單元與校驗矩陣中校驗節點和變量 節點的個數是對應的,各個處理單元之間的連接復雜,硬件復雜度最大,隨著碼長的增加, 復雜度呈指數增長,所以全并行結構適合于碼長較短且校驗矩陣固定的LDPC碼。由于DVB-S2和DVB-S2X標準中LDPC碼有多種碼長和碼率,其校驗矩陣是各不相同的,采用全并行結構 需要實現每種LDPC碼校驗矩陣中每個節點之間的連接關系,而且DVB-S2和DVB-S2X標準中 LDPC碼碼長很大,這會導致硬件實現復雜度非常高,芯片布局難以實現。結合DVB-S2和DVB-S2X中IRA-LDPC碼的特點,譯碼器的硬件實現適合采用部分并行結構。部分并行結構是串行 結構和并行結構的一個折中,部分并行結構將校驗矩陣中校驗節點和變量節點分組,每組 使用一個更新模塊,各個模塊并行處理,而每個更新模塊的中的節點消息更新則是串行處 理。采用部分并行結構可以減少芯片使用面積,但是相對于全并行結構,譯碼器的吞吐量也 會隨之下降。在LDPC譯碼過程中,一次譯碼迭代時間越短,則LDPC譯碼器吞吐量越高。現有 的LDPC譯碼器在譯碼過程中一次迭代時間的縮短可以直接通過提高譯碼器的并行度來實 現,但是提高并行度需要消耗較多的硬件資源。對于DVB-S2和DVB-S2X標準來說,LDPC譯碼 器的并行度最高為360,另外LDPC譯碼器的并行度還可以進一步降低為360的整數因子,如 180、90、45。
[0003] DVB-S2和DVB-S2X標準中LDPC碼碼長較大、碼率較多,這意味著譯碼器需要支持更 多不同種類的LDPC碼,存儲更多不同LDPC碼的參數,譯碼器的實現難度較大。DVB-S2X作為 DVB-S2的拓展標準,有著更高的傳輸效率,這就要求LDPC譯碼器支持更大的吞吐量,如何在 使用盡量少的硬件資源的基礎上提高譯碼器的吞吐量,成了眾多業內學者和技術研究人員 的研究重點。2007年,Gomes等人在"Flexible Parallel Architecture for DVB-S2 LDPC Decoders"提出了采用部分并行結構設計DVB-S2標準中的LDPC譯碼器,降低了譯碼器的實 現難度。20 11 年K · C · Ci nna t i Lo i 等人在 "Improvement s on the design and implementation of DVB-S2 LDPC decoders"提出了通過增加并行度和使用流水處理提高 DVB-S2標準中LDPC譯碼器吞吐量的改進設計方法。上述LDPC譯碼器的設計方法中,由于只 使用了一個桶形移位模塊,校驗節點更新和變量節點更新需要交替進行,限制了譯碼器的 吞吐量;而且因為DVB-S2X標準在2014年發布,上述LDPC譯碼器不兼容DVB-S2X標準。
【發明內容】
[0004] 本發明的目的在于針對上述已有的缺點,提出一種兼容DVB-S2X標準的LDPC譯碼 器設計方法,以實現在不增加譯碼器的并行度的基礎上提高譯碼器的吞吐量。
[0005] 本發明的技術思路是:通過增加一個桶形移位模塊和部分存儲資源,可以在不增 加譯碼器的并行度的基礎上減少LDPC譯碼器在迭代過程中的譯碼時間,從而實現對吞吐量 的增加,其設計方案包括如下:
[0006] (1)設計LLR緩存模塊,用于對低密度奇偶校驗碼LDPC輸入譯碼器的對數似然比信 息按照碼長和碼率進行順序調整,并將完成順序調整的1路對數似然比信息轉換為并行的 360路對數似然比信息,然后將這360路對數似然比信息進行緩存;
[0007] (2)設計參數控制模塊,用于生成低密度奇偶校驗碼LDPC的地址參數;設計變量節 點更新模塊,用于按照地址參數控制緩存的360路對數似然比信息輸出,使得第一次譯碼迭 代開始前的第i個變量節點傳遞給第j個校驗節點的對數似然比信息L w(Qlj)等于第i個變 量節點對應的初始對數似然比信息L(Pi),即L (<3)(qij) =L(Pi),完成譯碼初始化;
[0008] (3)設計譯碼迭代模塊,用于進行第1次譯碼迭代,1的初始值為1:
[0009] 譯碼迭代模塊包含參數控制子模塊、第一桶形移位子模塊、校驗節點更新子模塊、 第二桶形移位子模塊、校驗節點消息緩存子模塊、變量節點和值緩存子模塊和變量節點更 新子模塊。
[0010] (3a)對校驗節點進行第1次更新:
[0011] (3al)設計參數控制子模塊,用于生成低密度奇偶校驗碼LDPC校驗節點更新中使 用的移位參數Sc^Sd和8。3,設計第一桶形移位子模塊用于按照這三個移位參數控制第1-1 次譯碼迭代時的360路第i個變量節點傳遞給第j個校驗節點的對數似然比信息L^U lj) 進行移位;
[0012] (3a2)設計校驗節點更新子模塊,用于移位之后,用低密度奇偶校驗碼LDPC中第1-1次譯碼迭代時第V個變量節點傳遞給第j個校驗節點的對數似然比信息L (w)(qn),計算 第1次譯碼迭代時第j個校驗節點傳遞給第i個變量節點的對數似然比信息L w(Q1),完成校 驗節點的笛1冷畝新·
[0013]
[0014] 其中α為修正因子,Vj表示所有與第j個校驗節點相連的變量節點的集合,VAi表示 除第i個變量節點之外所有與第j個校驗節點相連的變量節點的集合,VevAi表示V是集 合Vj\i中的元素,Π 為求積運算,sgn(.)為求符號位運算,min(.)為求最小值運算,I . I為求 絕對值運算;
[0015] (3b)對變量節點進行第1次更新:
[0016] (3bl)設計參數控制子模塊,用于生成低密度奇偶校驗碼LDPC變量節點更新中使 用的移位參數s vl、sv2和sv3,設計第二桶形移位模塊用于按照這三個移位參數控制第1次譯 碼迭代時的360路第j個校驗節點傳遞給第i個變量節點的對數似然比信息L (1)(rjl)進行移 位;
[0017] (3b2)設計校驗節點消息緩存子模塊、變量節點和值緩存子模塊和變量節點更新 子模塊,用于移位之后,用低密度奇偶校驗碼LDPC中第i個變量節點對應的初始對數似然比 信息L(P 1)和第1次譯碼迭代時第個校驗節點傳遞給第i個變量節點的對數似然比信息L (1)(m),計算第1次譯碼迭代時第i個變量節點傳遞給第j個校驗節點的對數似然比信息L (1)(qd,完成變量節點的第1次更新:
[0018]
[0019] 其中C1表示所有與第i個變量節點相連的校驗節點的集合,CAj表示除第j個校驗 節點之外所有與第i個變量節點相連的校驗節點的集合,yecAj表示y是集合CAj的元 素;
[0020] (4)將設定最大迭代次數h與譯碼迭代次數1進行比較,其中h為整數,IShS 50:
[0021] 當譯碼迭代次數1小于設定的最大迭代次數h時,令1 = 1 + 1,返回步驟(3),進行下 一次譯碼迭代;
[0022] 設計硬判決信息計算模塊,用于計算硬判決信息:
[0023] 當譯碼迭代次數1等于設定的最大迭代次數h時,停止譯碼迭代,并用低密度奇偶 校驗碼LDPC碼中第i個變量節點對應的初始對數似然比信息L(Pi)和第h次譯碼迭代時第j 個校驗節點傳遞給第i個變量節點的對數似然比信息L(h)(rjl),計算達到最大迭代次數h時 第i個變量節點的硬判決信息L (h) :
[0024]
[0025] (5)設計譯碼判決輸出模塊,用于對達到最大迭代次數h時第i個變量節點的硬判 決信息L (h)(qi)進行譯碼判決,如果L(h)(qi)2 0,譯碼結果判決為0,否則,譯碼結果判決為1, 然后順序輸出譯碼結果,完成譯碼。
[0026]本發明具有如下優點:
[0027] 1)本發明采用了兩個移位模塊同時進行校驗節點更新和變量節點更新,可以使譯 碼過程中一次譯碼迭代的時間縮短為只使用一個移位模塊時的一半,在不增加并行度的基 礎上使LDPC譯碼器的吞吐量提高一倍左右。
[0028] 2)本發明對移位過程進行了分級流水設計,將360路數據的移位分為3級進行移 位,提高了移位過程的處理速度,避免了其成為譯碼器的速度瓶頸。
[0029] 3)本發明采用了兼容性設計,可以對DVB-S2和DVB-S2X標準中的所有LDPC