APP下载

RS码的实际应用及编译码器设计实现

2013-09-17李文雯

通信技术 2013年1期
关键词:码字译码校验

宋 君, 文 磊, 雷 菁, 李文雯

(国防科学技术大学 电子科学与工程学院,湖南 长沙 410073)

0 引言

自从香农定理提出以后,人们一直在寻找一种性能好、实现简单的纠错码,但是事实是,性能好的码字其编码复杂度越高,难于在实际的设备中使用。在众多的纠错码中,RS码已被很多领域证明是一种极具优势的好码,由于 RS码是一种线性分组码,因此可以纠正随机差错,RS码又是一种多进制码,所以在纠正突发差错的能力,RS码是一种循环码,实现简单,这些优点使得 RS码是最优的线性分组码,也是很多领域中应用具有很好前景的码字,目前 RS码在智能探测车通信模块中、水声通信技术、低频导航系统、超短波通信、车载无线通信、空空导航遥测系统、IPTV(网络电视)以及现代数字电子技术领域中都有应用,并且已被验证过在应用中具有非常良好的性能,能够更好的完成预达目的,所以 RS码将在未来具有很强的应用优势和发展空间。

1 RS码编码实现

图1 多项式除法电路

基于如上的除法电路,可以得到如图 2的 RS码编码电路。

图2 RS码编码电路

具体的编码过程如下:

1)2t个移位寄存器的初态全为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码编码信息序列所对应的校验元。将原始信息序列与校验元排列为系统码的形式,即可得到一个RS码的完整的码字[2]。

基于以上内容,编程实现了RS码的编码函数,并将其与MATLAB软件中内置的RS码编码函数进行比较,结果如表1所示。

由表2可以看出,自编函数的编码结果与内置函数的编码结果完全相同。

图3 RS码校验元计算流程

表1 两种编码函数的编码结果

2 RS码译码的BM算法实现

在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算法流程

3 仿真比较分析

在对基本理论知识加以掌握和了解的基础上,使用MATLAB软件构建了RS码编译码器的仿真平台,并对RS码的纠错性能进行了仿真。

首先将自编的RS码译码函数性能与MATLAB内置 RS码译码函数性能相比较。设 5m= ,码长,纠错能力为 3t= ,发送端发送的为全0码字,采用BPSK调制方式,模拟信号在二元对称信道上传输,信道的信噪比从4 dB至7 dB递增。两种译码实现的性能如图5示。

由图5曲线可以看出,在相同信道条件下,两种译码实现的误码率在数量级上基本保持一致。因此得知,自编RS码译码函数性能与MATLAB内置RS码译码函数性能大致相同。但在实验中发现,尽管在性能上保持大致相同,但是自编函数在运算速度上不及MATLAB内置函数[7]。

图5 3m= 时两种译码实现性能的比较图

图6 RS码纠错性能

由图中曲线可以看出,传输信号的误码率总体上随信噪比的增加而降低。在高信噪比的条件下,RS码具有较为理想的纠错效果,能够保证接收到的码字在纠错后具有较低的误码率。但在低信噪比条件下,由于噪声的增强,可能出现误码个数超出纠错能力的情况。在这种情况下,RS码不仅不能实现纠错,甚至在误码个数超过码的最小距离时,可能将接收到的码字译成另一个与原始码字完全不同的码,从而造成更大的误差。同时也可以看出,在码长相同的条件下,t值越大码的纠错性能越好。在具体工程实践中,需要根据信道的实际情况和对通信质量的具体要求,选择合适的码形[9]。

4 结语

本文主要介绍了 RS码的实际应用和编译码器的设计实现。在编码方面,首先介绍了 RS码编码的基本原理,然后引入了使用生成多项式 ()g x编码的n k- 级编码器,它基于多项式的除法电路构建,能够生成所需要的系统码。在译码方面,详细分析了 RS码译码算法中较为典型、也是在本项目中使用的BM算法,包括基本原理、具体步骤、算法流程等几个方面。最后,依托 MATLAB软件搭建的RS码编译码器仿真平台对RS码的纠错性能进行分析,得到相应的结论。在此过程中,所使用的仿真函数都是自编函数,并将自编函数的性能与MATLAB软件内置函数的性能进行了比较。

[1] 樊昌信,曹丽娜.通信原理[M].第6版.北京:国防工业出版社,2008.

[2] 郑林华.通信系统[M].长沙:国防科技大学出版社,2005.

[3] Shannon C E.A Mathematical Theory of Communication[J].Bell Syst.Tech. 1948(27):379-423,623-656.

[4] 闻成年,杨晓静.基于码根统计的 RS码盲识别[J].通信对抗,2010(04):18-21.

[5] 戚林,郝士琪,王磊,等.一种 RS码快速识别方法[J].电路与系统学报,2011(16):70-76.

[6] 唐朝京,雷菁.信息论与编码基础[M].长沙:国防科学技术大学出版社,2003.

[7] Shu Lin,何元智.差错控制编码[M].北京:机械工业出版社,2007.

[8] MORELOS-ZARAGOZA R H.纠错编码的艺术[M].第2版.北京:北京交通大学出版社,2007.

[9] 张永光,楼才义.信道编码及其识别分析[M].北京:电子工业出版社,2010.

[10] 陆佩忠,宋国文.级连码在卫星通信中的应用与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.

猜你喜欢

码字译码校验
使用Excel朗读功能校验工作表中的数据
基于扩大候选码元范围的非二元LDPC加权迭代硬可靠度译码算法
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
放 下
数据链系统中软扩频码的优选及应用
放下
炉温均匀性校验在铸锻企业的应用
电子式互感器校验方式研究
LDPC 码改进高速译码算法