一种用于空间通信的高速并行RS译码方法转让专利

申请号 : CN201010297884.3

文献号 : CN101969358B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张拯宁崔骞战勇杰朱翔宇

申请人 : 航天恒星科技有限公司

摘要 :

一种用于空间通信的高速并行RS译码方法,通过同时部署RS(255,223)及RS(255,239)两种译码模块,使译码器可以根据编码参数在线配置译码类型,灵活适应CCSDS标准规定的上述两种编码格式;通过在解交织与交织过程中采用乒乓操作完成输入数据在FIFO中的填充和获取,而在译码过程中采用多路并行流水的方式,通过这种复合结构保证了系统性能的最大化和实现资源的最小化,并且可以适应1至8的任意交织深度;通过采取多路并行RS译码、优化有限域乘法器的实现逻辑、等措施,大幅度提高了译码速率,可以直接应用于高码速率遥感卫星地面接收系统,通过采用模块化设计,在需要时可以进一步增加并行度提高性能。

权利要求 :

1.一种用于空间通信的高速并行RS译码方法,其特征在于步骤如下:(1)设置译码过程的参数,所述参数包括直通状态参数、交织深度参数、总帧长、译码类型参数;

(2)根据步骤(1)中设置的直通状态参数判断译码过程是否是直通状态,若是直通状态,则将输入数据直接输出;若不是直通状态,则进入步骤(3);

(3)由帧长计数器对输入数据进行计数,根据步骤(1)中设置的总帧长判断帧长计数器的计数结果是否等于总帧长,若不等于总帧长,则将数据写入第i个输入FIFO中,同时帧长计数器的计数结果加1,之后进入步骤(4);若等于总帧长,则读取所有输入FI FO中的数据之后进入步骤(5);所述i为1到交织深度参数之间的自然数,且i的初始值为1;

(4)判断i是否等于交织深度参数,若等于,则将i初始化为1之后返回步骤(3);若不等于,则将i+1赋值给i之后返回步骤(3);

(5)根据译码类型参数判断使用哪一种译码模块进行RS译码,若译码类型参数为

255/223,则使用RS223译码模块进行RS译码,将译码之后的数据输入第j个输出FIFO中,之后进入步骤(6);若译码类型参数为255/239,则使用RS239译码模块进行RS译码,将译码之后的数据输入第j个输出FIFO中,之后进入步骤(6);所述j为1到交织深度参数之间的自然数,且j的初始值为1;

(6)判断第j个输出FIFO是否为空,若为空,则进入步骤(7);若不为空,则从第j个输出FIFO中读取数据并输出,之后进入步骤(8);

(7)判断j是否等于交织深度参数,若不等于,则将j+1赋值给j之后返回步骤(6);若等于,则返回步骤(2);

(8)判断j是否等于交织深度参数,若等于,则将j初始化为1之后返回步骤(6);若不等于,则将j+1赋值给j之后返回步骤(6)。

2.根据权利要求1所述一种用于空间通信的高速并行RS译码方法,其特征在于,所述步骤(5)中使用RS223译码模块进行RS译码和使用RS239译码模块进行RS译码按照如下步骤进行:(a)将接收到的数据存入接收序列缓存中等待纠错处理,同时,将所述接收到的数据用Horner算法计算伴随式S,之后进入步骤(b);

(b)使用RiBM算法由步骤(a)中得到的伴随式S求得错误位置多项式和错误值多项式,之后进入步骤(c);

(c)利用步骤(b)中得到的错误位置多项式使用钱搜索算法计算错误位置,同时利用步骤(b)中得到的错误值多项式使用Forney算法计算错误值,之后根据所述错误位置和错误值对步骤(a)中接收序列缓存中等待纠错处理的数据进行纠错处理并输出。

3.根据权利要求2所述一种用于空间通信的高速并行RS译码方法,其特征在于,所述Horner算法、RiBM算法、钱搜索算法和Forney算法中所使用的乘法计算按照如下公式实现:T T

C=AB=d+Qe=Lb+Q Ub,

其中,C为A和B的乘积, αi∈{0,1}, αi∈{0,1},A的向量表T T

示为a=[a0,a1,…,am-1] ;B的向量表示为b=[b0,b1,…,bm-1],d=Lb,e=Ub,↑ mQ为满足α =Q·αmodp(α)的矩阵且Q为(m-1)×m阶矩阵,p(α)为GF(2)域的↑ m m+1 2m-1 T本原多项式,α为本原多项式的根,α =[α,α ,…,α ]。

说明书 :

一种用于空间通信的高速并行RS译码方法

技术领域

[0001] 本发明涉及一种用于空间通信的RS编码的高速译码方法,主要用于空间通信地面信道译码器中对解调后数据进行高速RS译码,纠正信道传输错误,也可用于其它应用方向的数据解调接收设备中。

背景技术

[0002] RS码是一类具有很强纠错能力的多进制BCH码,也是一类典型的代数几何码。它首先由Reed和Solomon应用MS多项式于1960年构造出来。用MS多项式构造的RS码是非系统码,而用BCH码构造方法能产生系统码。由于线性码的最大可能的最小距离是校验元的个数加1,而RS码恰好做到这一点,因此,称RS码为极大最小距离可分码(MDS码)。RS码特别适合于在衰落信道中使用,以克服突发性差错。正由于其优越的性能,RS码在深空通信、数字音视频通信、磁记录介质等领域取得广泛应用,它是目前应用最为广泛的纠错编码。
[0003] 空间通信用RS码为空间数据系统咨询委员会(CCSDS)推荐的RS(255,223)或RS(255,239)码,这两种码基本编码参数相同,主要是纠错能力不同。CCSDS规定RS码可采用的交织深度为1、2、3、4、5、8共6种。在不同的卫星通信系统中往往选用了不同的RS编码类型及不同的交织深度,这就就给空间通信用RS译码器的研制带来了很大的困难。现有RS译码器采用的译码方法一般将解交织与译码过程分别实现,这样做的优点是实现方案简单,缺点是灵活性不够。RS译码器的译码过程需要进行大量的有限域运算,其中乘法运算单元最多而且对译码速度的影响也最大。由于目前RS译码器中使用的乘法器没有经过优化,造成译码器的工作时钟不能太高。同时,由于遥感卫星数传码速率不断提高,要在兼容不同RS编码格式与交织深度的基础进一步提高码速率难度就更大。
[0004] 目前各类通信系统中常见的通常都是低码速率的RS译码器,一般码速率在几十兆bit/s;空间通信用RS译码器单通道最高译码速度目前为470Mbps左右,而且不能同时兼容RS(255,223)和RS(255,239)码,能够适应的交织深度一般为固定值。

发明内容

[0005] 本发明的技术解决问题是:克服现有技术的不足,提供了一种用于空间通信的RS编码的高速译码方法,此译码方法可同时兼容RS(255,223)和RS(255,239)码及(1-8)的任意交织深度,且译码速度远高于现有技术。
[0006] 本发明的技术解决方案是:
[0007] 一种用于空间通信的高速并行RS译码方法,步骤如下:
[0008] (1)设置译码过程的参数,所述参数包括直通状态参数、交织深度参数、总帧长、译码类型参数;
[0009] (2)根据步骤(1)中设置的直通状态参数判断译码过程是否是直通状态,若是直通状态,则将输入数据直接输出;若不是直通状态,则进入步骤(3);
[0010] (3)由帧长计数器对输入数据进行计数,根据步骤(1)中设置的总帧长判断帧长计数器的计数结果是否等于总帧长,若不等于总帧长,则将数据写入第i个输入FIFO中,同时帧长计数器的计数结果加1,之后进入步骤(4);若等于总帧长,则读取所有输入FIFO中的数据之后进入步骤(5);所述i为1到交织深度参数之间的自然数,且i的初始值为1;
[0011] (4)判断i是否等于交织深度参数,若等于,则将i初始化为1之后返回步骤(3);若不等于,则将i+1赋值给i之后返回步骤(3);
[0012] (5)根据译码类型参数判断使用哪一种译码模块进行RS译码,若译码类型参数为255/223,则使用RS223译码模块进行RS译码,将译码之后的数据输入第j个输出FIFO中,之后进入步骤(6);若译码类型参数为255/239,则使用RS239译码模块进行RS译码,将译码之后的数据输入第j个输出FIFO中,之后进入步骤(6);所述j为1到交织深度参数之间的自然数,且j的初始值为1;
[0013] (6)判断第j个输出FIFO是否为空,若为空,则进入步骤(7);若不为空,则从第j个输出FIFO中读取数据并输出,之后进入步骤(8);
[0014] (7)判断j是否等于交织深度参数,若不等于,则则将j+1赋值给j之后返回步骤(6);若等于,则返回步骤(2);
[0015] (8)判断j是否等于交织深度参数,若等于,则将j初始化为1之后返回步骤(6);若不等于,则将j+1赋值给j之后返回步骤(6)。
[0016] 所述步骤(5)中使用RS223译码模块进行RS译码和使用RS239译码模块进行RS译码按照如下步骤进行:
[0017] (a)将接收到的数据存入接收序列缓存中等待纠错处理,同时,将所述接收到的数据用Horner算法计算伴随式S,之后进入步骤(b);
[0018] (b)使用RiBM算法由步骤(a)中得到的伴随式S求得错误位置多项式和错误值多项式,之后进入步骤(c);
[0019] (c)利用步骤(b)中得到的错误位置多项式使用钱搜索算法计算错误位置,同时利用步骤(b)中得到的错误值多项式使用Forney算法计算错误值,之后根据所述错误位置和错误值对步骤(a)中接收序列缓存中等待纠错处理的数据进行纠错处理并输出。
[0020] 所述Horner算法、RiBM算法、钱搜索算法和Forney算法中所使用的乘法计算按照如下公式实现:
[0021] C=AB=d+QTe=Lb+QTUb,
[0022] 其中,C为A和B的乘积, A的向量T T
表示为a=[a0,a1,…,am-1] ;B的向量表示为b=[b0,b1,…,bm-1],[0023]
↑ m
[0024] Q为满足α =Q·αmodp(α)的矩阵,p(α)为GF(2)域的本原多项式,α为本↑ m m+1 2m-1 T原多项式的根,α =[α,α ,…,α ] 本发明与现有技术相比的有益效果是:
[0025] (1)本发明通过同时部署RS(255,223)及RS(255,239)两种译码模块,使译码器可以根据编码参数在线配置译码类型,灵活适应CCSDS标准规定的上述两种编码格式;
[0026] (2)本发明通过在解交织与交织过程中采用乒乓操作完成输入数据在FIFO中的填充和获取,而在译码过程中采用多路并行流水的方式,通过这种复合结构保证了系统性能的最大化和实现资源的最小化,并且可以适应1至8的任意交织深度;
[0027] (3)本发明通过采取多路并行RS译码、优化有限域乘法器的实现逻辑等措施,大大提高了译码速率,可以直接应用于高码速率遥感卫星地面接收系统,通过采用模块化设计,在需要时可以进一步增加并行度提高性能。

附图说明

[0028] 图1为本发明RS码译码器组成示意图;
[0029] 图2是本发明RS译码器处理流程图;
[0030] 图3是本发明高速并行RS译码方法流程图。

具体实施方式

[0031] 下面结合附图对本发明的具体实施方式进行进一步的详细描述。
[0032] RS码是一种信道编码格式,它属于线性分组码。由于RS码是建立在有限域代数的基础上构建的,很适合用于多进制调制系统。RS码的主要用途是克服衰落信道中产生的突发性错误,它还常常作为内码与卷积码级联使用,以便获得更大的编码增益。由于空间通信中由于经常遇到闪电等引发的突发性错误,所以RS很适合在空间通信中使用。伴随着空间通信技术的发展,数据传输码速率不断提高,RS译码速率也需要相应提高以适应发展需求。本发明主要解决RS译码器实现中如何提高译码速率的问题,通过采用本发明提出的译码方法,可以大幅度提高译码速率,兼容RS(255,223)及RS(255,239)两种编码格式,并且适应1至8的任意交织深度,能够直接应用于高码速率遥感卫星地面接收系统。
[0033] 如图1所示为本发明RS码译码器组成示意图,本发明译码部分采用8路并行结构,每一路均包括输入FIFO,输出FIFO,译码类型选通器,译码核组成,这样可以译码速度大大加快并且可以根据实际译码需要选择交织深度,且适应1至8的任意交织深度。
[0034] 本发明高速并行RS译码方法如图3所示,按照如下步骤进行:
[0035] (1)设置译码过程的参数,所述参数包括直通状态参数、交织深度参数、总帧长、译码类型参数;直通状态参数是为了在RS译码器使用时更加灵活方便,不需要RS译码时选择直通即可将数据不经译码直接输出;交织深度参数为1至8的任意自然数;总帧长根据实际通信协议确定即可;译码类型参数指通信系统中使用的RS编码格式具体为RS(255,233)或RS(255,239)码的哪一种。
[0036] (2)根据步骤(1)中设置的直通状态参数判断译码过程是否是直通状态,若是直通状态,则将输入数据直接输出;若不是直通状态,则进入步骤(3)。
[0037] 步骤3和步骤4描述的是交织部分的过程,属于乒乓操作。
[0038] (3)由帧长计数器对输入数据进行计数,根据步骤(1)中设置的总帧长判断帧长计数器的计数结果是否等于总帧长,若不等于总帧长,则将数据写入第i个输入FIFO中,同时帧长计数器的计数结果加1,之后进入步骤(4);若等于总帧长,则读取所有输入FIFO中的数据之后进入步骤(5);所述i为1到交织深度参数之间的自然数,且i的初始值为1;通过该步骤完成解交织过程,将交织数据恢复为单路RS编码的输出格式。帧长计数器就是用来计量数据帧长的一个计数器。
[0039] (4)判断i是否等于交织深度参数,交织深度参数是第一步的时候设置好的,若等于,则将i初始化为1之后返回步骤(3);若不等于,则将i+1赋值给i之后返回步骤(3)。
[0040] (5)根据译码类型参数判断使用哪一种译码模块进行RS译码,若译码类型参数为255/223,则使用RS223译码模块进行RS译码,将译码之后的数据输出给第j个输出FIFO中,之后进入步骤(6);若译码类型参数为255/239,则使用RS239译码模块进行RS译码,将译码之后的数据输出给第j个输出FIFO中,之后进入步骤(6);所述j为1到交织深度参数之间的自然数,且j的初始值为1;该步骤通过调用对应RS类型的译码器实现RS译码,RS译码过程包括5个模块,如附图2所示。
[0041] 1)用Horner算法由接收到的计算得到伴随式;
[0042] 2)用RiBM算法由Si用关键方程求解算法求得错误位置多项式和错误值多项式;
[0043] 3)用钱搜索法求得错误位置多项式的根,得到错误位置数,确定错误位置;
[0044] 4)用Forney算法由错误值多项式求得错误值,得到错误值;
[0045] 5)最后由输入数据在对应错误位置处减去错误值,完成纠错。
[0046] 设接收序列多项式为R(x)=rN-1xN-1+...+rix+r0,则考虑到译码算法的数据输入情况,伴随式可以由Horner算法计算,可以表示为:
[0047]
[0048] i=1,2,…D-1
[0049] 求解伴随式的Horner算法、求解关键方程的RiBM算法、求解错误位置的“钱搜索法”和求解错误值的Forney算法已经有比较完善的研究成果,属于本领域的公知技术。但是应用这几种算法计算的过程中,会涉及到很多乘法运算,换句话说,大量的乘法运算的速度也就决定了这几种算法的执行速度,因此,本发明设计了一种新的乘法运算的方法,极大的加快了这几种算法的运算速度,从而从整体上提高了译码的速度。
[0050] 下面几个步骤属于解交织部分的过程,属于乒乓操作。
[0051] (6)判断第j个输出FIFO是否为空,若为空,则进入步骤(7);若不为空,则从第i个输出FIFO中读取数据并输出,之后进入步骤(8)。
[0052] (7)判断j是否等于交织深度参数,若不等于,则则将j+1赋值给j之后返回步骤(6);若等于,则返回步骤(2)。
[0053] (8)判断j是否等于交织深度参数,若等于,则将j初始化为1之后返回步骤(6);若不等于,则将j+1赋值给j之后返回步骤(6)。
[0054] 所述Horner算法、RiBM算法、钱搜索算法和Forney算法中所使用的乘法计算按照如下公式实现:
[0055] C=AB=d+QTe=Lb+QTUb,
[0056] 其中,C为A和B的乘积, A的向量表T T
示为a=[a0,a1,…,am-1] ;B的向量表示为b=[b0,b1,…,bm-1],[0057]
↑ m
[0058] Q为满足α =Q·αmodp(α)的矩阵,p(α)为GF(2)域的本原多项式,是已知↑ m m+1 2m-1 T的内容,因此α为本原多项式的根,也就是已知内容,α =[α,α ,…,α ] 因此,从上面这些条件,可以求出Q的取值,进而求出乘积。
[0059] 两个伽罗华域上的元素乘法的实现较为困难,软件实现时可以用查对数表和反对数表的方法实现;在硬件实现中则用组合逻辑来实现。在RS码的代数译码器中,有限域乘法器是应用最多且时延最大的部件,其计算时延决定了译码器的工作时钟频率。如何实现有限域乘法器,降低其运算时延,改善RS码译码器的性能,是RS码译码器实现过程中要考虑的一个关键问题。有限域中的其它运算,例如除法、求逆都可以用乘法器间接实现。在工程实践中,最常用的有限域乘法器是自然基乘法器和对偶-自然基乘法器。
[0060] 有限域乘法器从实现结构上来说可以分为比特串行乘法器和比特并行乘法器两种。比特串行乘法器结构实现上比较简单,面积复杂度为O(m),但是由于运算按比特进行,高速实现难度较大。比特并行乘法器通过电路连接,直接实现输出多位运算的结果,可以显著提高处理速度,面积复杂度为O(m2)。此外就是串并结合的混合(Hybrid)结构。除去实现结构的影响,有限域乘法器实现的复杂度主要与域的基底密切相关。
[0061] 本方法采用的低复杂度比特并行有限域乘法算法,它的主要设计思想是做一个类似LU分解的处理,大大降低了硬件实现复杂度,并且结构规则,处理速度快。其原理介绍如下。m
[0062] 设p(α)为GF(2)域的本原多项式,α为本原多项式的根,A,B为C=AB中的元T素, A的向量表示为a=[a0,a1,…,am-1] ;类似的,B的向量表示为b=[b0,b1,…,bm-1]T引入GF(2m)中的变量α↑和(m-1)×m阶矩阵Q,满足:
[0063] α↑=Q·αmodp(α)
[0064] 其中
[0065] α↑=[αm,αm+1,…,α2m-1]T
[0066] 引入矩阵:
[0067]
[0068]
[0069] 设:
[0070] d=Lb
[0071] e=Ub
[0072] 则可以证明得出:T
[0073] C=AB=d+Qe
[0074] 经过大量仿真及工程测试,使用该方法可使RS译码速率达到1.2Gbit/s,优于目前文献中发表的同类型译码器的性能指标,在需要时本发明还可以进一步通过增加并行度提高性能。
[0075] 本发明说明书中未作详细描述的内容属于本领域的公知技术。