CN104639282A - 通信系统中rs译码方法及其装置 - Google Patents
通信系统中rs译码方法及其装置 Download PDFInfo
- Publication number
- CN104639282A CN104639282A CN201310567447.2A CN201310567447A CN104639282A CN 104639282 A CN104639282 A CN 104639282A CN 201310567447 A CN201310567447 A CN 201310567447A CN 104639282 A CN104639282 A CN 104639282A
- Authority
- CN
- China
- Prior art keywords
- calculate
- odd
- iteration
- factor sigma
- todd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明涉及通信技术,公开了一种通信系统中RS译码方法及其装置。本发明中,通过将普通并行iBM算法串行分解化计算,在不影响连续译码的情况下,极大降低了求解关键方程所需的硬件资源,同时减小了路径延迟。此外,通过合并优化钱搜索和Forney算法过程,即将错误位置多项式和错误值多项式中的奇偶次项拆分,减少了控制逻辑和重复计算。因此,本发明的硬件资源消耗仅为普通iBM算法实现的1/2~1/3,最大时钟频率和有效数据带宽提升了约30%,能够使得高速信道纠错技术应用在低密度芯片上,降低了成本。
Description
技术领域
本发明涉及通信技术,特别涉及通信系统中RS译码方法及其装置。
背景技术
里德-索罗门编码(Reed-Solomon Code,简称“RS CODE”)是一种纠错能力非常强的非二进制编码方式,应用于信道纠错。里德-索罗门译码(Reed-Solomon Decode,简称“RS DECODE”)是对已编码的数据进行RS译码,通过一系列运算在数据包中完成检错、找错和纠错,对错误的数据进行纠正。有限域(GF Field)为线性分组码的数域,是一种应用在信道编码和密码学中循环群域,而RS编译码是定义在有限域的特殊编译码方法。
现场可编程门阵列(Field-Programmable Gate Array,简称“FPGA”)是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
在目前的专利和实际使用中,硬件实现高速RS译码通常采用的方法是:1)在中国专利CN200810241118.8中,采用Eculid欧几里德及其变种算法求解关键方程,得出错误位置和错误值多项式;2)在中国专利CN201010623809.1中,采用iBM算法或其改进算法(比如RiBM)并行求解关键方程;3)钱搜索和Forney算法分开计算。
然而,本发明的发明人发现,上述方法的缺点在于:1)Eculid欧几里德及其变种算法涉及到多项式阶数比较和系数交换,虽然此算法的RS译码速度非常快,但是极其消耗资源,不适用低密度FPGA芯片。2)普通iBM算法在关键方程求解时用到了乘加树结构,路径延迟较大。普通iBM算法虽然能够在很短的时钟周期里求解出关键方程,但是消耗的有限域加法器和有限域乘法器也很多,资源消耗多速度不够快。3)RiBM算法的若干组计算单元共用一组控制信号,在FPGA实现时会导致这组控制信号走线过长,反而不利于译码速度的提升,而且RiBM算法占资源非常多。RiBM算法求解关键方程适合ASIC专用集成电路实现。4)钱搜索和Forney算法独立计算,分别需要一组控制逻辑造成资源浪费。
发明内容
本发明的目的在于提供一种通信系统中RS译码方法及其装置,降低了硬件资源消耗、减小了路径延迟。
为解决上述技术问题,本发明的实施方式公开了一种通信系统中RS译码方法,包括以下步骤:
通过接收装置接收经RS码编码的数据,其中该RS码的纠错能力为t个码元;
对接收到的数据计算2t个伴随式Si以组成伴随多项式S(x),其中i=0~2t-1;
使用iBM算法,由伴随多项式S(x)求解关键方程S(x)σ(x)=ω(x)mod x2t,以得到错误位置多项式σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1,其中mod表示取余,在计算错误位置多项式σ(x)的第i次迭代中,分别在t+1个周期中依序计算中间变量σ(i)的t+1个系数σ0 (i)、σ1 (i)…σt (i),每个周期计算一个系数;
使用钱搜索和Forney算法从得到的错误位置多项式σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1计算出码元的错误位置和相应的错误幅度;
若存在码元错误,根据码元的错误位置和相应的错误幅度对接收的数据进行译码。
本发明的实施方式还公开了一种通信系统中RS译码装置,包括:
接收模块,用于接收经RS码编码的数据,其中该RS码的纠错能力为t个码元;
伴随式计算模块,用于对接收到的数据计算2t个伴随式Si以组成伴随多项式S(x),其中i=0~2t-1;
关键方程求解模块,该关键方程求解模块使用iBM算法,由伴随多项式S(x)求解关键方程S(x)σ(x)=ω(x)mod x2t,以得到错误位置多项式σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1,其中mod表示取余,在该关键方程求解模块计算错误位置多项式σ(x)的第i次迭代中,分别在t+1个周期中依序计算中间变量σ(i)的t+1个系数σ0 (i)、σ1 (i)…σt (i),每个周期计算一个系数;
钱搜索和Forney算法模块,该钱搜索和Forney算法模块使用钱搜索和Forney算法从得到的错误位置多项式σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1计算出码元的错误位置和相应的错误幅度;
纠错模块,用于若钱搜索和Forney算法模块确认存在码元错误,根据码元的错误位置和相应的错误幅度对接收的数据进行译码。
本发明实施方式与现有技术相比,主要区别及其效果在于:
在本发明中,通过将普通并行iBM算法串行分解化计算,在不影响连续译码的情况下,极大降低了求解关键方程所需的硬件资源,同时减小了路径延迟,能够使得高速信道纠错技术应用在低密度芯片上,降低了成本。
进一步地,在普通并行iBM算法中多处采用分时复用方式,能极大降低有限域乘法器的消耗,同时在每次计算时,避免了乘加树结构,显著降低了路径延迟并提升了芯片时钟频率。
进一步地,通过合并优化钱搜索和Forney算法过程,即将错误位置多项式和错误值多项式中的奇偶次项拆分,减小了控制逻辑和重复计算。
附图说明
图1是本发明第一实施方式中一种通信系统中RS译码方法的流程示意图;
图2是本发明第一实施方式中一种通信系统中RS译码方法的流程示意图;
图3是本发明第一实施方式中一种通信系统中RS译码方法中分解计算σ(x)和Δ的示意图;
图4是本发明第二实施方式中一种通信系统中RS译码方法中钱搜索和Forney算法的流程示意图;
图5是本发明第二实施方式中一种通信系统中RS译码方法中实现优化后的钱搜索的示意图;
图6是本发明第二实施方式中一种通信系统中RS译码方法中实现Forney算法的示意图;
图7是本发明第三实施方式中一种通信系统中RS译码装置的结构示意图;
图8是本发明第四实施方式中一种通信系统中RS译码装置中钱搜索和Forney算法模块的结构示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种通信系统中RS译码方法,图1是该通信系统中RS译码方法的流程示意图。如图1所示,该通信系统中RS译码方法包括以下步骤:
在步骤101中,通过接收装置接收经RS码编码的数据,其中该RS码的纠错能力为t个码元。
此后进入步骤102,对接收到的数据计算2t个伴随式Si以组成伴随多项式S(x),其中i=0~2t-1。
此后进入步骤103,使用iBM算法,由伴随多项式S(x)求解关键方程S(x)σ(x)=ω(x)mod x2t,以得到错误位置多项式σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1,其中mod表示取余,在计算错误位置多项式σ(x)的第i次迭代中,分别在t+1个周期中依序计算中间变量σ(i)的t+1个系数σ0 (i)、σ1 (i)…σt (i),每个周期计算一个系数。
具体地说,在步骤103中,在计算错误位置多项式σ(x)的第i次迭代中的第j个周期,其中j=0~t,当j=0时,由第i-1次迭代算出的系数σt (i-1)和辅助参数Δt (i)计算辅助参数Δ(i),设置辅助参数Δ0 (i+1)为0,并由第i-1次迭代算出的系数σ0 (i-1)计算σ(i)的系数σ0 (i);
当j=1~t时,由第i-1次迭代算出的系数σj (i-1)和辅助参数Δ(i)计算σ(i)的系数σj (i),并由系数σj-1 (i)和辅助参数Δj-1 (i+1)计算辅助参数Δj (i+1)。
此后进入步骤104,使用钱搜索和Forney算法从得到的错误位置多项式σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1计算出码元的错误位置和相应的错误幅度。
此后进入步骤105,判断是否存在码元错误。若存在,进入步骤106,否则结束本流程。
在步骤106中,根据码元的错误位置和相应的错误幅度对接收的数据进行译码。
此后结束本流程。
本实施方式中,通过将普通并行iBM算法串行分解化计算,在不影响连续译码的情况下,极大降低了求解关键方程所需的硬件资源,同时减小了路径延迟,能够使得高速信道纠错技术应用在低密度芯片上,降低了成本。
作为可选实施方式,在步骤103中,在计算错误值多项式ω(x)的第i次迭代中,分别在t个周期中依序计算中间变量ω(i)的t个系数ω0 (i)、ω1 (i)…ωt-1 (i),每个周期计算一个系数。
具体地说,在步骤103中,在计算错误值多项式ω(x)的第i次迭代中的第j个周期,其中j=0~t-1,当j=0时,由系数σ0计算ω(i)的系数ω0 (i);
当j=1~t-1时,由系数ωj-1 (i)和系数σj计算ω(i)的系数ωj (i)。
在普通并行iBM算法中多处采用分时复用方式,能极大降低有限域乘法器的消耗,同时在每次计算时,避免了乘加树结构,显著降低了路径延迟并提升了芯片时钟频率。
此外,可以理解,在本发明的各个实施方式中,可以只对错误位置多项式或只对错误值多项式采用分解串行操作,也可以对错误位置多项式和错误值多项式都采用分解串行操作。
在本发明的一个优选的例子中,以RS(255,239)译码系统的实现进行详细说明,但并不以此为限。
该RS(255,239)译码系统的纠错能力为每255个码元纠正8个码元错误。RS(255,239)码简记为RS(n,k,t),其中n=255,k=239,t=(n-k)/2。RS(255,239)连续译码共4级流水,如图2所示。
第一步对接收的码字(数据)计算2t个伴随式Si(i=0~2t-1),这2t个伴随式组成一个集合S(x),包含了抽象级的码元错误信息。当前仅当2t个伴随式全为零时,数据块才无错。
第二步求解关键方程是整个系统的核心,分为错误位置多项式σ(x)和错误值多项式ω(x)计算。这两个多项式满足如下的关键方程
σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt
ω(x)=ω0+ω1x+……+ωt-1xt-1
S(x)σ(x)=ω(x)modx2t(mod表示取余)
求解上述关键方程非常复杂,现有的iBM(inverseless Berlekamp Messy)求解过程如下:
step1:initial
D(-1)=0,δ=1,σ(-1)(x)=1,γ(-1)(x)=1,Δ(0)=S1
step2:i=0~2t-1
begin
σ(i)=δσ(i-1)(x)+Δ(i)xγ(i-1)(x);步骤1
if(Δ(i)=0or2D(i-1)≥i+1)
D(i)=D(i-1),δ=δ,γ(i)(x)=xγ(i-1)(x)
else
D(i)=i+1-D(i-1),δ=Δ(i),γ(i)(x)=σ(i-1)(x)
end
其中D、δ、γ、Δ为辅助参数。在上述iBM迭代算法中,共需2t次迭代(本例中t=8),每次计算为了不影响后续迭代,各中间变量值必须在1个时钟周期内算出。这样会导致在更新某个多项式时,消耗资源过多。以上式步骤2中Δ(i)的迭代为例,单步迭代需要用到9个有限域全变量乘法器和8个有限域全加器,形成一组延迟路径非常长的乘加树结构,严重影响芯片时钟频率的提升。这种问题在σ和ω的迭代中也存在。
从上述算法过程可知,普通iBM算法实现RS(255,239)译码时至少需27个有限域全变量乘法器和17个有限域加法器,而有限域全变量乘法器是非常消耗资源的,同时普通iBM算法含有有限域乘加树结构,关键路径长,这会影响芯片的运行频率。为了节约芯片资源,提升运行频率,本发明采用乘法器、加法器分时复用的方式,以延迟换资源的策略,在不影响连续译码的情况下,将步骤1、2和3进行拆分运算,具体实现表述如下:
1、计算关键方程中的σ(x),将步骤1和步骤2拆分成9(相当于t+1)个时钟周期,每个周期计算一次系数相乘,有限域乘法器从18个减小到3个。为了实现拆分操作,定义迭代中间变量如下:
其中上标i表示第i次迭代,下标j表示第i次迭代中的第j个分解步骤(即第j个时钟周期)。
为了实现资源的分时复用,拆分方式非常重要。由以上两个式子可以看到,在错误位置多项式σ的计算中,中间变量Δ(i+1)的计算和σ(i)的计算互相影响,在多项式拆分运算时需满足逻辑正确性,在iBM算法迭代中,先计算出第i-1次迭代的σ(i-1)(含9个系数),然后用这9个系数去计算Δ(i)。为了实现拆分和分时复用,具体描述如下:
(1)、我们在实现时先计算出第i次迭代σ(i)的第0阶系数σ0 (i),并锁存住第i-1次迭代最终得出的差值Δ(i),同时用第0阶系数σ0 (i)去计算Δ(i+1)的第1次更新Δ1 (i+1);
(2)、在计算第i次迭代σ(i)的第1阶系数σ1 (i)时,用到第i-1次算出的Δ(i),σ1 (i)计算完毕后用此值计算Δ(i+1)的第2次更新Δ2 (i+1);
(3)、计算第i次迭代σ(i)的第2阶系数σ2 (i)时,仍旧用到第i-1次算出的Δ(i),σ2 (i)计算完毕后用此值计算Δ(i+1)的第3次更新Δ3 (i+1);
如此反复环环相扣迭代,(t+1)*2t次拆分运算,就能流水计算出最终错误位置多项式σ。
每次迭代σj (i)和Δj (i)数据流水操作如图3和表1所示。Δj (i+1)的计算需先得知σj-1 (i)和Δj-1 (i+1),这两个值在第j-1个时钟周期已算出;在第j个时钟周期,σj (i)的计算需要先得出Δ(i)和σj (i-1),这两个值在每次迭代的第0个周期和第i-1次迭代的第j个周期已算出。这样每次迭代和每次分解步骤间就能通过流水衔接好,在此实施例中,9*16次分解计算后就能得出错误位置多项式。
表1分解计算数据流向
分解动作 | Δ(i+1) | σ(i)(x) |
j=0 | Δ(i)=Δt (i)+Si+1-tσt (i-1),Δ0 (i)=0 | σ0 (i)=δσ0 (i-1) |
j=1 | Δ1 (i+1)=Si+2σ0 (i) | σ1 (i)=δσ1 (i-1)+Δ(i)γ0 (i-1) |
j=2 | Δ2 (i+1)=Δ1 (i+1)+Si+1σ1 (i) | σ2 (i)=δσ2 (i-1)+Δ(i) γ1 (i-1) |
…… | ||
j=t | Δt (i+1)=Δt-1 (i+1)+Si-t+3σt-1 (i) | σt (i)=δσt (i-1)+Δ(i) γt-1 (i-1) |
2、错误位置多项式计算完毕后,再计算错误值多项式。ω(x)=S(x)σ(x)mod(x2t)的计算也采用分解操作,实现迭代计算的关键变量定义如下:
在此实施例中,共需8次迭代,每次迭代需8个分解步骤,有限域全变量乘法器从9个减小到1个。
在错误值多项式ω的计算中,拆分计算没有σ那么复杂。在ω中只需把原本iBM算法中的有限域乘法器复用,每次迭代完成1个系数的更新,这样t-1次迭代就能得出最终的多项式。
综上所述,在σ的计算中,把原本需要1个周期计算出各个中间变量(各个中间变量都为9个系数的多项式),拆分成每个周期计算中间变量中的1个系数,通过循环迭代在9个周期里完成中间变量9个系数多项式的更新。在ω的计算中,把原本需1个时钟周期计算多项式的8个系数拆分成每个周期计算1个系数,在8个时钟周期完成8个系数的更新。这种资源分时复用方式在译码第二步中的分解iBM算法过程,能极大降低关键方程中的有限域乘法器和加法器的消耗,同时在每次计算时,避免了乘加树结构,显著降低了路径延迟提升了芯片时钟频率,对比如表2所示。从表2中可以看出本方案的资源消耗和路径延迟都占据优势,单步耗费周期增加了,但是不影响连续译码。
表2
其中,表2中的Tmult为有限域全变量乘法器的路径延迟,Tadd为有限域加法器的路径延迟。
当然,可以理解,在本发明的其他实施例中,也可以只拆分步骤1、2,或只拆分步骤3。
本发明第二实施方式涉及一种通信系统中RS译码方法。第二实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:通过合并优化钱搜索和Forney算法过程,即将错误位置多项式和错误值多项式中的奇偶次项拆分,减小了控制逻辑和重复计算。具体地说:
如图4所示,在步骤104中包括以下步骤:
在步骤401中,将错误位置多项式σodd(x)=σ1x+σ3x3……+σtoddxtodd和σeven(x)=σ0+σ2x2+……+σtevenxteven,其中todd为不大于t的最大奇数,teven为不大于t的最大偶数,并将错误值多项式ω(x)拆分成ωodd(x)=ω1x+ω3x3+……+ωtodd'xtodd'和ωeven(x)=ω1x+ω3x3+……+ωteven'xteven',其中todd'为不大于t-1的最大奇数,teven'为不大于t-1的最大偶数。
此后进入步骤402,依次将αi代入σodd(x)和σeven(x)并相加得到σ(αi)。
此后进入步骤403,判断σ(αi)是否为0。若σ(αi)=0,进入步骤404,否则结束本流程。
在步骤404中,将αi代入ωodd(x)和ωeven(x)并相加得到ω(αi),根据ω(αi)和σodd(αi)计算相应的错误幅度。
此后结束本流程
可以理解,在本发明的其他实施方式中,也可以不将错误位置多项式和错误值多项式中的奇偶次项拆分,并不影响本发明的技术方案的实现。
在本发明的一个优选的例子中,以RS(255,239)译码系统的实现进行详细说明,但并不以此为限。
该RS(255,239)译码系统的纠错能力为每255个码元纠正8个码元错误。RS(255,239)码简记为RS(n,k,t),其中n=255,k=239,t=(n-k)/2。RS(255,239)连续译码共4级流水,如图2所示。
接着第一步和第二步,第三步计算数据块错误位置和错误幅值,分为钱搜索和Forney计算两步。
1.钱搜索用来确认码元的错误位置,依次把αi带入错误位置多项式σ(x),若σ(αi)=σ0+σ1(αi)1+...+σt(αi)t=0
则rn-i这个码元出错,即错误位置err_pos=n-i
2.Forney算法计算出码元错误位置对应的错误幅度,公式如下
式中分子ω(αi)为错误值多项式在αi的值,分母σodd(αi)为钱搜索得到的奇数次和值,分别把αi带入公式
σodd(x)=σ1+σ3x3+...+σtoddxtodd,
式中todd表示不大于t的最大奇数,对于RS(255,239)码,todd=7。
从上述钱搜索和Forney算法过程可知,需分别计算σ(αi)、ω(αi)和σodd(αi),消耗资源较大。本实施例中,将钱搜索σ(αi)和Forney算法分子项ω(αi)的计算采用相同的递归计算控制单元,同时为了避免Forney算法中重复计算,把σ(αi)拆分成奇数和偶数两个部分进行,公式如下:σ(αi)=σodd(αi)+σeven(αi)
优化后的钱搜索模块输出ω(αi)和σodd(αi)给Forney算法模块,Forney算法模块只需完成σodd(αi)的有限域求逆和有限域乘法即可计算出错误幅度。通过上述钱搜索和Forney算法的优化,合理安排好流水插入,能够提升运算速度,减小资源开销。
上述优化后的钱搜索实现如图5所示。图5中求解σ(αi)共需9个计算单元,用C0~C8表示,初始化系数为关键方程得出的错误位置多项式的各系数。求解ω(αi)共需8个计算单元,用C0~C7表示,初始化系数为关键方程得出的错误值多项式各系数。
上述Forney算法实现如图6所示,由钱搜索得到ω(αi)和σodd(αi),并使用ROM或泰勒展开对σodd(αi)求逆,经寄存器后相乘得到错误值err_value。
第四步为码元纠错,如图2所示,从延迟FIFO(先进先出缓冲器)中读出接收的码字(数据),若钱搜索指示此码元错误,则需要把Forney算法得出的错误幅值和接收的码字有限域相加即可得出正确的码字。当然,可以理解,在本发明的其他实施例中,也可以将接收的数据暂时存于如RAM等存储器中,并在需要纠错时再将数据读出。
本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
本发明第三实施方式涉及一种通信系统中RS译码装置。图7是该通信系统中RS译码装置的结构示意图。该通信系统中RS译码装置包括:
接收模块,用于接收经RS码编码的数据,其中该RS码的纠错能力为t个码元;
伴随式计算模块,用于对接收到的数据计算2t个伴随式Si以组成伴随多项式S(x),其中i=0~2t-1;
关键方程求解模块,该关键方程求解模块使用iBM算法,由伴随多项式S(x)求解关键方程S(x)σ(x)=ω(x)mod x2t,以得到错误位置多项式(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1,其中mod表示取余,在该关键方程求解模块计算错误位置多项式σ(x)的第i次迭代中,分别在t+1个周期中依序计算中间变量σ(i)的t+1个系数σ0 (i)、σ1 (i)…σt (i),每个周期计算一个系数;
优选地,关键方程求解模块包括第一分时单元,在计算错误位置多项式σ(x)的第i次迭代中的第j个周期,其中j=0~t,当j=0时,该第一分时单元由第i-1次迭代算出的系数σt (i-1)和辅助参数Δt (i)计算辅助参数Δ(i),设置辅助参数Δ0 (i+1)为0,并由第i-1次迭代算出的系数σ0 (i-1)计算σ(i)的系数σ0 (i);
当j=1~t时,该第一分时单元由第i-1次迭代算出的系数σj (i-1)和辅助参数Δ(i)计算σ(i)的系数σj (i),并由系数σj-1 (i)和辅助参数Δj-1 (i+1)计算辅助参数Δj (i+1);
钱搜索和Forney算法模块,该钱搜索和Forney算法模块使用钱搜索和Forney算法从得到的错误位置多项式σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1计算出码元的错误位置和相应的错误幅度;
纠错模块,用于若钱搜索和Forney算法模块确认存在码元错误,根据码元的错误位置和相应的错误幅度对接收的数据进行译码。
本实施方式中的RS译码装置包括接收模块、伴随式计算模块、关键方程求解模块、钱搜索和Forney算法模块、判断模块和纠错模块,其中上述关键方程求解模块将普通并行iBM算法串行分解化计算,在不影响连续译码的情况下,极大降低了求解关键方程所需的硬件资源,同时减小了路径延迟,能够使得高速信道纠错技术应用在低密度芯片上,降低了成本。
作为可选实施方式,上述关键方程求解模块还用于在计算错误值多项式ω(x)的第i次迭代中,分别在t个周期中依序计算中间变量ω(i)的t个系数ω0 (i)、ω1 (i)…ωt-1 (i),每个周期计算一个系数。
优选地,关键方程求解模块包括第二分时单元,在计算错误值多项式ω(x)的第i次迭代中的第j个周期,其中j=0~t-1,当j=0时,该第二分时单元由系数σ0计算ω(i)的系数ω0 (i);
当j=1~t-1时,该第二分时单元由系数ωj-1 (i)和系数σj计算ω(i)的系数ωj (i)。
上述关键方程求解模块在普通并行iBM算法中多处采用分时复用方式,能极大降低有限域乘法器的消耗,同时在每次计算时,避免了乘加树结构,显著降低了路径延迟并提升了芯片时钟频率。
此外,可以理解,在本发明的各个实施方式中,可以只对错误位置多项式或错误值多项式采用分解串行操作,也可以对错误位置多项式和错误值多项式都采用分解串行操作。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明第四实施方式涉及一种通信系统中RS译码装置。图8是该通信系统中RS译码装置中钱搜索和Forney算法模块的结构示意图。
第四实施方式在第三实施方式的基础上进行了改进,主要改进之处在于:上述钱搜索和Forney算法模块包括拆分单元、第一计算单元、判断单元和第二计算单元,通过合并优化钱搜索和Forney算法过程,即将错误位置多项式和错误值多项式中的奇偶次项拆分,减小了控制逻辑和重复计算。具体地说:
如图8所示,上述钱搜索和Forney算法模块包括:
拆分单元,用于将错误位置多项式σ(x)拆分成σodd(x)=σ1x+σ3x3……+σtoddxtodd和σeven(x)=σ0+σ2x2+……+σtevenxteven,其中todd为不大于t的最大奇数,teven为不大于t的最大偶数,并将错误值多项式ω(x)拆分成ωodd(x)=ω1x+ω3x3+……+ωtodd 'xtodd'和ωeven(x)=ω1x+ω3x3+……+ωteven 'xteven',其中todd'为不大于t-1的最大奇数,teven'为不大于t-1的最大偶数;
第一计算单元,用于依次将αi代入σodd(x)和σeven(x)并相加得到σ(αi);
判断单元,用于判断得到的σ(αi)是否为0,即是否存在码元错误;
第二计算单元,用于若判断单元确认得到的σ(αi)=0,则将αi代入ωodd(x)和ωeven(x)并相加得到ω(αi),根据ω(αi)和σodd(αi)计算相应的错误幅度。
此外,可以理解,在本发明的其他实施方式中,也可以不将错误位置多项式和错误值多项式中的奇偶次项拆分,并不影响本发明的技术方案的实现。
第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
综上,本方案的优势是:把并行iBM算法求解关键方程分解串行操作,在不影响连续译码的情况下,以关键方程单步计算时间的延长换取资源消耗的大幅度降低和译码速度的提升;把现有的钱搜索和Forney算法的分子项合并计算,共用一组控制逻辑,减少资源消耗。本方案极大降低了RS译码器的资源消耗,提升了RS译码速度,可适用于低密度芯片,特别是低密度通用FPGA实现信道纠错的场合。
需要说明的是,本发明各设备实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。
需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种通信系统中RS译码方法,其特征在于,包括以下步骤:
通过接收装置接收经RS码编码的数据,其中该RS码的纠错能力为t个码元;
对接收到的数据计算2t个伴随式Si以组成伴随多项式S(x),其中i=0~2t-1;
使用iBM算法,由所述伴随多项式S(x)求解关键方程S(x)σ(x)=ω(x)mod x2t,以得到错误位置多项式σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1,其中mod表示取余,在计算错误位置多项式σ(x)的第i次迭代中,分别在t+1个周期中依序计算中间变量σ(i)的t+1个系数σ0 (i)、σ1 (i)…σt (i),每个周期计算一个系数;
使用钱搜索和Forney算法从得到的错误位置多项式σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1计算出码元的错误位置和相应的错误幅度;
若存在码元错误,根据码元的错误位置和相应的错误幅度对接收的数据进行译码。
2.根据权利要求1所述的通信系统中RS译码方法,其特征在于,在求解关键方程的步骤中,在计算错误位置多项式σ(x)的第i次迭代中的第j个周期,其中j=0~t,当j=0时,由第i-1次迭代算出的系数σt (i-1)和辅助参数Δt (i)计算辅助参数Δ(i),设置辅助参数Δ0 (i+1)为0,并由第i-1次迭代算出的系数σ0 (i-1)计算σ(i)的系数σ0 (i);
当j=1~t时,由第i-1次迭代算出的系数σj (i-1)和辅助参数Δ(i)计算σ(i)的系数σj (i),并由系数σj-1 (i)和辅助参数Δj-1 (i+1)计算辅助参数Δj (i+1)。
3.根据权利要求1所述的通信系统中RS译码方法,其特征在于,在求解关键方程的步骤中,在计算错误值多项式ω(x)的第i次迭代中,分别在t个周期中依序计算中间变量ω(i)的t个系数ω0 (i)、ω1(i)…ωt-1 (i),每个周期计算一个系数。
4.根据权利要求3所述的通信系统中RS译码方法,其特征在于,在求解关键方程的步骤中,在计算错误值多项式ω(x)的第i次迭代中的第j个周期,其中j=0~t-1,当j=0时,由系数σ0计算ω(i)的系数ω0 (i);
当j=1~t-1时,由系数ωj-1 (i)和系数σj计算ω(i)的系数ωj (i)。
5.根据权利要求1至4中任一项所述的通信系统中RS译码方法,其特征在于,在使用钱搜索和Forney算法计算码元的错误位置和相应的错误幅度的步骤中包括以下步骤:
将错误位置多项式σ(x)拆分成σodd(x)=σ1x+σ3x3……+σtoddxtodd和σeven(x)=σ0+σ2x2+……+σtevenxteven,其中todd为不大于t的最大奇数,teven为不大于t的最大偶数,并将错误值多项式ω(x)拆分成ωodd(x)=ω1x+ω3x3+……+ωtodd'xtodd'和ωeven(x)=ω1x+ω3x3+……+ωteven'xteven',其中todd'为不大于t-1的最大奇数,teven'为不大于t-1的最大偶数;
依次将αi代入σodd(x)和σeven(x)并相加得到σ(αi);
若σ(αi)=0,则将αi代入ωodd(x)和ωeven(x)并相加得到ω(αi),根据ω(αi)和σodd(αi)计算相应的错误幅度。
6.一种通信系统中RS译码装置,其特征在于,包括:
接收模块,用于接收经RS码编码的数据,其中该RS码的纠错能力为t个码元;
伴随式计算模块,用于对接收到的数据计算2t个伴随式Si以组成伴随多项式S(x),其中i=0~2t-1;
关键方程求解模块,该关键方程求解模块使用iBM算法,由所述伴随多项式S(x)求解关键方程S(x)σ(x)=ω(x)mod x2t,以得到错误位置多项式σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1,其中mod表示取余,在该关键方程求解模块计算错误位置多项式σ(x)的第i次迭代中,分别在t+1个周期中依序计算中间变量σ(i)的t+1个系数σ0 (i)、σ1 (i)…σt (i),每个周期计算一个系数;
钱搜索和Forney算法模块,该钱搜索和Forney算法模块使用钱搜索和Forney算法从得到的错误位置多项式σ(x)=σ0+σ1x+……+σt-1xt-1+σtxt和错误值多项式ω(x)=ω0+ω1x+……+ωt-1xt-1计算出码元的错误位置和相应的错误幅度;
纠错模块,用于若所述钱搜索和Forney算法模块确认存在码元错误,根据码元的错误位置和相应的错误幅度对接收的数据进行译码。
7.根据权利要求6所述的通信系统中RS译码装置,其特征在于,所述关键方程求解模块包括第一分时单元,在计算错误位置多项式σ(x)的第i次迭代中的第j个周期,其中j=0~t,当j=0时,该第一分时单元由第i-1次迭代算出的系数σt (i-1)和辅助参数Δt (i)计算辅助参数Δ(i),设置辅助参数Δ0 (i+1)为0,并由第i-1次迭代算出的系数σ0 (i-1)计算σ(i)的系数σ0 (i);
当j=1~t时,该第一分时单元由第i-1次迭代算出的系数σj (i-1)和辅助参数Δ(i)计算σ(i)的系数σj (i),并由系数σj-1 (i)和辅助参数Δj-1 (i+1)计算辅助参数Δj (i+1)。
8.根据权利要求6所述的通信系统中RS译码装置,其特征在于,所述关键方程求解模块还用于在计算错误值多项式ω(x)的第i次迭代中,分别在t个周期中依序计算中间变量ω(i)的t个系数ω0 (i)、ω1 (i)…ωt-1 (i),每个周期计算一个系数。
9.根据权利要求8所述的通信系统中RS译码装置,其特征在于,所述关键方程求解模块包括第二分时单元,在计算错误值多项式ω(x)的第i次迭代中的第j个周期,其中j=0~t-1,当j=0时,该第二分时单元由系数σ0计算ω(i)的系数ω0 (i);
当j=1~t-1时,该第二分时单元由系数ωj-1 (i)和系数σj计算ω(i)的系数ωj (i)。
10.根据权利要求6至9中任一项所述的通信系统中RS译码装置,其特征在于,所述钱搜索和Forney算法模块包括:
拆分单元,用于将错误位置多项式σ(x)拆分成σodd(x)=σ1x+σ3x3……+σtoddxtodd和σeven(x)=σ0+σ2x2+……+σtevenxteven,其中todd为不大于t的最大奇数,teven为不大于t的最大偶数,并将错误值多项式ω(x)拆分成ωodd(x)=ω1x+ω3x3+……+ωtodd'xtodd'和ωeven(x)=ω1x+ω3x3+……+ωteven'xteven',其中todd'为不大于t-1的最大奇数,teven'为不大于t-1的最大偶数;
第一计算单元,用于依次将αi代入σodd(x)和σeven(x)并相加得到σ(αi);
判断单元,用于判断得到的σ(αi)是否为0;
第二计算单元,用于若所述判断单元确认得到的σ(αi)=0,则将αi代入ωodd(x)和ωeven(x)并相加得到ω(αi),根据ω(αi)和σodd(αi)计算相应的错误幅度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310567447.2A CN104639282B (zh) | 2013-11-14 | 2013-11-14 | 通信系统中rs译码方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310567447.2A CN104639282B (zh) | 2013-11-14 | 2013-11-14 | 通信系统中rs译码方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104639282A true CN104639282A (zh) | 2015-05-20 |
CN104639282B CN104639282B (zh) | 2018-09-11 |
Family
ID=53217645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310567447.2A Active CN104639282B (zh) | 2013-11-14 | 2013-11-14 | 通信系统中rs译码方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104639282B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107204781A (zh) * | 2017-03-29 | 2017-09-26 | 湖南基石通信技术有限公司 | 一种rs码译码方法及装置 |
CN107885486A (zh) * | 2017-12-04 | 2018-04-06 | 深圳职业技术学院 | 一种基于查找树的复合有限域求逆装置 |
CN105024707B (zh) * | 2015-07-31 | 2018-05-11 | 福建联迪商用设备有限公司 | 一种rs纠错解码方法 |
CN108471315A (zh) * | 2017-02-23 | 2018-08-31 | 杭州海康威视数字技术股份有限公司 | 一种纠删译码方法及装置 |
CN110007965A (zh) * | 2019-03-07 | 2019-07-12 | 上海申矽凌微电子科技有限公司 | 流水线多项式计算方法及装置 |
CN111162799A (zh) * | 2019-12-27 | 2020-05-15 | 北京时代民芯科技有限公司 | 一种抗辐射rs码译码电路 |
CN113904755A (zh) * | 2021-10-13 | 2022-01-07 | 芯河半导体科技(无锡)有限公司 | 一种截短rs码解码方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459431A (zh) * | 2008-12-30 | 2009-06-17 | 北京大学 | 一种信道纠错码bch码和rs码的译码方法 |
CN101834616A (zh) * | 2009-03-12 | 2010-09-15 | 普然通讯技术(上海)有限公司 | 里德-索罗蒙解码器实现方法 |
CN102075200A (zh) * | 2010-12-31 | 2011-05-25 | 北京遥测技术研究所 | 一种紧凑的高信息率rs译码装置 |
CN102970049A (zh) * | 2012-10-26 | 2013-03-13 | 北京邮电大学 | 基于钱搜索算法和福尼算法的并行电路及rs译码电路 |
-
2013
- 2013-11-14 CN CN201310567447.2A patent/CN104639282B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459431A (zh) * | 2008-12-30 | 2009-06-17 | 北京大学 | 一种信道纠错码bch码和rs码的译码方法 |
CN101834616A (zh) * | 2009-03-12 | 2010-09-15 | 普然通讯技术(上海)有限公司 | 里德-索罗蒙解码器实现方法 |
CN102075200A (zh) * | 2010-12-31 | 2011-05-25 | 北京遥测技术研究所 | 一种紧凑的高信息率rs译码装置 |
CN102970049A (zh) * | 2012-10-26 | 2013-03-13 | 北京邮电大学 | 基于钱搜索算法和福尼算法的并行电路及rs译码电路 |
Non-Patent Citations (1)
Title |
---|
袁强: ""GPON中FEC编解码器的研究与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105024707B (zh) * | 2015-07-31 | 2018-05-11 | 福建联迪商用设备有限公司 | 一种rs纠错解码方法 |
CN108471315A (zh) * | 2017-02-23 | 2018-08-31 | 杭州海康威视数字技术股份有限公司 | 一种纠删译码方法及装置 |
CN108471315B (zh) * | 2017-02-23 | 2021-08-20 | 杭州海康威视数字技术股份有限公司 | 一种纠删译码方法及装置 |
CN107204781A (zh) * | 2017-03-29 | 2017-09-26 | 湖南基石通信技术有限公司 | 一种rs码译码方法及装置 |
CN107885486A (zh) * | 2017-12-04 | 2018-04-06 | 深圳职业技术学院 | 一种基于查找树的复合有限域求逆装置 |
CN110007965A (zh) * | 2019-03-07 | 2019-07-12 | 上海申矽凌微电子科技有限公司 | 流水线多项式计算方法及装置 |
CN111162799A (zh) * | 2019-12-27 | 2020-05-15 | 北京时代民芯科技有限公司 | 一种抗辐射rs码译码电路 |
CN111162799B (zh) * | 2019-12-27 | 2023-08-29 | 北京时代民芯科技有限公司 | 一种抗辐射rs码译码电路 |
CN113904755A (zh) * | 2021-10-13 | 2022-01-07 | 芯河半导体科技(无锡)有限公司 | 一种截短rs码解码方法 |
CN113904755B (zh) * | 2021-10-13 | 2023-06-16 | 芯河半导体科技(无锡)有限公司 | 一种截短rs码解码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104639282B (zh) | 2018-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104639282A (zh) | 通信系统中rs译码方法及其装置 | |
CN102684709B (zh) | 一种译码方法及其译码装置 | |
CN101656541B (zh) | Rs码的译码方法和装置 | |
CN101277119B (zh) | 里德所罗门码解码器硬件复用方法及其低硬件复杂度解码装置 | |
US6543026B1 (en) | Forward error correction apparatus and methods | |
CN102970049B (zh) | 基于钱搜索算法和福尼算法的并行电路及rs译码电路 | |
US20080168333A1 (en) | Decoding method and decoding apparatus as well as program | |
CN106708654A (zh) | 一种用于NANDflash的BCH纠错码的电路结构 | |
EP1502356B1 (en) | A method of soft-decision decoding of reed-solomon codes | |
CN101697490B (zh) | 一种应用在基于理德-所罗门码的ecc模块上的解码方法 | |
CN104218957A (zh) | 一种低硬件复杂度的rs译码器 | |
CN101834616B (zh) | 里德-索罗蒙解码器实现方法 | |
CN106549677A (zh) | 高速并行bch码译码方法及装置 | |
RU2314639C1 (ru) | Устройство декодирования кодов рида-соломона | |
JP2001196938A (ja) | デジタルデータをデコーディングする装置及び方法 | |
CN115632662B (zh) | 一种rs译码中的伴随式计算方法、装置、设备及介质 | |
US20080140740A1 (en) | Systems and methods for processing data sets in parallel | |
CN108471315B (zh) | 一种纠删译码方法及装置 | |
US7398456B2 (en) | Information encoding by shortened Reed-Solomon codes | |
US8255777B2 (en) | Systems and methods for locating error bits in encoded data | |
US8347167B2 (en) | Circuits for implementing parity computation in a parallel architecture LDPC decoder | |
CN101777922B (zh) | 用于BCH译码器的高速低延时Berlekamp-Massey迭代译码电路 | |
CN101436864B (zh) | 一种低密度奇偶校验码的译码方法及装置 | |
CN103346805A (zh) | 一种长bch码的译码系统及方法 | |
CN101741397A (zh) | Rs译码装置及其使用的关键多项式求解装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |