法律状态公告日
法律状态信息
法律状态
2019-04-05
授权
授权
2016-04-20
实质审查的生效 IPC(主分类):H03M13/15 申请日:20141016
实质审查的生效
2016-02-10
公开
公开
技术领域
本发明涉及一种RS码编码器及编码方法,属于数字信息传输技术领域。
背景技术
在通信系统前向纠错编码技术中,RS(Reed-Solomon)码是一种非二进 制分组循环码,具有较好的抗突发错误能力。在基于FPGA的高速数据调制 器开发时,通常采用RS码完成数据的信道编码,提高信息传输的有效性。
RS码是一种多进制BCH码,采用移位寄存器结构实现,其运算均在给 定的有限域上进行。有限域由域多项式确定其运算方式,RS码编码由码长n、 信息符号长度k确定其生成多项式。当对编码速率要求超过FPGA程序串行 最大处理速率时,由于受FPGA工作时钟限制,需要以并行方式进行编码。 现有的并行编码方法可分为两类:码字级并行编码及符号级并行编码。码字 级并行编码方法相当于采用多个RS串行编码器同时进行编码,以达到较高 的编码数据吞吐率,将占用大量的芯片资源;符号级并行编码方法通过每次 完成多个符号的编码运算实现并行编码,进行符号级并行编码时,涉及到 RS符号在有限域上的并行乘法运算。
在采用FPGA实现有限域的乘法时,通常有两种方式,一种则是利用FPGA 逻辑资源实现有限域乘法器,每个FPGA工作时钟周期可完成一次乘法,在 域多项式改变时需要重新生成乘法器。另一种是预先生成乘法查找表,遍历 给定有限域上的所有基元素的乘法运算。采用查找表方式需要占用一定的存 储资源(对位宽为m的扩展域GF(2m),共有2m-1个基元素,因而查找表的大 小为m×(2m-1)2/2比特),且每次查表只能得到一次有限域乘法结果,不便于 并行实现。这两种乘法器实现方式,在采用移位寄存器结构进行RS编码时, 每次仅能移入一个RS信息符号,编码速率受限。若要求每次移入多个RS码 信息符号,则需要多个乘法器或存储多个查找表,且如果需要实时(FPGA 程序运行时)更改域多项式,也需要存储多个查找表,都将占用较多芯片资 源,且灵活性有限。
发明内容
本发明解决的技术问题是:克服现有技术不足,提供了一种实现高速的 数据传输、提高通信系统的信道适应能力的高速实时可配置的RS编码器及 编码方法。
为解决上述技术问题,本发明的技术解决方案如下:
一种RS码编码器,包括RS码并行生成多项式系数计算模块、RS码并 行计算使能产生模块、RS码符号串并转换模块和RS码符号并行计算模块。
所述的RS码并行生成多项式系数计算模块,根据外部输入的配置参数 RS码生成多项式系数及RS码符号并行度,利用线性反馈移位寄存器结构计 算并行生成多项式系数。
本发明设置n-k个m位宽的寄存器R0~Rn-k-1构成线性反馈移位寄存器 结构。RS码并行生成多项式系数计算模块接受外部输入配置参数:RS码生 成多项式系数、RS码码长n、RS码信息符号数k,RS符号位宽m及符号并 行度p。在加载有限域域多项式信号高有效时,R0~Rn-k-1分别初始化为RS 码生成多项式系数g1~gn-k,然后完成p次并行生成多项式系数计算。每次 计算时,寄存器R0的值作为反馈值与g1~gn-k相乘得到n-k个结果,分别与 各寄存器移入值求和后作为各寄存器的更新值,其中,寄存器Rn-k-1的移入 值恒为0。计算完成后每个寄存器对应p个并行生成多项式系数,与常系数 1构成共(p+1)×(n-k)个并行生成多项式系数输出,以及系数计算完成指 示信号。
所述的RS码符号串并转换模块,根据外部输入的配置参数RS码符号并 行度及RS码码长、RS码信息符号数,对输入待编码信息数据转换为并行RS 码符号输出。
RS码符号串并转换模块,根据外部输入的配置参数符号并行度p及RS 码信息符号数k,对输入待编码信息进行串并转换,每m比特构成一个RS 码信息符号。并对RS码信息符号数进行计数,当计数值count小于等于k-p 时,每次并行输出为p×m比特,即每次输出p个RS码信息符号;否则输出 k-count个RS码信息符号。
所述的RS码并行计算使能产生模块,根据外部输入的配置参数RS码码 长,RS码信息符号数,以及RS码符号并行度,产生RS码并行计算使能信 号。
RS码符号并行计算模块接受RS码并行生成多项式系数产生模块输出的 并行生成多项式系数、RS码符号串并转换模块输出的并行RS码符号,在 RS码并行计算使能模块输出的计算使能信号为1时,完成RS码的符号并行 计算;当计算使能信号为0时,将各寄存器的值依次输出即得到RS码校验 符号。
所述的RS码符号并行计算模块,在RS码并行计算使能信号为高时,利 用线性反馈移位寄存器结构实现,将RS码符号串并转换模块输出的p个或 者k-count个RS码信息符号移入,完成RS码并行输入符号的相乘和求和, 在RS码并行计算使能信号为低时,依次输出各寄存器值,即为RS码编码后 的校验符号。
RS码并行计算使能产生模块,接受RS码并行生成多项式系数计算模块输 出的系数计算完成指示信号,根据外部输入的RS码配置参数:RS码码长n,RS 码信息符号数k,以及RS码符号并行度p,对RS码符号串并转换模块输出的 RS码信息符号数进行计数,当计数值小于等于k时,输出计算使能信号为1, 否则输出计算使能信号为0,持续(n-k)个FPGA工作时钟周期后,清零计数器 并重新开始计数。
RS码符号并行计算模块,其特征在于:可根据所述RS码并行生成多项式 系数完成RS码校验符号的并行计算。在每次输入p个RS码信息符号时,线性 反馈移位寄存器每次移入p个RS码信息符号时,与寄存器R0~Rn-k-1的值构成 (n-k+p)个符号构成的向量,每个寄存器运算时,截取该向量中的P+1个符号 与该寄存器更新值时使用对应的p+1个并行生成多项式系数相乘后求和,即得 到该寄存器的更新值;当移入k-count个RS码信息符号时,与寄存器R0~Rn-k-1的值构成(n-count)个符号向量,每个寄存器运算时,截取符号向量中的 k-count+1个符号与该寄存器更新值时使用对应的k-count+1个并行生成多项 式系数相乘后求和,即得到该寄存器的更新值。此时,寄存器R0~Rn-k-1的值 即RS码编码得到的n-k个校验符号。
进一步的,所述的RS符号相乘及求和运算均在给定的有限域上进行。采用 有限域上的乘法运算子模块完成任意给定域多项式的有限域上的乘法运算,该 子模块作为RS码并行生成系数计算模块及RS码符号并行计算模块的基础。有 限域上的乘法运算子模块以移位异或运算实现,当输入m比特的数据X,Y时, 对X按位左移,移出位为1时,将X左移得到的值与有限域域多项式系数按位 异或;移出位为0时,直接取左移得到的值。该值在Y的当前位为1时,参与 最后的按位异或运算,Y的当前位为0时,不参与运算。则当X按Y的所有位 移出得到的中间结果按位异或即得到X和Y在该有限域上的乘法运算结果。
本发明提供了一种基于FPGA的RS码并行生成多项式系数的计算方法, 在FPGA程序运行时,若需要配置为不同码率的RS码,则RS码并行生成多 项式系数计算模块在加载RS码生成多项式系数信号有效时,重新计算所需 的RS码并行多项式生成系数。若需要配置为定义在不同有限域上的RS码, 则有限域乘法运算子模块将根据外部输入的配置参数有限域域多项式实现 定义在该有限域上的乘法运算,以此为基础实现实时可配置的高速RS码编 码,支持任意小于RS信息符号长度k的符号并行度编码。支持实时修改有 限域域多项式及RS码生成多项式,可用于高速信道编码等技术应用。
本发明提供一种RS码编码方法,通过以下步骤实现:
第一步,生成RS码并行生成多项式系数,
A1.1、当有限域域多项式信号有效时,寄存器R0~Rn-k-1分别初始化为RS 码生成多项式系数g1~gn-k,其中n为RS码码长,k为RS码信息符号数,m为 RS符号位宽,p为符号并行度;
A1.2、将寄存器R0的值作为反馈值与g1~gn-k相乘得到n-k个过程值,n-k 个过程值再分别与各寄存器移入值求和后作为各寄存器的更新值,其中,寄存 器Rn-k-1的移入值恒为0,计算完成后每个寄存器对应p个并行生成多项式系数, 与常系数1构成共(p+1)×(n-k)个RS码并行生成多项式系数,同时输出系 数计算完成指示信号;
第二步,生成并行的RS码信息符号,
A2.1、根据外部输入的配置参数符号并行度p及RS码信息符号数k,对外 部输入的待编码信息进行串并转换,每m比特构成一个RS码信息符号,并对 RS码信息符号数进行计数;
A2.2、每次输出时判断计数值count的大小,若计数值count满足count ≤k-p,每次并行输出p个RS码信息符号,若不满足则输出k-count个RS码信 息符号;
A2.3、输出k个RS码信息符号后,暂停输出,等待至少一个FPGA时钟周 期后计数值count清零;
第三步,生成计算使能信号,
A3.1、判断第一步RS码并行生成多项式系数是否生成,若生成则转入 步骤A3.2;
A3.2、按第二步生成的并行RS码信息符号的数据时钟进行累加计数, 每次累加值为p;
A3.3、当计数值小于等于k时,生成计算使能信号为1,转入第四步, 否则生成计算使能信号为0,转入第五步;
第四步,利用接收到的RS码并行生成多项式系数和RS码并行符号,完成 RS码的符号并行计算,得到RS码校验符号;
在n-k个m位宽的寄存器R0~Rn-k-1构成的线性反馈移位寄存器结构中完 成RS码校验符号的并行计算,线性反馈移位寄存器每次移入p个RS码信息符 号时,与寄存器R0~Rn-k-1的值构成(n-k+p)个符号构成的向量,每个寄存器 运算时,截取该向量中的P+1个符号与该寄存器更新值时使用对应的p+1个并 行生成多项式系数相乘后求和,即得到该寄存器的更新值;当移入k-count个 RS码信息符号时,与寄存器R0~Rn-k-1的值构成(n-count)个符号向量,每 个寄存器运算时,截取符号向量中的k-count+1个符号与该寄存器更新值时使 用对应的k-count+1个并行生成多项式系数相乘后求和,即得到该寄存器的更 新值,此时寄存器R0~Rn-k-1的值即为n-k个RS码校验符号。
第五步,将第一步中各寄存器的值依次输出即得到RS码校验符号。
本发明与现有技术相比具有如下优点:
(1)本发明将有限域域多项式作为有限域乘法子模块的输入配置参数,利 用移位异或方式实现有限域上的乘法运算,将RS码生成多项式作为RS码并行 生成多项式系数计算模块的输入配置参数,利用RS码并行生成多项式系数产生 模块计算并行编码所需的并行生成多项式系数,以此为基础实现实时可配置的 通用RS码并行编码输出,因而具有广泛的适应性;
(2)本发明使用线性反馈移位寄存器结构在外部输入配置参数RS码生成 多项式系数时,用于RS码并行生成多项式系数的计算,在RS码并行生成多项 式系数计算完成后,用于RS码符号并行计算,节省了FPGA芯片资源;
(3)本发明可根据外部输入的配置参数RS码生成多项式完成任意并行度 小于RS码信息符号数k的并行生成多项式系数产生;可根据外部输入的配置参 数有限域域多项式,实现不同有限域域多项式的实时配置功能。
附图说明
图1为本发明RS码符号线性反馈移位寄存器结构示意图;
图2为本发明RS码并行生成多项式系数计算流程图;
图3为本发明RS码并行编码实现框图。
具体实施方式
在下面的描述中以实际示例阐述了相关实施细节以便于充分理解本发明。 但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可 以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体 实施的限制。
根据有限域理论,若有限域GF(23)的域多项式为f(x)=x3+x+1,定义α为域 多项式的一个根,则αk,k=0,…,6均为域多项式的根,αk与0共8个元素构成了 该扩展域的基。基与其二进制及十进制表示的对应关系如下表所示。
有限域上的运算以多项式为基础进行,乘法运算时按多项式幂次相加,加 法运算时按异或方式进行。例如,α3×α4=(α+1)(α2+α)=α3+α=1,即 α3×α4=α7=c,事实上,对该有限域的任一非零元素x,都有x7=1。
如图1,RS码编码以线性反馈移位寄存器结构实现,以5级线性反馈移位 寄存器为例,反馈值为寄存器R0的值,与RS码生成多项式系数g0~gn-k相乘, 其中,g0恒为1。反馈值与每个寄存器左边的值求和后作为该寄存器的更新值, 其中,寄存器R4移入值即为输入的RS码信息符号。该结构适用于每次移入一 个RS码信息符号的编码运算。
如图2,本发明所述RS码并行生成多项式系数的计算流程:
在计算RS码并行生成多项式系数时,使用线性反馈移位寄存器结构实现。 寄存器R0的值作为反馈值,与RS码生成多项式系数g1~gn-k-1相乘后,分别与寄 存器R1~Rn-k-1求和后,作为寄存器R0~Rm-k-2的更新值,寄存器Rn-k-1的更新值为反 馈值与gn-k相乘的结果。各寄存器的值更新后,即为一次迭代操作。通过一次 迭代即可得到RS码符号并行度为2的并行生成多项式系数。在RS码码长为n, RS码信息符号数为k,符号并行度为p时,RS码并行生成多项式系数的计算步 骤如下所示,
步骤一,取外部输入的配置参数RS码生成多项式的(n-k)个系数,作为移 位寄存器的初始值;取寄存器R0的状态值与(gn-k,…,g1)通过有限域乘法子模块 相乘得到中间结果(tn-k,…,t1),转入步骤二。
步骤二,移位寄存器右移一个符号与中间结果(tn-k,…,t1)按位异或得到 (rn-k,…,r1),转入步骤三。
步骤三,更新移位寄存器状态,并且迭代次数加1。如果迭代次数等于外 部输入的配置参数RS码符号并行度p,则输出所有计算得到的系数值与系数计 算完成指示信号,否则转入步骤二。
RS码并行生成多项式系数的计算,以RS码符号并行度取4时为例,在RS 码生成多项式输入后,寄存器R0~R4分别初始化为RS码生成多项式系数g1~g5, 第一次移位时,反馈值g1与g5相乘后得到g5g1更新寄存器R4,同理计算出寄存 器R0~R3的更新值;第二次移位时,得到寄存器R0~R4的更新值,与5个常系数1 共同构成5个寄存器对应的符号并行度为3的所有并行生成多项式系数如下表 所示。
如图3,本发明进行RS码并行编码时,可按如下步骤进行:
步骤一,RS码并行生成多项式系数计算模块接受外部输入配置参数:RS 码生成多项式系数、RS码码长n、RS码信息符号数k,RS符号位宽m及符号并 行度p。设置n-k个m位宽的寄存器R0~Rn-k-1构成线性反馈移位寄存器结构。 在加载有限域域多项式信号高有效时,R0~Rn-k-1分别初始化为RS码生成多项 式系数g1~gn-k,然后完成p次并行生成多项式系数计算。每次计算时,寄存 器R0的值作为反馈值与g1~gn-k相乘得到n-k个结果,分别与各寄存器移入值 求和后作为各寄存器的更新值,其中,寄存器Rn-k-1的移入值恒为0。计算完 成后每个寄存器对应p个并行生成多项式系数,与常系数1构成共(p+1)× (n-k)个并行生成多项式系数输出,以及系数计算完成指示信号。
步骤二,RS码并行计算使能产生模块,接受RS码并行生成多项式系数 计算模块输出的系数计算完成指示信号,根据外部输入的RS码配置参数: RS码码长n,RS码信息符号数k,以及RS码符号并行度p,对RS码符号串 并转换模块输出的RS码信息符号数进行计数,当计数值小于等于k时,输 出计算使能信号为1,否则输出计算使能信号为0,持续(n-k)个FPGA工作 时钟周期后,清零计数器并重新开始计数。
步骤三,RS码符号串并转换模块,根据外部输入的配置参数符号并行 度p及RS码信息符号数k,对输入待编码信息进行串并转换,每m比特构 成一个RS码信息符号。并对RS码信息符号数进行计数,当计数值count小 于等于k-p时,每次并行输出为p×m比特,即每次输出p个RS码信息符号; 否则输出k-count个RS码信息符号。
步骤四,RS码符号并行计算模块接受RS码并行生成多项式系数产生模块 输出的并行生成多项式系数、RS码符号串并转换模块输出的并行RS码符号,在 RS码并行计算使能模块输出的计算使能信号为1时,完成RS码的符号并行计 算;当计算使能信号为0时,将各寄存器的值依次输出即得到RS码校验符号。
当进行RS码符号并行计算时,以定义在GF(24)的RS(15,10)为例,若记输 入的RS信息符号为M0~M8,当线性反馈移位寄存器每次移入一个RS码信息符 号时,寄存器R0~R4在第4~第7次的更新值如下表所示。
若外部输入配置参数RS符号并行度p为3时,即每次线性反馈移位寄存器 将移入3个RS码信息符号进行编码计算。输入的3个RS码信息符号为M5~M7, 与当前各寄存器的值M0~M4构成的长度为8的符号向量。求寄存器R0的更新值 时,从符号向量中截取4个值{M3,M2,M1,M0},分别与寄存器R0对应的并行生成 多项式系数{1,g1,g2+g1g1,g3+g1g1g1}分别相乘后求和记得到R0的更新值 M3+M2g1+M1(g2+g1g1)+M0(g3+g1g1g1),依此类推,寄存器R4的更新值 为M7+M2g5+M1g5g1+M0(g5g2+g5g1g1),求出5个更新值后更新寄存器 R0~R4即完成了一次RS码符号并行编码计算。在RS码并行计算使能产生模块 输出的计算使能有效时,由于RS码信息码元数为10,不为RS码符号并行度3 的整数倍,因此前3次并行编码时,每次移入3个RS码信息符号,第4次并行 编码时,移入1个RS码信息符号,共完成10个RS码信息符号的并行编码后, 寄存器的值即RS码校验符号。
虽然本发明已通过实施例说明如上,但这些实施例并非用以限定本发明或 本领域的技术人员,在不脱离本发明的精神和范围内,应有能力对该较佳实施 例做出各种改正和补充,因此,本发明的保护范围以权利要求书的范围为准。
机译: 一种用于基于DownMIX信号表示,音频信号解码器,音频信号变码器,音频信号编码器,音频方法,编码方法和音频比特来提供一个或多个用于提供UPMIX信号表示的调整参数的装置资讯
机译: 一种用于基于DownMIX信号表示,音频信号解码器,音频信号变码器,音频信号编码器,音频方法,编码方法和音频比特来提供一个或多个用于提供UPMIX信号表示的调整参数的装置信息
机译: 一种用于基于DownMIX信号表示,音频信号解码器,音频信号变码器,音频信号编码器,音频方法,编码方法和音频比特来提供一个或多个用于提供UPMIX信号表示的调整参数的装置信息