微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > RS编译码的一种硬件解决方案

RS编译码的一种硬件解决方案

时间:06-21 来源:作者:李红军 杜兴民 王兴华 来源:《电子技术应用》 点击:

差错控制编码技术对改善误码率、提高通信的可靠性具重要作用。RS码既可以纠正随机错误,又可以纠正突发错误,具有很强的纠错能力,在通信系统中应用广泛。由于RS码的译码复杂度高,数字运算量大,常见的硬件及软件译码方案大多不能满足高速率的传输需求,一般适用于10Mbps以下。本文提出的欧氏算法和频谱结构分析相结合的RS硬件解码方案,适用于FPGA单片实现,速率高、延迟小、通用性强、使用灵活。笔者在FPGA芯片上实现了GF(2 8)上符号速率为50Mbps的流式解码方案,最大延时为640ns,参数可以根据需要灵活设置。

1 RS码的结构

码字长度为N=q-1(q=2i),生成多项式为,\\

αi∈GF(q)的RS码有最小码距δ=2t+1,能够纠正t个随机或突发错误[1]。本文列举的方案测试中采用的RS码主要参数为N=255、m0=0、t=8,其中GF(2 8)的生成多项式为g(x)=x8+x4+x3+x2+1。由于RS码的编码逻辑结构比较简单,文中仅给出仿真结果。

2 RS码的译码算法

RS译码算法一般分为三步:伴随式计算、关键方程获得和错误图样的求解。其中关键方程的获得是RS译码中最困难、最为关键的一步。

在利用伴随式求解关键方程时,BM算法和Euclidean(欧氏)算法是两种较好的选择。BM算法涉及大量的变量存储和复杂的逻辑控制,适用于软件编程而不适合硬件实现。欧氏算法数据存储量少、控制便捷,适合硬件实现。且采用欧氏算法确定关键方程所需时间与错误个数成正比,因此从处理时间上考虑,欧氏算法也是较好的选择。

在获得关键方程后,采用时域处理方法,需要大量的运算单元和控制电路,在硬件实现中是不可取的。而采用频谱结构分析方法,利用最短线性移位寄存器综合及离散傅氏逆变换进行处理,逻辑简单、耗时少,适合硬件实现。虽然在傅氏变换时需要较多的逻辑单元,但对GF(2n)在n<10的情况下,变换域译码器要比时域译码器简单得多。因而本文提出欧氏算法和频谱结构分析相结合的方案,并在实践中获得了较好的效果。

Euclidean算法[3]步骤如下:

\

(2)按所列方法进行迭代

\

3 方案流程

方案流程框图如图1所示。

\

3.1 伴随式S0,S1,…,S2t-1的计算

令r1,r2,…,rn为接收到的RS码字,根据系统码监督矩阵的特性,可构造如图2所示伴随式计算电路Si=(((r1αi+r2)αi+r3)αi…+rn,从而实际伴随式序列的计算。

\

3.2 利用伴随式确定关键方式

Euclidean算法的难点主工在于迭代计算过程中存在的被除数多项式和除数多项式长度的不确定性,使每次计算中产生的商序列的长度不等,以及因此可能涉及到的不定长多项式的相乘和相加问题,增加了硬件设计的难度。系统采用了嵌套双循环的方法,利用"时钟产生2'控制外循,'时钟产生1'控制内循环,从而优化了算法,得到了问题的解决方案。在获得伴随式的基础上,图3电路可具体完成Euclidean算法对关键方程的求解σ(x)=σtxt+σt-1xt-1+…+σ1x+1。

\

3.3 利用最短线性移位寄存器综合和离散傅氏变换获取错误图样 在得到关键方程后,首先应进行错误位置(关键方程的根)的确定,这样可减小电路的规模;利用钱搜索[1](工程上求解σ(x)根的实用方法)的方法可以简捷的确定错误位置。然后,启动最短线性移位寄存器综合和离散傅氏逆变换,经过N次(运算所在域的长度)迭代,即可求得对应各个错误位置的错误图样,如图4所示。用错误图样对接收码字进行纠错,就可得到正确的信息序列。

3.4 RS编译码在FPGA上的实现

有限域的乘法、加法运算单元和各模块的控制逻辑设计是系统成功的关键。涉及有限域的各个运算单元的运算速度制约了译码器的速度,而控制逻辑引导了译码的流程。硬件电路的软件开发工具给设计复杂电路提供了简捷思路。系统采用了QUARTUS与第三方软件相结合的方法,用VHDL语言设计了大部分功能模块。特别是在乘法器设计中,乘数确定、被乘数不定的有限域乘法器,经逻辑综合和优化设计后,运算速度可分别在6.8ns和11.6ns内完成,完全可以满足系统符号速率50Mbps的要求。应该指出,系统速度的进一步提高受到求逆运算的限制,求逆运算没有明确的数学结构(通常采用查表的方法),这是制约运算速度的瓶颈。但针对流式译码算法,上述结构已能满足要求。

4 仿真结果

4.1 编码器的仿真

编码器仿真结果 图5 图6 图7

仿真的时钟频率为50MHz,在EN为高电平时输入信息有效。为简单起见,采用系统码的缩短型,即信息为(00,00,…,00,02,01,02).编码器的仿真结果如图5所示。其中,IN为输入信息,CLK为系统时钟

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top