魯芳旭 劉翠海
摘要:主要介紹RS碼的編譯碼原理,并基于Matlab進(jìn)行仿真實(shí)現(xiàn),同時(shí)構(gòu)建了含有BPSK調(diào)制的通信系統(tǒng),對(duì)有無(wú)編碼的通信系統(tǒng)進(jìn)行仿真和性能分析,發(fā)現(xiàn)該碼型對(duì)通信系統(tǒng)的傳輸特性有一定程度的改善。通過(guò)比較分析,對(duì)該碼型的糾錯(cuò)性能有了更全面的認(rèn)識(shí),有利于更好的研究和應(yīng)用RS碼。
關(guān)鍵詞:信道編碼;RS碼;糾錯(cuò)性能
中圖分類(lèi)號(hào):TN911.22 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2020)08-0025-03
0 引言
RS碼是一類(lèi)糾錯(cuò)能力很強(qiáng)的多進(jìn)制BCH碼[1],其糾錯(cuò)能力和編碼效率在線(xiàn)性分組碼中是最高的。RS碼特別適合用于多進(jìn)制調(diào)制的場(chǎng)合[2],同樣適用于在衰落信道中糾正突發(fā)性錯(cuò)碼[3]。與此同時(shí),RS碼能用來(lái)構(gòu)造其他碼類(lèi),如級(jí)聯(lián)碼。由于其具有以上優(yōu)良性能,目前已被廣泛應(yīng)用在各種通信系統(tǒng)和計(jì)算機(jī)存儲(chǔ)系統(tǒng)中。
1 RS碼的編譯碼原理及數(shù)學(xué)模型構(gòu)建
RS碼是一種特殊的多進(jìn)制BCH碼。設(shè)p為素?cái)?shù),q=pm,那么由伽羅華域GF(q)產(chǎn)生的碼就稱(chēng)作q進(jìn)制碼。二進(jìn)制BCH碼的碼長(zhǎng)為n=2m-1,若要糾正t個(gè)錯(cuò)碼,則需要2t個(gè)監(jiān)督碼元。同理在q進(jìn)制碼中,碼長(zhǎng)為n=qs-1,若要糾正t個(gè)錯(cuò)碼,則需要2st個(gè)監(jiān)督碼元,當(dāng)s=1時(shí)的q元BCH碼稱(chēng)為RS碼,屬于非二元BCH碼。
1.1 RS碼的編碼
RS碼是循環(huán)碼的一種,因此其編碼方式與一般循環(huán)碼的編碼方式一致。
一個(gè)(n,k)RS碼的生成多項(xiàng)式g(x)為:
g(x)=(x-α)(x-α2)…(x-a2t)=(x-αi)
其中αi是伽羅華域GF(2m)={0,α0,α1,…,α2m-2}中的一個(gè)元素,t為RS碼能夠糾正的錯(cuò)碼個(gè)數(shù)。
信息多項(xiàng)式m(x)為:
m(x)=mk-1xk-1+mk-2xk-2+…+m1x1+m0
用m(x)除以g(x),所得余式為校驗(yàn)多項(xiàng)式h(x),將h(x)置于m(x)之后,即生成了RS碼。
編碼后的碼字多項(xiàng)式c(x)為:
c(x)=xn-km(x)+h(x)=xn-km(x)+[xn-km(x)]modg(x)
1.2 RS碼的譯碼
RS碼是一種非二元循環(huán)碼,它不再具備特征為2的域運(yùn)算等性質(zhì)[4],本文RS碼譯碼算法基于PGZ譯碼算法,主要分為以下4步:
1.2.1 計(jì)算伴隨式sk
RS碼的伴隨式是接收碼字r(x)除以生成式g(x)所得的余式。對(duì)于RS碼共有2t個(gè)伴隨式。
假設(shè)r(x)=r0+r1x+…+rnxn-1
則錯(cuò)誤圖樣為:
e(x)=r(x)-c(x)=e0+e1x+…+en-1xn-1
設(shè)e(x)含有v個(gè)錯(cuò)誤(非零元素)且分別位于 ,則e(x)=++…+
RS碼的2t個(gè)伴隨式通過(guò)把αi代入r(x)得出,即:
若sk=0,則認(rèn)為接收無(wú)誤,否則由sk找出錯(cuò)誤圖樣。
1.2.2 計(jì)算錯(cuò)誤位置多項(xiàng)式σ(x)
由于上式直接求解比較困難,故轉(zhuǎn)化為-組線(xiàn)性方程進(jìn)行求解。令Xi=αji(i=1,2,…,v)表示第i個(gè)錯(cuò)誤位置數(shù),e1,e2,…,ev表示錯(cuò)誤值。定義錯(cuò)誤位置多項(xiàng)式σ(x),它的根是錯(cuò)誤位置數(shù)的倒數(shù),即:
σ(x)=(1+X1x)(1+X2x)…(1+Xvx)=σ0+σ1x+ σ2x2+…+σvxv
計(jì)算σ(x)的通用方法是BM迭代算法,通過(guò)Matlab編程即可實(shí)現(xiàn)。
1.2.3 確定錯(cuò)誤位置
計(jì)算得到上式的系數(shù)后,令σ(x)=0求得其根,就可以得到錯(cuò)誤位置。由于分解因式的復(fù)雜性,一般通過(guò)錢(qián)氏搜索法求解σ(x)的根,得到錯(cuò)誤位置數(shù),確定出錯(cuò)誤位置。
接受碼字由高位至低位逐位譯碼,為了譯rn-1,碼器測(cè)試αn-1是否為錯(cuò)誤位置數(shù),也就是檢查其倒數(shù)α是否為σ(x)的根,若α是σ(x)的根,則:
1+σ1α+σ2α2+…+σvαv=0
因此,譯碼器計(jì)算σ1α,σ2α2,…,σvαv,若滿(mǎn)足上式,則αn-1為錯(cuò)誤位置數(shù),rn-1為錯(cuò)誤碼元,這樣就由錯(cuò)誤位置數(shù)確定了錯(cuò)誤位置。
1.2.4 計(jì)算錯(cuò)誤數(shù)值
上一步確定了錯(cuò)誤位置,接下來(lái)需要計(jì)算錯(cuò)誤數(shù)值,設(shè)z(x)=1+(s1+σ1)x+(s1+σ1s1+σ2)x2+…+(sv+σ1sv-1+ …+σv-1s1+σv)xv
求解后根據(jù)錯(cuò)誤位置和錯(cuò)誤數(shù)值得出錯(cuò)誤圖樣e(x),根據(jù)發(fā)送碼字c(x)=e(x)+r(x),完成譯碼。
2 仿真實(shí)現(xiàn)
2.1 伽羅華域及其基本運(yùn)算的仿真實(shí)現(xiàn)
前面介紹的RS碼的編譯碼數(shù)學(xué)模型都是在伽羅華域內(nèi)進(jìn)行,因此在仿真實(shí)現(xiàn)中首先要構(gòu)造伽羅華域。由于RS碼的編譯碼進(jìn)行了大量多項(xiàng)式元素的加法、乘法、倒數(shù)運(yùn)算,這些運(yùn)算均在伽羅華域GF(2m)中進(jìn)行,因此其加法運(yùn)算對(duì)應(yīng)的是模2運(yùn)算,其乘法運(yùn)算對(duì)應(yīng)的是指數(shù)模2m相加,上述運(yùn)算可以通過(guò)編程實(shí)現(xiàn)。
2.2 RS碼編碼的仿真實(shí)現(xiàn)
編碼方式選擇RS(15,11),利用11個(gè)符號(hào)得到長(zhǎng)度為n=15能糾正t=2個(gè)錯(cuò)誤的編碼,碼元符號(hào)取自域GF(24),即m=4。其編碼的仿真實(shí)現(xiàn)調(diào)用了Matab函數(shù)polydiv_rs,該函數(shù)的矢量參數(shù)表示多項(xiàng)式各項(xiàng)的系數(shù),按照多項(xiàng)式次數(shù)從低到高的順序排列。
2.3 RS碼譯碼的仿真實(shí)現(xiàn)
相較于編碼,RS 碼的譯碼過(guò)程較為復(fù)雜,通過(guò)前文介紹已知主要分為四個(gè)步驟:(1)計(jì)算伴隨式sk;(2)計(jì)算錯(cuò)誤位置多項(xiàng)式σ(x);(3)確定錯(cuò)誤位置;(4)計(jì)算錯(cuò)誤數(shù)值。其中第(2)步的實(shí)現(xiàn)基于BM算法,第(3)步的實(shí)現(xiàn)基于錢(qián)氏搜索法,均可通過(guò)Matlab編程來(lái)完成。
2.4 仿真結(jié)果
本文選擇了二進(jìn)制相位調(diào)制(BPSK),用高斯信號(hào)源仿真噪聲,在該通信系統(tǒng)下,觀(guān)察有無(wú)RS碼兩種條件下的信噪比-誤碼率(SNR-BER)曲線(xiàn)圖,得到仿真結(jié)果由圖2所示。
3 結(jié)語(yǔ)
本文較為詳盡的介紹了RS碼的編譯碼原理,通過(guò)構(gòu)建數(shù)學(xué)模型,利用Matlab平臺(tái)完成了RS碼編譯碼的仿真實(shí)現(xiàn)。與此同時(shí),構(gòu)建了含有BPSK調(diào)制的通信系統(tǒng),通過(guò)對(duì)有無(wú)RS碼的通信系統(tǒng)進(jìn)行仿真和性能分析,發(fā)現(xiàn)在相同SNR條件下,有RS碼的BER明顯低于無(wú)RS碼的BER,說(shuō)明RS碼能有效提高信號(hào)傳輸?shù)目煽啃?,這為合理設(shè)計(jì)RS碼的編譯碼方案提供了理論基礎(chǔ),更為進(jìn)一步研究和利用RS碼的抗突發(fā)干擾能力提供了有益參考。
參考文獻(xiàn)
[1] 樊昌信,曹麗娜.通信原理(第7版)[M].北京:國(guó)防工業(yè)出版社.2014:375.
[2] 劉翠海,溫東,姜波.無(wú)線(xiàn)電通信系統(tǒng)仿真及軍事應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2013:141.
[3] 鄭相全,段文.Reed-Solomon碼性能增強(qiáng)譯碼算法[J].無(wú)線(xiàn)電工程,2019,49(2):128-132.
[4] 郭潔,唐磊.Reed-Solomon碼的編譯碼實(shí)現(xiàn)及仿真[J].中國(guó)科技縱橫,2009(11):622-625.