RS码的性能分析与仿真

2020-10-09 11:07鲁芳旭刘翠海
数字技术与应用 2020年8期
关键词:信道编码

鲁芳旭 刘翠海

摘要:主要介绍RS码的编译码原理,并基于Matlab进行仿真实现,同时构建了含有BPSK调制的通信系统,对有无编码的通信系统进行仿真和性能分析,发现该码型对通信系统的传输特性有一定程度的改善。通過比较分析,对该码型的纠错性能有了更全面的认识,有利于更好的研究和应用RS码。

关键词:信道编码;RS码;纠错性能

中图分类号:TN911.22 文献标识码:A 文章编号:1007-9416(2020)08-0025-03

0 引言

RS码是一类纠错能力很强的多进制BCH码[1],其纠错能力和编码效率在线性分组码中是最高的。RS码特别适合用于多进制调制的场合[2],同样适用于在衰落信道中纠正突发性错码[3]。与此同时,RS码能用来构造其他码类,如级联码。由于其具有以上优良性能,目前已被广泛应用在各种通信系统和计算机存储系统中。

1 RS码的编译码原理及数学模型构建

RS码是一种特殊的多进制BCH码。设p为素数,q=pm,那么由伽罗华域GF(q)产生的码就称作q进制码。二进制BCH码的码长为n=2m-1,若要纠正t个错码,则需要2t个监督码元。同理在q进制码中,码长为n=qs-1,若要纠正t个错码,则需要2st个监督码元,当s=1时的q元BCH码称为RS码,属于非二元BCH码。

1.1 RS码的编码

RS码是循环码的一种,因此其编码方式与一般循环码的编码方式一致。

一个(n,k)RS码的生成多项式g(x)为:

g(x)=(x-α)(x-α2)…(x-a2t)=(x-αi)

其中αi是伽罗华域GF(2m)={0,α0,α1,…,α2m-2}中的一个元素,t为RS码能够纠正的错码个数。

信息多项式m(x)为:

m(x)=mk-1xk-1+mk-2xk-2+…+m1x1+m0

用m(x)除以g(x),所得余式为校验多项式h(x),将h(x)置于m(x)之后,即生成了RS码。

编码后的码字多项式c(x)为:

c(x)=xn-km(x)+h(x)=xn-km(x)+[xn-km(x)]modg(x)

1.2 RS码的译码

RS码是一种非二元循环码,它不再具备特征为2的域运算等性质[4],本文RS码译码算法基于PGZ译码算法,主要分为以下4步:

1.2.1 计算伴随式sk

RS码的伴随式是接收码字r(x)除以生成式g(x)所得的余式。对于RS码共有2t个伴随式。

假设r(x)=r0+r1x+…+rnxn-1

则错误图样为:

e(x)=r(x)-c(x)=e0+e1x+…+en-1xn-1

设e(x)含有v个错误(非零元素)且分别位于 ,则e(x)=++…+

RS码的2t个伴随式通过把αi代入r(x)得出,即:

若sk=0,则认为接收无误,否则由sk找出错误图样。

1.2.2 计算错误位置多项式σ(x)

由于上式直接求解比较困难,故转化为-组线性方程进行求解。令Xi=αji(i=1,2,…,v)表示第i个错误位置数,e1,e2,…,ev表示错误值。定义错误位置多项式σ(x),它的根是错误位置数的倒数,即:

σ(x)=(1+X1x)(1+X2x)…(1+Xvx)=σ0+σ1x+ σ2x2+…+σvxv

计算σ(x)的通用方法是BM迭代算法,通过Matlab编程即可实现。

1.2.3 确定错误位置

计算得到上式的系数后,令σ(x)=0求得其根,就可以得到错误位置。由于分解因式的复杂性,一般通过钱氏搜索法求解σ(x)的根,得到错误位置数,确定出错误位置。

接受码字由高位至低位逐位译码,为了译rn-1,码器测试αn-1是否为错误位置数,也就是检查其倒数α是否为σ(x)的根,若α是σ(x)的根,则:

1+σ1α+σ2α2+…+σvαv=0

因此,译码器计算σ1α,σ2α2,…,σvαv,若满足上式,则αn-1为错误位置数,rn-1为错误码元,这样就由错误位置数确定了错误位置。

1.2.4 计算错误数值

上一步确定了错误位置,接下来需要计算错误数值,设z(x)=1+(s1+σ1)x+(s1+σ1s1+σ2)x2+…+(sv+σ1sv-1+ …+σv-1s1+σv)xv

求解后根据错误位置和错误数值得出错误图样e(x),根据发送码字c(x)=e(x)+r(x),完成译码。

2 仿真实现

2.1 伽罗华域及其基本运算的仿真实现

前面介绍的RS码的编译码数学模型都是在伽罗华域内进行,因此在仿真实现中首先要构造伽罗华域。由于RS码的编译码进行了大量多项式元素的加法、乘法、倒数运算,这些运算均在伽罗华域GF(2m)中进行,因此其加法运算对应的是模2运算,其乘法运算对应的是指数模2m相加,上述运算可以通过编程实现。

2.2 RS码编码的仿真实现

编码方式选择RS(15,11),利用11个符号得到长度为n=15能纠正t=2个错误的编码,码元符号取自域GF(24),即m=4。其编码的仿真实现调用了Matab函数polydiv_rs,该函数的矢量参数表示多项式各项的系数,按照多项式次数从低到高的顺序排列。

2.3 RS码译码的仿真实现

相较于编码,RS 码的译码过程较为复杂,通过前文介绍已知主要分为四个步骤:(1)计算伴随式sk;(2)计算错误位置多项式σ(x);(3)确定错误位置;(4)计算错误数值。其中第(2)步的实现基于BM算法,第(3)步的实现基于钱氏搜索法,均可通过Matlab编程来完成。

2.4 仿真结果

本文选择了二进制相位调制(BPSK),用高斯信号源仿真噪声,在该通信系统下,观察有无RS码两种条件下的信噪比-误码率(SNR-BER)曲线图,得到仿真结果由图2所示。

3 结语

本文较为详尽的介绍了RS码的编译码原理,通过构建数学模型,利用Matlab平台完成了RS码编译码的仿真实现。与此同时,构建了含有BPSK调制的通信系统,通过对有无RS码的通信系统进行仿真和性能分析,发现在相同SNR条件下,有RS码的BER明显低于无RS码的BER,说明RS码能有效提高信号传输的可靠性,这为合理设计RS码的编译码方案提供了理论基础,更为进一步研究和利用RS码的抗突发干扰能力提供了有益参考。

参考文献

[1] 樊昌信,曹丽娜.通信原理(第7版)[M].北京:国防工业出版社.2014:375.

[2] 刘翠海,温东,姜波.无线电通信系统仿真及军事应用[M].北京:国防工业出版社,2013:141.

[3] 郑相全,段文.Reed-Solomon码性能增强译码算法[J].无线电工程,2019,49(2):128-132.

[4] 郭洁,唐磊.Reed-Solomon码的编译码实现及仿真[J].中国科技纵横,2009(11):622-625.

猜你喜欢
信道编码
如何提升计算机在信道编码的处理应用效率
一种新型数字交织技术的设计与仿真
基于码长近似度的极化码性能分析
一种适用于LT码的选择编码算法
5G信道编码技术相关分析
简述简易循环码编译码器设计
制定数字电视地面广播传输系统帧结构、信道编码和调制的标准的目的和意义
一种带有交织器的Polar码串行级联算法研究
卫星数字电视信号部分信道编码的软件实现