译码方法及译码器与流程

文档序号:19280848发布日期:2019-11-29 22:55阅读:924来源:国知局
译码方法及译码器与流程

本发明涉及通信领域,同时涉及计算机技术领域,主要涉及一种译码方法、ldpc译码方法及译码器。



背景技术:

ldpc(low-densityparity-check,低密度奇偶校验)码是一种具有稀疏校验矩阵的线性分组码,其具有优良的抗突发错误、接近于香农限的误比特性能、易于并行化实现等优点,广泛应用于在现行主流高吞吐无线通信标准协议中,比如ieee802.11n/ac、lte、dvb等。从过去几十年的发展来看,ldpc译码器向着更小面积、更高吞吐的方向发展,因此也越来越多应用在对功耗、面积敏感的移动设备上,如手机等。

ldpc码的译码算法基于稀疏矩阵的并行迭代译码算法,其运算量低于turbo码译码算法,在硬件上容易实现,在大容量通信应用中具有优势。ldpc码的码率可以任意构造,有更大的灵活性。另外,ldpc码具有更低的错误平层,可以应用于有线通信、深空通信以及磁盘存储等对码率要求苛刻的场合。

译码器的吞吐是本领域技术人员致力于提高的重要参数。想要在不提高实现复杂度的条件下提升ldpc译码器的吞吐,可通过设计译码过程中的调度策略来实现更快收敛,典型的如tpmp(two-phasemessage-passing)、tdmp(turbo-decodingmessage-passing)和vss(verticalshuffleschedule)等策略。在ldpc码的迭代译码结构中,常用的二分树结构将计算节点划分为变量节点和校验节点两类。在tpmp中,所有校验节点计算完成以后再进行变量节点的计算,所有变量节点计算以后再进行校验节点的计算,即校验节点和变量节点分时计算更新。一种校验节点和变量节点时间上交错运算更新的策略可以提高迭代译码的收敛速度,称为分层迭代。

分层迭代分为横向分层迭代和纵向分层迭代。横向分层迭代中,一次迭代过程分为若干子迭代,每次子迭代中更新部分校验节点和全部变量节点,如tdmp策略。纵向分层迭代中,一次迭代过程分为若干子迭代,每次子迭代中更新部分变量节点和全部校验节点,如vss策略。tdmp策略有效兼顾了吞吐量和实现复杂度,成为中高速ldpc译码场景下的主流技术。

现有技术中的一种ldpc码的tdmp分层迭代译码中,其计算过程按行进行,其中ldpc译码器包括行分层,行分层的结构以ldpc码的校验矩阵h的行块作为分层的依据,在每次迭代周期内,获得校验矩阵h的非零位置,标记每个比特在最后一个有效行块的位置获得标记位置,在获得每个比特的最终结果后,与上一比特的校验的最终结果进行运算,得到所有比特的校验结果。该方法中由于校验矩阵的稀疏性,某个比特的最终迭代结果在所有行的计算完成之前已经得到,此时后面若干次的迭代计算可忽略该比特以节省运算量。但是该方法的吞吐提升有限,同时该方法的适用范围有限。

现有技术中另一种ldpc码的分层迭代译码中,先确定基础校验矩阵和扩展因子,然后根据该基础校验矩阵和扩展因子进行结构化ldpc译码;该方法利用校验矩阵中任意一列中相邻的非零块元素值之间的关系,使得ldpc码采用分层译码时无需等待时间或者减少了等待时间,进而提高了译码器的吞吐率。但是,该方依赖校验矩阵中同列相邻块之间的关系,缺乏通用性。

由于ldpc的校验矩阵为稀疏矩阵,即校验矩阵中的绝大部分元素为0,现有的调度策略中存在一定的无效运算;将这些无效运算剔除,可减少单次迭代时长,进而提高了ldpc吞吐速率。但是,在现有技术中,尚无可将全部的无效运算剔除的方法,现有技术的译码器或对无效运算的压缩量不足,或对校验矩阵的特性要求较高,如何针对更一般性的校验矩阵进一步地压缩无效运算的比例以提高吞吐速率是业内人士亟需解决的技术问题。



技术实现要素:

本发明公开了一种ldpc译码方法,该方法基于tdmp调度策略,更新部分校验节点后,更新全部变量节点,然后再更新另一部分校验节点后再更新全部变量节点,重复此过程;其中,该方法在更新部分校验节点的运算划分为若干子操作,将这些子操作和更新全部变量节点的操作组织成两级流水线,提高了分量译码器的利用率;该方法结合并行度要求,构造流水线的控制逻辑,以跳过校验矩阵中的全零伪块,可减少迭代耗时;尤其是,该方法对校验矩阵进行了行列交换,以减少无效操作的数量,显著降低了迭代耗时,提高了吞吐。

本发明公开的译码方法包括如下步骤:

步骤101:选择译码并行度g,将校验矩阵h划分为子校验矩阵;

其中,将校验矩阵h的块列分为g份,每份包含j个块列,此时校验矩阵的列数表示为jgz,其中z表示扩展因子;将校验矩阵进行划分得到的子校验矩阵表示为h1、h2...hg;其中,划分策略为均匀划分,如果h的块列数不是g整数倍,需要在h后面补填充列,该填充列中的块矩阵全为零矩阵;

步骤102:压缩子校验矩阵h1、h2...hg中的全零块矩阵,得到伪块阵列y;

其中,压缩子校验矩阵h1、h2...hg中的全零块矩阵的策略如下:

(1)对子校验矩阵进行全零块后移处理,使得所有全零块集中在列号大的位置;将子校验矩阵hg中的第k行中的全零块后移,使得所有全零块集中在列号大的位置;其中,g=1,2...g;k=1,2...k,k为子校验矩阵的最大行数;

(2)在对h1、h2...hg中的全部行进行全零块后移处理后,得到e1、e2...eg;

(3)计算e1、e2...eg中第k行非零块个数的最大值,记为lk;其中,y中第k行共有ik个元素,第i个元素由e1、e2...eg中第k行第i列共g个块矩阵拼接而成,为一个伪块;其中i=1,2...lk;

步骤103:将伪块阵列y中第k个块行对应的z个校验节点的计算分解为lk次子校验运算,每次子校验运算处理一个伪块;

在一个优选实施例中,一次子校验运算包含bp算法中水平运算的所有步骤:

获取当前伪块对应的变量节点的输出、如果当前伪块不是当前块行首个伪块的话则获取前一个伪块的计算水平运算输出、计算当前伪块的水平运算输出;

如果当前伪块是当前块行最后一个伪块,则当前伪块的输出即是当前块行bp算法水平运算的最终结果;

上述bp算法包括bp算法本身及其变形算法;bp算法的变形算法包括最小和算法、归一化最小和算法、偏移最小和算法;

步骤104:将y中第(k-1modk)行中第i个伪块对应的gz个变量节点的计算一次性完成,其操作为对当前变量节点所有输入求bp算法的垂直运算。

在一个优选实施例中,步骤103和步骤104同时进行形成流水线。

在一个优选实施例中,当一个伪块中的g个块矩阵中存在零矩阵,则将对应零矩阵的流水线电路关闭。

在一个优选实施例中,步骤103中即将使用的变量节点如果正被步骤104处理,则等待步骤104处理完成。

在一个优选实施例中,在上述方法所述的迭代运算完成后,将判决数据按照步骤101中的子校验矩阵划分策略进行逆处理,得到译码输出。

本发明还公开了一种ldpc译码方法,该方法包括如下步骤:

步骤201,随机选择多种不同的子校验矩阵划分策略;

步骤202,依次计算上述划分策略的迭代耗时;

步骤203,选择上述迭代耗时最小的划分策略进行译码。

其中,步骤202的计算方法为上述实施方式所述的计算方法。

本发明还公开了一种ldpc译码方法,该方法包括如下步骤:

步骤301:随机选择多种不同的校验矩阵h行交换策略;其中,由于对校验矩阵进行行列交换可以有效提高压缩策略的效果。

步骤302,依次计算上述行交换策略的迭代耗时;

步骤303,选择上述迭代耗时最小的行交换策略进行译码。

其中,步骤302的的计算方法为上述实施方式所述的计算方法。

本发明还公开了一种ldpc译码方法,该方法包括如下步骤:

步骤401:随机选择多种不同的子校验矩阵划分策略与行交换策略的组合策略;

步骤402:依次计算上述组合策略的迭代耗时;

步骤403:选取上述迭代耗时最小的组合策略进行译码。

其中,步骤402的的计算方法为上述实施方式所述的计算方法。

本发明还公开了一种译码器,其包括:

划分模块:该划分模块用于选择译码并行度g,将校验矩阵h划分为子校验矩阵;

其中,将校验矩阵h的块列分为g份,每份包含j个块列,此时校验矩阵的列数表示为jgz,其中z表示扩展因子;将校验矩阵进行划分得到的子校验矩阵表示为h1、h2...hg;其中,划分策略为均匀划分,如果h的块列数不是g整数倍,需要在h后面补填充列,该填充列中的块矩阵全为零矩阵;

压缩模块:该压缩模块用于压缩子校验矩阵h1、h2...hg中的全零块矩阵,得到伪块阵列y;

其中,压缩子校验矩阵h1、h2...hg中的全零块矩阵的策略如下:

(1)对子校验矩阵进行全零块后移处理,使得所有全零块集中在列号大的位置;将子校验矩阵hg中的第k行中的全零块后移,使得所有全零块集中在列号大的位置;其中,g=1,2...g;k=1,2...k,k为子校验矩阵的最大行数;

(2)在对h1、h2...hg中的全部行进行全零块后移处理后,得到e1、e2...eg;

(3)计算e1、e2...eg中第k行非零块个数的最大值,记为lk;其中,y中第k行共有ik个元素,第i个元素由e1、e2...eg中第k行第i列共g个块矩阵拼接而成,为一个伪块;其中i=1,2...lk;

第一运算模块:该第一运算模块用于将伪块阵列y中第k个块行对应的z个校验节点的计算分解为lk次子校验运算,每次子校验运算处理一个伪块;

第二运算模块:该第二运算模块用于将将y中第(k-1modk)行中第i个伪块对应的gz个变量节点的计算一次性完成,其操作为对当前变量节点所有输入求bp算法的垂直运算。

在一个优选实施例中,该译码器还包括译码模块:该译码模块用于在迭代运算完成后,将判决数据按照划分模块中的子校验矩阵划分策略进行逆处理,得到最终译码输出。

在一个优选实施例中,一次子校验运算包含bp算法中水平运算的所有步骤:

获取当前伪块对应的变量节点的输出、如果当前伪块不是当前块行首个伪块的话则获取前一个伪块的计算水平运算输出、计算当前伪块的水平运算输出;

如果当前伪块是当前块行最后一个伪块,则当前伪块的输出即是当前块行bp算法水平运算的最终结果。

在一个优选实施例中,上述bp算法包括bp算法本身及其变形算法;bp算法的变形算法包括最小和算法、归一化最小和算法、偏移最小和算法;

在一个优选实施例中,第一运算模块和第二运算模块同时运行形成流水线。

在一个优选实施例中,当一个伪块中的g个块矩阵中存在零矩阵,则将对应零矩阵的流水线电路关闭。

在一个优选实施例中,第一运算模块中即将使用的变量节点如果正被第二运算模块处理,则等待第二运算模块处理完成。

本发明的译码方法及译码器将tdmp调度策略中的校验节点运算和变量节点运算构造成了两级流水线,提高了分量译码器的利用率。

本发明的译码方法及译码器将一次校验节点运算以伪块为单位分解成若干次子校验运算,在满足并行度要求的条件下提高分量译码器利用效率。

本发明的译码方法及译码器采用的校验矩阵压缩策略,有效压缩了校验矩阵中的无效运算,降低单次迭代时长,降低流水线功耗,提高了吞吐。

本发明的译码方法及译码器在校验矩阵压缩前,对校验矩阵进行行列交换,可以提高压缩策略,减少迭代耗时,提高了吞吐。

本发明的译码方法及译码器采用的存储器存取冲突规避方法,不但可以规避同时对存储器同一数据的读写操作,而且可以规避bp算法中水平运算未完成时的垂直运算,防止译码性能下降。

附图说明

图1为本发明的ldpc译码方法中校验矩阵图。

图2为本发明的ldpc译码方法中压缩矩阵图。

具体实施方式

为了对本发明的技术方案进行更详细的说明,以促进对本发明的进一步理解,下面结合附图描述本发明的具体实施方式。但应当理解,所有示意性实施例及其说明用于解释本发明,并不构成对本发明的唯一限定。同时,在内部逻辑不冲突的情况下,各个实施方式可以进行组合。

在本发明的ldpc译码方法中,由于无线协议中使用的ldpc校验矩阵h由z×z的块矩阵构成,块矩阵分为零矩阵和非零矩阵两种,分别用“-”和“p”表示零矩阵和非零矩阵,其中z表示扩展因子。为了表示方便,这里对于不同的非零块矩阵也均用p表示。图1示出了典型的校验矩阵,其中存在的大量零块矩阵导致了分层译码器等待,降低了分层译码器的利用率。

本发明的译码方法基于bp(beliefpropagation)迭代译码算法,可以有效提高分量译码器的利用率,该译码方法的主要步骤如下:

步骤101:选择译码并行度g,将校验矩阵h划分为子校验矩阵;具体的,将校验矩阵h的块列分为g份,每份包含j个块列,此时校验矩阵的列数表示为jgz,其中z表示扩展因子。

具体的,将校验矩阵进行划分的方案如下:

(1)划分得到的子校验矩阵表示为h1、h2...hg;

(2)划分策略为均匀划分,如果h的块列数不是g整数倍,则需要在h后面补填充列,该填充列中的块矩阵全为零矩阵。

步骤102:压缩子校验矩阵h1、h2...hg中的全零块矩阵,得到伪块阵列y;

其中,压缩子校验矩阵h1、h2...hg中的全零块矩阵的策略如下:

(1)对子校验矩阵进行全零块后移处理,使得所有全零块集中在列号较大的位置;

具体的,将子校验矩阵hg(其中,g=1,2...g)中的第k(k=1,2...k,k为子校验矩阵的最大行数)行中的全零块后移,使得所有全零块集中在列号较大的位置;

(2)在对h1、h2...hg中的全部行进行全零块后移处理后,得到e1、e2...eg;

(3)计算e1、e2...eg中第k行非零块个数的最大值,记为lk;其中,y中第k行共有ik个元素,第i(i=1,2...lk)个元素由e1、e2...eg中第k行第i列共g个块矩阵拼接而成,为一个伪块;

其中,伪块阵列y不必须为矩阵,因为y中每行元素的个数不一定相等,如图2所示,其中g=2;

该校验矩阵压缩策略,有效压缩了校验矩阵中的无效运算,降低单次迭代时长、可以降低流水线功耗。

步骤103:将伪块阵列y中第k个块行对应的z个校验节点的计算分解为lk次子校验运算,每次子校验运算处理一个伪块;其中

一次子校验运算包含bp算法中水平运算的所有步骤:

获取当前伪块对应的变量节点的输出、如果当前伪块不是当前块行首个伪块的话则获取前一个伪块的计算水平运算输出、计算当前伪块的水平运算输出;

如果当前伪块是当前块行最后一个伪块,则当前伪块的输出即是当前块行bp算法水平运算的最终结果。

上述bp算法指的是bp算法本身及其变形算法,常见的变形算法有最小和算法、归一化最小和算法、偏移最小和算法等。

如此,由于将一次校验节点运算以伪块为单位分解成若干次子校验运算,在满足并行度要求的条件下提高分量译码器利用效率。

步骤104:将y中第(k-1modk)行中第i个伪块对应的gz个变量节点的计算一次性完成,其操作为对当前变量节点所有输入求bp算法的垂直运算;其中,(k-1modk)表示求模运算,即(k-1)的运算结果对k取模。

其中,步骤103和步骤104同时进行形成流水线。如此,由于将tdmp调度策略中的校验节点运算和变量节点运算构造成了两级流水线,提高了分量译码器的利用率。

在上述方法中,当一个伪块中的g个块矩阵中存在零矩阵,则将对应零矩阵的流水线电路关闭以节省功耗和缓存。

在上述方法中,为了防止存储器冲突,步骤103中即将使用的变量节点如果正被步骤104处理,则需要等待步骤104处理完成。

由于上述存储器存取冲突规避方法,不但可以规避同时对存储器同一数据的读写操作,而且可以规避bp算法中水平运算未完成时的垂直运算,防止译码性能下降。

在上述方法的迭代完成后,将判决数据按照步骤101中的子校验矩阵划分策略进行逆处理,即可得到最终译码输出。

本发明还公开了一种ldpc译码方法,该方法包括如下步骤:

步骤201,随机选择多种不同的子校验矩阵划分策略;

步骤202,依次计算上述划分策略的迭代耗时;

步骤203,选择上述迭代耗时最小的划分策略进行译码。

其中,步骤202的具体步骤为:

步骤2021:选择译码并行度g,将校验矩阵h划分为子校验矩阵;具体的,将校验矩阵h的块列分为g份,每份包含j个块列,此时校验矩阵的列数表示为jgz,其中z表示扩展因子。

具体的,对校验矩阵进行的划分策略如下:

(1)划分得到的子校验矩阵表示为h1、h2...hg;

(2)划分策略为均匀划分,如果h的块列数不是g整数倍,则需要在h后面补填充列,该填充列中的块矩阵全为零矩阵。

步骤2022:压缩子校验矩阵h1、h2...hg中的全零块矩阵,得到伪块阵列y;

其中,压缩子校验矩阵h1、h2...hg中的全零块矩阵的策略如下:

(1)对子校验矩阵进行全零块后移处理,使得所有全零块集中在列号较大的位置;

具体的,将子校验矩阵hg(其中,g=1,2...g)中的第k(k=1,2...k,k为子校验矩阵的最大行数)行中的全零块后移,使得所有全零块集中在列号较大的位置;

(2)在对h1、h2...hg中的全部行进行全零块后移处理后,得到e1、e2...eg;

(3)计算e1、e2...eg中第k行非零块个数的最大值,记为lk;其中,y中第k行共有ik个元素,第i(i=1,2...lk)个元素由e1、e2...eg中第k行第i列共g个块矩阵拼接而成,为一个伪块;

步骤2023:将伪块阵列y中第k个块行对应的z个校验节点的计算分解为lk次子校验运算,每次子校验运算处理一个伪块;其中

一次子校验运算包含bp算法中水平运算的所有步骤:

获取当前伪块对应的变量节点的输出、如果当前伪块不是当前块行首个伪块的话则获取前一个伪块的计算水平运算输出、计算当前伪块的水平运算输出;

如果当前伪块是当前块行最后一个伪块,则当前伪块的输出即是当前块行bp算法水平运算的最终结果。

上述bp算法指的是bp算法本身及其变形算法,常见的变形算法有最小和算法、归一化最小和算法、偏移最小和算法等。

步骤2024:将y中第(k-1modk)行中第i个伪块对应的gz个变量节点的计算一次性完成,其操作为对当前变量节点所有输入求bp算法的垂直运算。

其中,步骤2023和步骤2024同时进行形成流水线。

在上述方法中,当一个伪块中的g个块矩阵中存在零矩阵,则将对应零矩阵的流水线电路关闭以节省功耗和缓存。

在上述方法中,为了防止存储器冲突,步骤2023中即将使用的变量节点如果正被步骤104处理,则需要等待步骤2024处理完成。

当采用对比的划分策略的方法足够多时,选中的方法依概率趋向最优。

本发明还公开了一种ldpc译码方法,该方法包括如下步骤:

步骤301:随机选择多种不同的校验矩阵h行交换策略;其中,由于对校验矩阵进行行列交换可以有效提高压缩策略的效果。

步骤302,依次计算上述行交换策略的迭代耗时;

步骤303,选择上述迭代耗时最小的行交换策略进行译码。

其中,步骤302的具体步骤为:

步骤3021:选择译码并行度g,将校验矩阵h划分为子校验矩阵;具体的,将校验矩阵h的块列分为g份,每份包含j个块列,此时校验矩阵的列数表示为jgz,其中z表示扩展因子。

具体的,对校验矩阵进行的划分策略如下:

(1)划分得到的子校验矩阵表示为h1、h2...hg;

(2)划分策略为均匀划分,如果h的块列数不是g整数倍,则需要在h后面补填充列,该填充列中的块矩阵全为零矩阵。

步骤3022:压缩子校验矩阵h1、h2...hg中的全零块矩阵,得到伪块阵列y;

其中,压缩子校验矩阵h1、h2...hg中的全零块矩阵的策略如下:

(1)对子校验矩阵进行全零块后移处理,使得所有全零块集中在列号较大的位置;

具体的,将子校验矩阵hg(其中,g=1,2...g)中的第k(k=1,2...k,k为子校验矩阵的最大行数)行中的全零块后移,使得所有全零块集中在列号较大的位置;

(2)在对h1、h2...hg中的全部行进行全零块后移处理后,得到e1、e2...eg;

(3)计算e1、e2...eg中第k行非零块个数的最大值,记为lk;其中,y中第k行共有ik个元素,第i(i=1,2...lk)个元素由e1、e2...eg中第k行第i列共g个块矩阵拼接而成,为一个伪块;

其中,伪块阵列y不必须为矩阵,因为y中每行元素的个数不一定相等。

步骤3023:将伪块阵列y中第k个块行对应的z个校验节点的计算分解为lk次子校验运算,每次子校验运算处理一个伪块;其中

一次子校验运算包含bp算法中水平运算的所有步骤:

获取当前伪块对应的变量节点的输出、如果当前伪块不是当前块行首个伪块的话则获取前一个伪块的计算水平运算输出、计算当前伪块的水平运算输出;

如果当前伪块是当前块行最后一个伪块,则当前伪块的输出即是当前块行bp算法水平运算的最终结果。

上述bp算法指的是bp算法本身及其变形算法,常见的变形算法有最小和算法、归一化最小和算法、偏移最小和算法等。

步骤3024:将y中第(k-1modk)行中第i个伪块对应的gz个变量节点的计算一次性完成,其操作为对当前变量节点所有输入求bp算法的垂直运算。

其中,步骤2023和步骤2024同时进行形成流水线。

在上述方法中,当一个伪块中的g个块矩阵中存在零矩阵,则将对应零矩阵的流水线电路关闭以节省功耗和缓存。

在上述方法中,为了防止存储器冲突,步骤2023中即将使用的变量节点如果正被步骤104处理,则需要等待步骤2024处理完成。

当采用对比的行交换策略的方法足够多时,选中的方法依概率趋向最优,根据寻找出的最优方法可以有效解决校验矩阵最优行列难以寻找的问题。

本发明还公开了一种ldpc译码方法,其中对上述子校验矩阵划分策略与行交换策略进行联合优化,进行如下步骤:

步骤401:随机选择多种不同的子校验矩阵划分策略与行交换策略的组合策略;

步骤402:依次计算上述组合策略的迭代耗时;

步骤403:选取上述迭代耗时最小的组合策略进行译码。

当子校验矩阵划分策略与行交换策略的组合策略的备选组合足够多时,选中的组合依概率趋向最优。

本发明的译码器包括:

划分模块:该划分模块用于选择译码并行度g,将校验矩阵h划分为子校验矩阵;具体的,将校验矩阵h的块列分为g份,每份包含j个块列,此时校验矩阵的列数表示为jgz,其中z表示扩展因子。

具体的,将校验矩阵进行划分的方案如下:

(1)划分得到的子校验矩阵表示为h1、h2...hg;

(2)划分策略为均匀划分,如果h的块列数不是g整数倍,则需要在h后面补填充列,该填充列中的块矩阵全为零矩阵。

压缩模块:该压缩模块用于压缩子校验矩阵h1、h2...hg中的全零块矩阵,得到伪块阵列y;

其中,压缩子校验矩阵h1、h2...hg中的全零块矩阵的策略如下:

(1)对子校验矩阵进行全零块后移处理,使得所有全零块集中在列号较大的位置;

具体的,将子校验矩阵hg(其中,g=1,2...g)中的第k(k=1,2...k,k为子校验矩阵的最大行数)行中的全零块后移,使得所有全零块集中在列号较大的位置;

(2)在对h1、h2...hg中的全部行进行全零块后移处理后,得到e1、e2...eg;

(3)计算e1、e2...eg中第k行非零块个数的最大值,记为lk;其中,y中第k行共有ik个元素,第i(i=1,2...lk)个元素由e1、e2...eg中第k行第i列共g个块矩阵拼接而成,为一个伪块;

其中,伪块阵列y不必须为矩阵,因为y中每行元素的个数不一定相等。

第一运算模块:该运算模块用于将伪块阵列y中第k个块行对应的z个校验节点的计算分解为lk次子校验运算,每次子校验运算处理一个伪块;其中

一次子校验运算包含bp算法中水平运算的所有步骤:

获取当前伪块对应的变量节点的输出、如果当前伪块不是当前块行首个伪块的话则获取前一个伪块的计算水平运算输出、计算当前伪块的水平运算输出;

如果当前伪块是当前块行最后一个伪块,则当前伪块的输出即是当前块行bp算法水平运算的最终结果。

上述bp算法指的是bp算法本身及其变形算法,常见的变形算法有最小和算法、归一化最小和算法、偏移最小和算法等。

第二运算模块:将y中第(k-1modk)行中第i个伪块对应的gz个变量节点的计算一次性完成,其操作为对当前变量节点所有输入求bp算法的垂直运算。

其中,步骤103和步骤104同时进行形成流水线。

在上述译码器中,当一个伪块中的g个块矩阵中存在零矩阵,则将对应零矩阵的流水线电路关闭以节省功耗和缓存。

在上述译码器中,为了防止存储器冲突,步骤103中即将使用的变量节点如果正被步骤104处理,则需要等待步骤104处理完成。

译码模块:该译码模块用于在迭代运算完成后,将判决数据按照划分模块中的子校验矩阵划分策略进行逆处理,得到最终译码输出。

对于本发明公开的上述ldpc译码方法,采用ieee802.11ac标准中的h1944,1/2,81校验矩阵,对本发明的译码方法进行蒙特卡洛模拟验证。模拟验证显示,在并行度g=2的条件下,本发明的译码方法将一次迭代的时长从原始tdmp策略的288个时钟降低到62个时钟,降低了4.6倍的迭代耗时,等价于吞吐提升了4.6倍,平均每个时钟译码输出1.53个比特。

现有技术提升ldpc译码吞吐的方式以增加并行度为主,并行度的增加以硬件面积的成倍增加为代价。本发明的ldpc译码方法及装置在保持并行度不变的情况下,通过提高译码电路的时间利用率的方式,有效提升了译码吞吐,这意味着在给定吞吐的条件下,本发明的译码方法及装置可有效降低并行度要求进而降低译码器面积。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1