周國良,王波
(1.中國船舶重工集團(tuán)公司江蘇自動化研究所,江蘇連云港222006;2.哈爾濱理工大學(xué),黑龍江哈爾濱150001)
RS碼是一類具有很強(qiáng)糾錯能力的多進(jìn)制BCH碼,也是典型的代數(shù)幾何碼,最初由里德(Reed)和索羅蒙(Solomon)于1960年構(gòu)造出來。由于其具有很強(qiáng)的糾正隨機(jī)錯誤和突發(fā)錯誤的能力以及極低的不可探測差錯率,所以在數(shù)字視頻廣播、軍用通信、衛(wèi)星通信、計算機(jī)通信、存儲介質(zhì)等領(lǐng)域得到廣泛的應(yīng)用[1]。
DVB-H標(biāo)準(zhǔn)是在DVB-T標(biāo)準(zhǔn)基礎(chǔ)上針對移動手持終端的數(shù)據(jù)和多媒體服務(wù)而制定的新一代數(shù)字地面廣播標(biāo)準(zhǔn)。它將電視廣播、移動通信及互聯(lián)網(wǎng)IP技術(shù)相結(jié)合,可開展移動手機(jī)電視業(yè)務(wù)。為了使數(shù)字節(jié)目在傳輸過程中避免出現(xiàn)因受到各種信道噪聲干擾而出現(xiàn)失真的現(xiàn)象,DVB-H標(biāo)準(zhǔn)采用了包括RS碼在內(nèi)的多種編碼技術(shù)來保護(hù)傳輸數(shù)據(jù)。其中,RS(204,188)碼被用作為DVB-H標(biāo)準(zhǔn)的外碼解決方案。本文將針對DVB-H標(biāo)準(zhǔn)規(guī)定的RS(204,188)碼給出譯碼算法分析、基于FPGA的譯碼器實現(xiàn)以及譯碼器性能的仿真與測試結(jié)果。
RS(204,188)碼是在有限域GF(28)上運算得到的,屬于RS(255,239)的縮短碼。根據(jù)DVB組織發(fā)布的《手持終端傳輸系統(tǒng)(DVB-H)》[2]規(guī)定,其具體參數(shù)如下:
(1)m=8,m為每個符號的位數(shù);
(2)n=2m-1=204,n為一個碼字包含的符號個數(shù);
(3)k=188,k為一個碼字中信息位符號個數(shù);
(4)2t=n-k=16,2t為一個碼字中校驗位的符號個數(shù);
(5)t=8,t為一個碼字內(nèi)所能糾正的最大錯誤符號數(shù);
(6)GF(28)域上的本原多項式為:
(7)碼生成多項式為:
(1)伴隨式計算,由接收到的碼字R(x)計算伴隨式S(x);
(2)求解關(guān)鍵方程,確定錯誤位置多項式∧(x)和錯誤值多項式Ω(h)(x);
(3)計算錯誤位置和對應(yīng)錯誤值,確定E(x)。由C(x)=R(x)-E(x)計算譯碼器輸出碼字C(x)。
譯碼器的實現(xiàn)框圖如圖1所示。
其中第(2)步求解關(guān)鍵方程是決定譯碼器復(fù)雜程度與速度的關(guān)鍵。常見的關(guān)鍵方程求解算法主要有Euclidean算法、BM算法及其改進(jìn)形式。BM算法譯碼延時較Euclidean算法小,實現(xiàn)電路較簡單,所以在工程中較為常用。針對傳統(tǒng)BM算法需要進(jìn)行求逆運算的不足,Blahut和Berlekamp分別提出了無需求逆的BM算法,即iBM算法。文獻(xiàn)[3]在iBM算法的基礎(chǔ)上提出了一種改進(jìn)型iBM算法,即RiBM(Reformulated inversionless BM)算法。表1給出了各譯碼算法關(guān)鍵路徑時延和復(fù)雜度比較。
表1 關(guān)鍵路徑時延和硬件復(fù)雜度比較
表1中“加法器、乘法器、鎖存器、二選一器”的數(shù)量代表算法實現(xiàn)時的硬件開銷大小,時鐘周期決定譯碼過程所需的總時間,而關(guān)鍵路徑時延決定譯碼器能夠工作的最高時鐘頻率,三者綜合在一起決定譯碼算法能夠達(dá)到的最高譯碼速率。譯碼器實現(xiàn)時,乘法器使用的最多,可見RiBM算法的硬件開銷大約是折疊Euclidean算法(Folded Euclidean)的3倍,但求解關(guān)鍵方程的時間是它的1/6,而且關(guān)鍵路徑時延也較短,付出的代價也在可接受范圍之內(nèi)。RiBM算法在關(guān)鍵路徑延時和資源使用等方面與傳統(tǒng)的BM和Euclid算法及其改進(jìn)算法相比,做到了更好的折中,因此本文采用RiBM算法進(jìn)行關(guān)鍵方程求解。
其中n=204,i=1,2…2t,a為x8+x4+x3+x2+1=0所生成的GF(28)域中的本原元。其實現(xiàn)結(jié)構(gòu)如圖2所示。
采用RiBM算法求解關(guān)鍵方程。算法的具體過程如下:
在計算錯誤值過程中,求逆運算使用ROM查找表法。Chien搜索電路和Forney算法電路作為一個整體實現(xiàn),電路結(jié)構(gòu)如圖4所示。
本文設(shè)計的RS(204,188)譯碼器選擇ALTERA公司StratixII系列的EP2S15F484C3芯片作為目標(biāo)器件,在QuartusII 9.1集成環(huán)境中,使用Verilog HDL語言編寫。綜合工具為Synplify Pro 9.6.1,綜合結(jié)果在QuartusII中進(jìn)行布局布線,使用Modelsim 6.5進(jìn)行仿真。結(jié)果表明該譯碼器最高工作頻率可達(dá)117.32 MHz,譯碼延遲僅為358個時鐘周期。譯碼仿真結(jié)果如圖5、圖6所示。
使用Matlab對譯碼器性能進(jìn)行測試。首先在Matlab中實現(xiàn)RS(204,188)編碼器,對偽隨機(jī)碼發(fā)生器產(chǎn)生的隨機(jī)數(shù)據(jù)進(jìn)行編碼,仿真BPSK調(diào)制解調(diào)方式和高斯白噪聲(AWGN)對編碼數(shù)據(jù)進(jìn)行加噪,加噪后的編碼數(shù)據(jù)存儲在文本文檔中。然后編寫testbench測試程序,讀入加噪后的編碼數(shù)據(jù),經(jīng)譯碼器處理后,將結(jié)果寫入另一文本文檔[4]。對比未加噪的原始數(shù)據(jù)和譯碼結(jié)果從而得到誤碼率曲線如圖7所示。
本文介紹了用FPGA實現(xiàn)基于DVB-H標(biāo)準(zhǔn)的RS(204,188)碼譯碼器的方法。譯碼過程采用了改進(jìn)型無逆BM算法—RiBM。通過計算機(jī)仿真以及測試分析,證明該譯碼器可以穩(wěn)定可靠地實現(xiàn)譯碼功能,在盡可能節(jié)約硬件資源的同時滿足了高速處理的需要。
[1]王新梅,肖國鎮(zhèn).糾錯碼-原理與方法[M].西安:西安電子科技大學(xué)出版社,2001.
[2]DVB Documents A081.Transmission System for handheld Terminal(DVB-H),2004(6).
[3]Sarwate D V,Shanbhag N R.High-speed architectures for Reed-Solomon decoders.IEEE Transactions on Very Large Integration(VLSI)System.2001,9(5):641-655.
[4]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學(xué)出版社,2002.