宋 君, 文 磊, 雷 菁, 李文雯
(國防科學技術大學 電子科學與工程學院,湖南 長沙 410073)
自從香農定理提出以后,人們一直在尋找一種性能好、實現簡單的糾錯碼,但是事實是,性能好的碼字其編碼復雜度越高,難于在實際的設備中使用。在眾多的糾錯碼中,RS碼已被很多領域證明是一種極具優(yōu)勢的好碼,由于 RS碼是一種線性分組碼,因此可以糾正隨機差錯,RS碼又是一種多進制碼,所以在糾正突發(fā)差錯的能力,RS碼是一種循環(huán)碼,實現簡單,這些優(yōu)點使得 RS碼是最優(yōu)的線性分組碼,也是很多領域中應用具有很好前景的碼字,目前 RS碼在智能探測車通信模塊中、水聲通信技術、低頻導航系統(tǒng)、超短波通信、車載無線通信、空空導航遙測系統(tǒng)、IPTV(網絡電視)以及現代數字電子技術領域中都有應用,并且已被驗證過在應用中具有非常良好的性能,能夠更好的完成預達目的,所以 RS碼將在未來具有很強的應用優(yōu)勢和發(fā)展空間。
圖1 多項式除法電路
基于如上的除法電路,可以得到如圖 2的 RS碼編碼電路。
圖2 RS碼編碼電路
具體的編碼過程如下:
1)2t個移位寄存器的初態(tài)全為0,開關0閉合,開關1打至a端。信息組以高位先入的順序進入電路,一路直接經編碼輸出端輸出,另一路送入 ()g x的除法電路,即完成了的運算。
2)k次移位后,信息組全部輸出,同時它也全部進入除法電路完成相應的除法運算。移位寄存器中存儲的數值即為余式 ()r x的系數,即 RS碼的校驗元。
3)開關0打開,開關1打至b端,移位寄存器中的校驗元經過2t次移位后跟在信息組后面輸出,形成一個已完成編碼的完整碼字。
4)開關0閉合,開關1打至a端,送入下一個信息組重復上述過程[1]。
根據以上電路設計實現 RS碼編碼器。設某個RS碼的信息元個數為k,校驗元個數為2t,生成多項式為代表編碼電路中的移位寄存器,其中則校驗元的計算流程如圖3所示。
在完成以上的流程后,2t個移位寄存器中存儲的結果即為 RS碼編碼信息序列所對應的校驗元。將原始信息序列與校驗元排列為系統(tǒng)碼的形式,即可得到一個RS碼的完整的碼字[2]。
基于以上內容,編程實現了RS碼的編碼函數,并將其與MATLAB軟件中內置的RS碼編碼函數進行比較,結果如表1所示。
由表2可以看出,自編函數的編碼結果與內置函數的編碼結果完全相同。
圖3 RS碼校驗元計算流程
表1 兩種編碼函數的編碼結果
在BCH碼和RS碼的譯碼問題主要歸結于一個關鍵方程的求解,即錯誤位置多項式的求解。各種譯碼算法實際上也是錯誤位置多項式的求解而展開。由于BM算法適合于軟件實現,因此被應用于本文,并在以下進行詳細深入的討論。
設上文中提到的錯誤位置多項式有如下形式:
很顯然可以看出,錯誤位置數就是()xσ根的倒數[3]。
下面引入表征()xσ的系數和校正子分量之間關系的方程,即廣義牛頓恒等式:
設第μ次迭代確定的最低次數多項式為()()xμ σ =,使其滿足如下lμμ-個恒等式:
重復以上步驟,直至完成2t步迭代。在第2t步迭代中,得到:
當碼元中的錯誤數目不超過t時,這個多項式就是所求的錯誤位置多項式[4]。
如果 0dμ= ,設;如果 0dμ≠ ,需要對做出相應的修正。先返回第μ次迭代前的各步,確定多項式()()xρ σ ,使得 0dρ≠ 且 lρρ-具有最大值,lρ表示多項式()()xρ σ 的次數,然后令:
在非計算機運算中,()xσ迭代過程表可以幫助更好地理解BM算法的迭代過程,也可以避免因較多的運算而造成的計算錯誤。()xσ迭代過程表如表2所示。
表2 迭代過程表
表2 迭代過程表
μ()xσdμ lμlμ μ--1 1 1 0 -1 0 1 1S 0 0 1 2?2 t
編程實現BM算法的具體步驟如下:
1)初始化。令(1)()1xσ-=,11d-=,10l-=;
3)計算1dμ+進行下一次迭代,重復步驟2直至
BM算法的流程圖如圖4示。
圖4 BM算法流程
在對基本理論知識加以掌握和了解的基礎上,使用MATLAB軟件構建了RS碼編譯碼器的仿真平臺,并對RS碼的糾錯性能進行了仿真。
首先將自編的RS碼譯碼函數性能與MATLAB內置 RS碼譯碼函數性能相比較。設 5m= ,碼長,糾錯能力為 3t= ,發(fā)送端發(fā)送的為全0碼字,采用BPSK調制方式,模擬信號在二元對稱信道上傳輸,信道的信噪比從4 dB至7 dB遞增。兩種譯碼實現的性能如圖5示。
由圖5曲線可以看出,在相同信道條件下,兩種譯碼實現的誤碼率在數量級上基本保持一致。因此得知,自編RS碼譯碼函數性能與MATLAB內置RS碼譯碼函數性能大致相同。但在實驗中發(fā)現,盡管在性能上保持大致相同,但是自編函數在運算速度上不及MATLAB內置函數[7]。
圖5 3m= 時兩種譯碼實現性能的比較圖
圖6 RS碼糾錯性能
由圖中曲線可以看出,傳輸信號的誤碼率總體上隨信噪比的增加而降低。在高信噪比的條件下,RS碼具有較為理想的糾錯效果,能夠保證接收到的碼字在糾錯后具有較低的誤碼率。但在低信噪比條件下,由于噪聲的增強,可能出現誤碼個數超出糾錯能力的情況。在這種情況下,RS碼不僅不能實現糾錯,甚至在誤碼個數超過碼的最小距離時,可能將接收到的碼字譯成另一個與原始碼字完全不同的碼,從而造成更大的誤差。同時也可以看出,在碼長相同的條件下,t值越大碼的糾錯性能越好。在具體工程實踐中,需要根據信道的實際情況和對通信質量的具體要求,選擇合適的碼形[9]。
本文主要介紹了 RS碼的實際應用和編譯碼器的設計實現。在編碼方面,首先介紹了 RS碼編碼的基本原理,然后引入了使用生成多項式 ()g x編碼的n k- 級編碼器,它基于多項式的除法電路構建,能夠生成所需要的系統(tǒng)碼。在譯碼方面,詳細分析了 RS碼譯碼算法中較為典型、也是在本項目中使用的BM算法,包括基本原理、具體步驟、算法流程等幾個方面。最后,依托 MATLAB軟件搭建的RS碼編譯碼器仿真平臺對RS碼的糾錯性能進行分析,得到相應的結論。在此過程中,所使用的仿真函數都是自編函數,并將自編函數的性能與MATLAB軟件內置函數的性能進行了比較。
[1] 樊昌信,曹麗娜.通信原理[M].第6版.北京:國防工業(yè)出版社,2008.
[2] 鄭林華.通信系統(tǒng)[M].長沙:國防科技大學出版社,2005.
[3] Shannon C E.A Mathematical Theory of Communication[J].Bell Syst.Tech. 1948(27):379-423,623-656.
[4] 聞成年,楊曉靜.基于碼根統(tǒng)計的 RS碼盲識別[J].通信對抗,2010(04):18-21.
[5] 戚林,郝士琪,王磊,等.一種 RS碼快速識別方法[J].電路與系統(tǒng)學報,2011(16):70-76.
[6] 唐朝京,雷菁.信息論與編碼基礎[M].長沙:國防科學技術大學出版社,2003.
[7] Shu Lin,何元智.差錯控制編碼[M].北京:機械工業(yè)出版社,2007.
[8] MORELOS-ZARAGOZA R H.糾錯編碼的藝術[M].第2版.北京:北京交通大學出版社,2007.
[9] 張永光,樓才義.信道編碼及其識別分析[M].北京:電子工業(yè)出版社,2010.
[10] 陸佩忠,宋國文.級連碼在衛(wèi)星通信中的應用與RS碼的譯碼[J].通信技術,1992(03):41-49.
[11] 張雪竹,周治中,史治平,等.RS碼短碼的軟判決方法[J].通信技術,2003(05):41-43.
[12] 嚴玉平,劉玉君.基于RS碼的改進McEliece公鑰密碼體制[J].信息安全與通信保密,2007(07):115-116.
[13] 李健,張會生.基于FPGA實現RS(255,239)編碼器[J].信息安全與通信保密,2006(12):78-79,82.