低密度奇偶校驗(Low Density Parity Check Code,LDPC)碼是一類具有稀疏校驗矩陣的線性分組碼,不僅有逼近Shannon限的良好性能,而且譯碼復雜度較低, 結構靈活,是近年信道編碼領域的研究熱點,目前已廣泛應用于深空通信、光纖通信、衛星數字視頻和音頻廣播等領域。LDPC碼已成為第四代通信系統(4G)強有力的競爭者,而基于LDPC碼的編碼方案已經被下一代衛星數字視頻廣播標準DVB-S2采納。
編碼器實現指標分析
作為前向糾錯系統的重要部分,設計高速率低復雜度LDPC碼編譯碼器成為提高系統性能的關鍵。對LDPC碼來說,其編碼復雜度相對較大,編碼器的設計與實現是首要任務,也是譯碼器設計與實現的前提,有著十分重要的作用。
編碼速率與復雜度是評價LDPC編碼器好壞的重要指標。考慮高清晰度電視(HDTV)標準在分辨率為1920×1080,幀率為60幀/s,每個像素以24比特量化時,總數據率在2Gb/s的數量級。采用MPEG-2壓縮,要求數據率大約在20~40Mb/s。
編碼器設計思路
設LDPC碼檢驗矩陣為H、生成矩陣為G 。傳統的編碼方法是利用生成矩陣G直接進行編碼。由于G并不具有稀疏性,直接編碼的復雜度與碼長N的平方成正比。本文的編碼器采用RU編碼算法。該算法通過對交換校驗矩陣行列的位置,保持矩陣的稀疏性,利用交換行列后的校驗矩陣進行編碼,有效降低了編碼的復雜度。經過行列交換的校驗矩陣具有近似下三角形式,如圖1所示。
圖1 交換校驗矩陣
圖2 編碼流程圖
LDPC碼編碼器實現
LDPC碼編碼器硬件結構
基于RU算法的LDPC編碼實現過程主要是計算p1、p2的過程。設計編碼器時,為了提高編碼速度,將可以同時計算的步驟作并行處理,得到編碼器的硬件結構如圖3所示。
圖3 LDPC碼編碼器結構
分析圖3可知,編碼過程中,Cs與As的計算是同時進行的,其他的操作都是串行進行的。由于行列交換保持了矩陣的稀疏性,所以與A、B、C、E矩陣的相關運算是稀疏矩陣的運算,存儲矩陣所需的空間少同時實現的復雜度低和運算速度快。Φ是g×g的矩陣,由于在編碼預處理過程中保證了g盡量小,所以與Φ矩陣相關的運算也是比較快的。
LDPC碼編碼器復雜度
表1和表2描述了編碼器計算校驗序列p1、p2的流程及相應的復雜度。
表1 p1的計算
表2 p2的計算
表1中序號2與表2中序號4的操作涉及到下三角矩陣T。由于T-1也是下三角矩陣,為了降低復雜度,可采用前向迭代進行計算。例如:假設Qx=y,Q為下三角矩陣,求x。計算過程如下:
矩陣與矩陣的乘法運算以及前向迭代運算實質上都是矩陣與向量的乘法。下面舉例說明矩陣向量乘法器硬件實現的過程:
假設,對于LDPC編碼器,如何有效率地存儲各個矩陣的信息是降低復雜度的關鍵。下面給出一種矩陣存儲的方案:矩陣存儲器中記錄“1”在行中的位置以及對應行行重,如表3所示。例如矩陣X第3行的“1”元素,在行中的位置為“0”,該行的行重為1。由于LDPC編碼過程中使用的矩陣大多是稀疏矩陣,所以采用該矩陣存儲方案能比較有效地利用存儲的空間并有利于矩陣與向量乘法的快速實現。
矩陣向量乘法器的硬件結構如圖4所示。
圖4 矩陣向量乘法器的硬件結構
矩陣向量乘法器仿真結果驗證
在Quartus II環境下,實現output=Xs,得到如圖5所示時序圖。
圖5 output="Xs仿真時序圖"
編碼器方案驗證與優缺點分析
本文利用FPGA實現了基于RU算法的編碼器設計實現。在Quartus II軟件環境下對LDPC編碼器進行仿真,使用Stratix系列EP1s25F672I7芯片,對碼長為504的碼字進行編碼。編碼器占用約9%的邏輯單元,約5%的存儲單元,綜合后時鐘頻率達到120MHz,數據吞吐率達到33Mb/s,基本符合編碼器設計的要求。該編碼器結構是一種通用的設計方案,可以應用于各種不同的LDPC編碼中,但由于其采用通用的編碼算法,實現的復雜度高于某些特殊結構的LDPC碼編碼器,比如準循環LDPC碼。另外通過優化時序和編碼結構,可以進一步提高本文的編碼器的編碼速度。