一种最大迭代次数可变的ldpc译码方法和译码器的制作方法

文档序号:7506770阅读:171来源:国知局
专利名称:一种最大迭代次数可变的ldpc译码方法和译码器的制作方法
技术领域
本发明涉及一种最大迭代次数可变的LDPC译码方法和译码器。
背景技术
1993年,随着turbo码的问世,迭代译码(iterative decoding)的概念引起了人们的高度重视。计算机仿真表明,采用迭代译码,系统的渐进性能逼近于最大似然译码。迭代译码的另外一个重要贡献在于,它引起了人们对于LDPC码(Low Density Parity Check Code)的重新发现。实际上,LDPC码可以看作是一种由许多单检码(single parity check (SPC) codes)构成的“特殊的并行级联码”,这种通过把多个简单码进行级联的编码形式为迭代译码提供了基础,其初衷在于以较低的译码复杂度来逼近最大似然译码,以取得较大的编码增益。如今,LDPC码以比Turbo码更好的性能、较低的错误平层得到人们的更高关注,应用到了数字电视、无线局域网、CCSDS等标准中。FPGA是按时间顺序对数据进行处理的,为了进行实时处理,FPGA的输入数据和输出数据都必须是连续的。对于采用迭代译码的LDPC来说,迭代次数越多编码增益越高,但迭代次数越多LDPC译码器的处理时间就越长。为了防止数据发送过快而译码处理速度较慢,导致发生新数据没有被写入或旧数据被重复写入的错误,所以一般采用数据输入缓冲模块来调整系统的接收数据速率,使得输入数据信息以一定的速率被写入,并以适应译码器处理的速率被读出。工程中常用的一种方法是在对本帧数据进行迭代译码时,可以同时进行接下来一帧数据的缓冲,缓冲单元的大小应能容纳两帧帧长的数据,因为对本帧数据进行处理时需要用到该帧的输入数据。而迭代译码的处理时间为接收并存储一帧数据的时间。图I给出了这种方法的时序图,其中we_ram_fl,we_ram_f2均为写使能信号(为高电平时写)。假设在存储一帧数据的时间内可进行的最大迭代次数MAX_iter_0ne,当迭代译码在这个迭代次数内译码成功,译码处理器将停止工作,直到下一帧数据到来后再继续进行译码。而迭代次数达到这个固定的最大迭代次数时仍然没有正确译码,也要被强行停止迭代译码。这种最大迭代次数在译码过程中选择为一个固定值的方法。在一定信噪比条件下,一部分译码的实际迭代次数往往要小于这个固定的最大迭代次数,因此造成时间上的浪费。而另一部分译码的实际迭代次数达到这个固定的最大迭代次数时仍然没有正确译码,却被强行停止迭代译码,会造成译码性能的损失。为了解决这个问题,文献(李刚;黑勇;周玉梅;仇玉林,动态调整最大迭代次数的奇偶校验码迭代译码方法,中国科学院电子研究所,2007. 11. 21,申请号200710177791. 5,专利公开号CN 101442316A)中提供一种动态最大迭代次数可变的迭代译码方法,但文献中提供的这种方法没有考虑到具体的硬件实现,即预先将每次LDPC译码时实际使用的迭代次数与最大迭代次数的差值累加,将该累加结果作为剩余可用的迭代次数R ;根据当前剩余可用迭代次数R与最大迭代次数的初始值, 动态调整本次的最大迭代次数,这种方法需要在译码前将所有的译码输入数据进行存储, 然后再进行译码,这种方法是一种非实时型的译码,且需要花费大量的存储资源,在硬件资源受限的系统中是不可行的。

发明内容
本发明针对现有技术的不足,提供了一种最大迭代次数可变的LDPC译码方法和译码器,本发明在对LDPC译码过程中每一帧数据进行译码时间动态的分配最大迭代译码时间,可以在不改变硬件资源的前提下,实现了最大迭代次数的可变性,并保证了译码操作的实时性。本发明的技术解决方案是一种最大迭代次数可变的LDPC译码方法,其特征在于在对当前帧数据进行译码前若对前一帧数据进行迭代译码所占用时间小于或等于存储一帧数据的时间,则为当前帧数据分配的最大迭代译码时间为存储N-I帧数据的时间,其中N为译码过程中存储的最大巾贞数;若对前一帧数据进行迭代译码所占用时间大于存储一帧数据的时间,则为当前帧数据分配的迭代译码时间为存储N-I帧数据的时间减去对前一帧数据进行迭代译码所超出存储一帧数据的时间;在对当前帧数据进行译码时在最大迭代译码时间内对当前帧数据进行译码,并对当前帧数据译码获得的校验结果进行校验,若在最大迭代译码时间内校验通过,则将译码结果数据输出,并将对当前帧进行迭代译码所占用的实际时间作为对前一帧数据进行迭代译码所占用时间返回;若在最大迭代译码时间内校验不通过,则最大迭代译码时间到时,直接输出译码结果数据,并将最大迭代译码时间作为对前一帧数据进行迭代译码所占用时间返回。在译码过程中存储的最大帧数N为大于I的整数。一种最大迭代次数可变的LDPC译码器,包括控制模块、存储器地址产生模块、译码处理模块、存储模块,所述控制模块根据前一帧数据迭代译码所占用的时间,确定为当前帧数据分配的最大译码迭代时间;所述存储器地址产生模块用于为存储模块提供读写地址;所述译码处理模块用于根据LDPC译码算法对输入的帧数据进行译码,并对当前帧数据译码获得的校验结果进行校验;所述存储模块用于存储输入的待译码的帧数据、译码处理模块在译码迭代运算中产生的中间数据及译码结果数据,所述控制模块接收译码处理模块返回的对前一帧数据迭代译码所占用的时间,若对前一帧数据进行迭代译码所占用时间小于或等于存储一帧数据的时间,则为当前帧数据分配存储N-I帧数据的时间作为最大迭代译码时间,其中N为中所述储存模块可存储的最大帧数;若对前一帧数据进行迭代译码所占用时间大于存储一帧数据的时间,则为当前帧数据分配存储N-I帧数据的时间减去对前一帧数据进行迭代译码所超出存储一帧数据的时间作为最大迭代译码时间;所述译码处理模块在所述控制模块为当前帧数据分配的最大迭代译码时间内对当前帧数据进行译码,并对当前帧数据译码获得的校验结果进行校验,若在最大迭代译码时间内校验通过,则将译码结果输出给所述存储模块,并将对当前帧进行迭代译码所占用的实际时间作为对前一帧数据进行迭代译码所占用时间输出给所述控制模块;若在分配的最大迭代译码时间内校验未通过,则在最大迭代译码时间到时的时刻输出译码结果,并返回将最大迭代译码时间作为对前一帧数据进行迭代译码所占用时间输出给所述控制模块。所述存储模块可存储的最大帧数N为大于I的整数。本发明与现有技术相比具有如下优点本发明在译码过程中通过对前一帧数据进行译码的实际迭代次数所占用的时间进行计算产生为当前帧数据分配的本次迭代的最大迭代时间,有效地将一部分译码的实际迭代次数少于分配的最大迭代时间的资源用于对下一帧数据的译码,同时将最大迭代时间内未能正确译码的帧数据直接停止译码,与现阶段最大迭代次数为固定值的译码方案相比,可以有效利用LDPC译码过程中的空闲时间,来提高译码器的译码性能。在同样的数据吞吐率下,有效的提高了译码性能,并在同样的译码性能情况下,有效地降低了使用的FPGA 硬件资源。采用本发明进行LDPC译码,译每一帧数据的时间最少为存储一帧数据的时间 MAX_iter_one,译每一帧数据的最长时间为(N_l) *MAX_iter_one,N为存储模块可存储的最大帧数,为大于I的整数。这就保证了译码性能优于现阶段工程中常用的固定最大迭代次数缓存两帧的情况。


图I为工程中常用的实时LDPC译码器时序图;图2为本发明缓冲四帧数据译码时序图;图3为本发明仿真结果曲线图;图4为本发明译码器结构示意图;图5为控制|旲块广生最大迭代时间结构不意图;图6为译码处理模块译码流程图。
具体实施例方式下面就结合附图对本发明做进一步介绍。本发明为了利用LDPC译码过程中对一帧数据停止译码但尚未开始对新一帧数据进行译码的空闲时间(即译码成功但迭代时间还没达到缓冲一帧时间MAX_iter_one的时间间隔)实现了对LDPC译码能力的扩展。图2给出了译码过程中存储的最大帧数N = 4的一个特例,本发明对N为任意大于 I的正整数具有通用性。从图2可以看到,处理每一帧数据的迭代时间之间都有重叠,且处理每一帧数据的时间为均存储一帧时间的三倍(即3*MAX_iter_one)。但在实际译码时,在 3*MAX_iter_one的时间内,如果对当前巾贞的译码成功,则在译码停止工作的剩余时间,为了充分利用译码处理资源可以进行对下一帧数据继续进行译码。此种对译码处理资源进行分时复用的方案,使处理每一帧数据所使用译码处理资源的最少时间为存储一帧的时间MAX_ iter_one,最长时间为存储三巾贞的时间3*MAX_iter_one,这就保证了译码性能优于现阶段工程中常用的固定最大迭代次数缓存两帧的情況,如图3所示。如图4所示,为本发明所述译码器结构图,该译码器主要包括控制模块、存储器地 址产生模块、译码处理模块、存储模块。控制模块利用对前ー帧数据进行译码使用的实际迭 代次数pre_iter,来产生当前帧数据可使用的最大迭代次数curjter (译码过程中,一次 迭代运算所占用的时间为定值,因此迭代次数与迭代次数所占用的时间具有等价的換算性 质)。译码处理模块对输入的帧数据进行迭代译码。存储模块用来存储输入的待译码的帧 数据、译码处理模块在中间迭代运算过程中产生的中间数据及最终的译码结果数据。地址 产生模块用于为存储模块提供读写地址。对于缓冲N帧数据的情況,如图4所示译码器的工作过程如下存储ー帧数据的时间为MAX_iter_0ne,对当前帧数据进行译码的所需最大迭代次 数所对应的时间为cur_iter,前一帧数据实际使用的迭代次数对应的时间为pre_iter,迭 代译码过程中超出存储ー帧数据的时间为beyoncLiter。则控制模块对当前帧数据处理资 源的分配策略为如果pre_iter <= MAX_iter_one, beyond_iter = 0 ;否贝Ijbeyond_iter = pre_iter_MAX_iter_one。译码吋,控制模块将输入的待译码的帧数据存储到存储模块,初始化cur_i为0 次,cur_iter 为 MAX_iter_one*(N_l),pre_iter 为 0。控制模块工作包括产生存储模块中对帧数据的缓冲地址;产生存储模块的读写 门控,控制帧数据的读入写出順序。通过上ー帧数据的实际迭代译码所占用的时间pre_ iter,产生为当前帧数据分配的最大迭代运算对应的占用时间curjter。即如上所述,如果 beyond_iter < = MAX_iter_one 时,cur_iter = MAX_iter_one* (N-I),否贝[|,cur_iter = MAX_iter_one*(N-I)-beyond_iter。如图5所示,给出了控制模块产生当前帧的最大迭代次数电路框图,其中+表示加 法器,输出为两输入数据的和。Cm表示大于比较器,如果第一个输入数据大于第二个输入 数据,则输出为高电平,否则为低电平。S表示选择器,当选择器下面的控制电平为高电平 时,输出为选择器的第一个输入数据,否则,输出为第二个输入数据。图5中M = MAX_iter_ one, L = MAX_iter_one* (N-I)。译码处理模块的功能主要是进行迭代译码,对于第i次迭代(0< i < cur_iter), 如图6所示,执行如下迭代过程A)校验节点更新对每个m及n G N (m),计算
权利要求
1.一种最大迭代次数可变的LDPC译码方法,其特征在于包括以下步骤在对当前帧数据进行译码前若对前一帧数据进行迭代译码所占用时间小于或等于存储一帧数据的时间,则为当前帧数据分配的最大迭代译码时间为存储N-I帧数据的时间,其中N为译码过程中存储的最大帧数;若对前一帧数据进行迭代译码所占用时间大于存储一帧数据的时间,则为当前帧数据分配的迭代译码时间为存储N-I帧数据的时间减去对前一帧数据进行迭代译码所超出存储一帧数据的时间;在对当前帧数据进行译码时在最大迭代译码时间内对当前帧数据进行译码,并对当前帧数据译码获得的校验结果进行校验,若在最大迭代译码时间内校验通过,则将译码结果数据输出,并将对当前帧进行迭代译码所占用的实际时间作为对前一帧数据进行迭代译码所占用时间返回;若在最大迭代译码时间内校验不通过,则最大迭代译码时间到时,直接输出译码结果数据,并将最大迭代译码时间作为对前一帧数据进行迭代译码所占用时间返回。
2.如权利要求I所述的一种最大迭代次数可变的LDPC译码方法,其特征在于在译码过程中存储的最大帧数N为大于I的整数。
3.一种最大迭代次数可变的LDPC译码器,包括控制模块、存储器地址产生模块、译码处理模块、存储模块,所述控制模块根据前一帧数据迭代译码所占用的时间,确定为当前帧数据分配的最大译码迭代时间;所述存储器地址产生模块用于为存储模块提供读写地址;所述译码处理模块用于根据LDPC译码算法对输入的帧数据进行译码,并对当前帧数据译码获得的校验结果进行校验;所述存储模块用于存储输入的待译码的帧数据、译码处理模块在译码迭代运算中产生的中间数据及译码结果数据,其特征在于所述控制模块接收译码处理模块返回的对前一帧数据迭代译码所占用的时间,若对前一帧数据进行迭代译码所占用时间小于或等于存储一帧数据的时间,则为当前帧数据分配存储N-I帧数据的时间作为最大迭代译码时间,其中N为中所述储存模块可存储的最大帧数;若对前一帧数据进行迭代译码所占用时间大于存储一帧数据的时间,则为当前帧数据分配存储N-I帧数据的时间减去对前一帧数据进行迭代译码所超出存储一帧数据的时间作为最大迭代译码时间;所述译码处理模块在所述控制模块为当前帧数据分配的最大迭代译码时间内对当前帧数据进行译码,并对当前帧数据译码获得的校验结果进行校验,若在最大迭代译码时间内校验通过,则将译码结果输出给所述存储模块,并将对当前帧进行迭代译码所占用的实际时间作为对前一帧数据进行迭代译码所占用时间输出给所述控制模块;若在分配的最大迭代译码时间内校验未通过,则在最大迭代译码时间到时的时刻输出译码结果,并返回将最大迭代译码时间作为对前一帧数据进行迭代译码所占用时间输出给所述控制模块。
4.如权利要求2所述的一种最大迭代次数可变的LDPC译码器,其特征在于所述存储模块可存储的最大帧数N为大于I的整数。
全文摘要
本发明公开了一种最大迭代次数可变的LDPC译码方法和译码器,本发明根据对前一帧数据进行迭代译码的时间确定对当前帧数据可分配的最大迭代译码时间,并在分配的最大迭代译码时间内或最大迭代译码时间到时输出当前帧的译码结果数据。采用本发明可以在不改变硬件资源的前提下,实现了最大迭代次数的可变性,并保证了译码操作的实时性。
文档编号H03M13/11GK102594368SQ20121005178
公开日2012年7月18日 申请日期2012年2月29日 优先权日2012年2月29日
发明者刘洁, 杨新权, 谢天骄, 陈超, 靳凡 申请人:西安空间无线电技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1