基于层译码处理的ldpc译码器及译码方法

文档序号:7522788阅读:174来源:国知局
专利名称:基于层译码处理的ldpc译码器及译码方法
技术领域
本发明涉及信道编码技术领域,具体涉及一种基于层译码处理的LDPC译码器及译码方法。
背景技术
自从aiarmon提出信道编码定理以后,编码研究者们一直致力于寻找性能上尽可能地接近aiarmon极限,而复杂度又较低的可以实现的信道编码方案。LDPC码(低密度奇偶校验码)最早出现于1962年Villager提出的二元规则LDPC 码,它可看作一个具有稀疏校验矩阵(校验矩阵中“1”的数量很少)的线性分组码。其在 AWGN(加性高斯白噪声)信道下的性能接近Siannon极限且实现复杂度低。LDPC码是线性分组码的一种,它的校验矩阵是一种稀疏矩阵,也就是矩阵中除很少一部分元素非零外,其他大部分元素都是零。Tarmer在1981年推广了 LDPC码并给出了 LDPC码的图表示,即所称的 Tanner 图。与Turbo相比,LDPC码具有描述简单、译码复杂度低、可以并行实现、实用灵活、具有较低的错误平层等优点。2003年LDPC码被欧洲DVB-S2采纳为标准;随着理论研究的进一步深入,LDPC码将有可能在第四代移动通信系统中得到实际应用。由于LDPC码的优越性能,越来越多的实际通信系统开始逐渐将其作为纠错编码方案的备选方案,这也推动了将 LDPC码实用化的研究。如Flarion公司开发的flash-OFDM移动无线芯片组采用LDPC码作为纠错方案,可用于基于IP的移动宽带网,大大增加了传输距离,增强了对无线信道环境的抵抗能力,数据速率可达3Mbit/s。VOCAL Technologies Ltd.推出了一种用于WLAN (无线局域网)的LDPC/Turbo不对称解决方案,下行链路采用LDPC码,上行链路采用Turbo码, 可以实现节能的目的。目前LDPC译码器通常采用专用的硬件电路,通过并行或者部分并行的结构来实现。然而固定的结构很难满足不同参数校验矩阵结构的LDPC码译码。采用传统的软件方法虽然可以实现LDPC译码的通用性,但是对于复杂的信息处理尤其是校验节点更新将消耗大量的运算时间,很难实现高效的译码吞吐量。而另外一面,实际系统为了满足不同用户的需求,往往采用多种混合参数的信道编码。因此研究一种高效、灵活通用的译码器实现架构及译码方法成了当前一件非常具有意义的任务。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是如何解决常规LDPC译码器中硬件资源耗用多以及互连复杂度高、不易通用的问题。( 二 )技术方案为解决上述技术问题,本发明提供了一种基于层译码处理的LDPC译码器,包括节点更新处理单元,用于对迭代过程中的校验节点信息以及变量节点信息进行更新运算;变量节点存储单元,用于对迭代过程中的初始化信息以及更新的变量节点信息进行存储;校验节点存储单元,用于存储迭代过程中更新的校验节点信息;寻址与偏移控制ROM配置组,用于配置迭代过程中的各种译码控制信号;循环移位网络,用于对变量节点读出的数据进行循环移位;输出缓存器,用于存储译码过程中的判决比特;地址信号控制器,用于对所述LDPC译码器中所用的所述变量节点存储单元和校验节点存储单元进行寻址;译码时序控制器,用于对所述节点更新处理单元的运算进行定序,并对所述节点更新处理单元与所述校验节点存储单元和变量节点存储单元间的数据交换进行控制。优选地,所述变量节点存储单元采用双端口 RAM的存储器架构,大小为2倍帧长。优选地,所述寻址与控制ROM配置组采用首轮迭代译码控制表、次轮迭代译码控制表、译码判决输出控制表三表依次存储的方式,对于不同码率校验矩阵使用不同的配置表以及映射规则。优选地,所述循环移位网络采用库函数来实现桶形移位。优选地,所述节点更新处理单元包括第一减法器单元,用于将获得校验矩阵中的各行非零元素所对应的变量节点信息与校验节点信息的LLR差值,差值个数等于节点更新处理单元所处理的节点所在行的度数;第一存储器单元,用于对输入的变量节点信息与校验节点信息的差值信息进行存储,所述差值信息包括幅度与符号;第一选通器单元,用于对参与第一异或电路单元输出的符号与初始化值之间进行选通,该第一选通器单元每隔Cli个时钟周期工作一次,Cli对应校验矩阵第i行的度;第二选通器单元,用于对参与第一比较器单元输出的比较值与初始最大化的绝对值之间进行选通,该第二选通器单元每隔Cli个时钟周期工作一次;第一异或电路单元,用于执行节点运算中每一行η e N(m)的符号连乘运算,η表示变量节点,m表示校验节点,N(m)表示和校验节点m相邻的所有变量节点的集合;第二异或电路单元,用于执行节点运算中校验节点符号信息的更新;第一比较器单元,用于通过比较运算来产生当前输入的待比较节点的对数似然比 LLR差值的绝对最小值;第二比较器单元,用于通过比较运算来产生当前输入的待比较节点的LLR差值的绝对次最小值;第三比较器单元,用于通过比较运算来执行节点运算中校验节点的幅度信息的更新;第一加法器单元,用于执行节点运算中变量节点信息的更新。优选地,所述第一比较器单元、第二比较器单元及第三比较器单元执行的比较运算采用双比较器并行冒泡比较的方式进行。优选地,所述LDPC译码器的迭代过程与译码输出过程均采用时分复用的方式进行,只使用一个桶形移位器,且采用基于层译码的最小和算法实现。本发明还提供了一种应用所述的译码器进行译码的方法,包括以下步骤Si、初始化在所述译码时序控制器的控制下将信道后验概率的对数似然比LLR 值作为初始化信息逐个地写入所述变量节点存储单元的双端口 RAM,当写完一帧的初始化信息时完成初始化工作,进入译码处理阶段;同时还确定各种译码控制参数,以产生各种控制时序以及完成时序任务的调度;S2、校验节点信息的更新运算所述译码时序控制器与地址信号控制器共同控制所述节点更新处理单元对校验矩阵的校验节点信息进行更新,输入为与同一个校验节点相连的各个变量节点的变量信息,输出为更新后的、此校验节点传递给与之相连的变量节点的校验节点信息;S3、变量节点信息的更新运算所述译码时序控制器与地址信号控制器共同控制所述节点更新处理单元对校验矩阵的变量节点信息进行更新,输入为与同一个变量节点相连的各个校验节点的校验信息,输出为更新后的、此变量节点传递给与之相连的校验节点的变量节点信息;S4、重复步骤S2 S3,直到满足子循环次数,即达到校验矩阵中子块行数;S5、重复步骤S2 S4,进行迭代,直到满足迭代停止条件。优选地,步骤S2与S3的更新运算按以下步骤进行S201、数据输入预处理获得变量节点信息与校验节点信息的差值信息,所述差值信息包括幅度与符号;S202 差值信息的存储在减法操作的同时将步骤S201获得的差值信息存储到相应的存储单元;S203 最小值与次小值的查找采用双比较器并行的冒泡排序法查找当前存储的幅度中的最小值与次小值;S204 符号位的判决首先获取当前输入数据符号位的累乘值,然后逐个更新当前的校验节点的输出符号信息;S205 节点LLR值更新根据当前的步骤S202输出与步骤S203查找到的最小值与次最小值以及步骤S204获取的所述累乘值进行校验节点的LLR值更新;变量节点信息的更新为当前输出的LLR差值与更新后相应的校验节点LLR值之和。(三)有益效果与传统译码器架构相比,本发明设计的译码器的硬件架构基于译码子块布局,采用优化的循环移位网络与控制电路最大限度地避免了进行硬线分块与选通,对于不同的码阵、不同码率、不同码长只需要对控制存储器进行初始软配置,因而可以灵活方便地对各种参数LDPC码进行译码,总的资源消耗与单参数LDPC码中子块最大行并行度的译码所耗费资源相当。译码器通过优化的移位网络与存储控制,处理时延与子块中行的度数成线性关系,因而最大限度地减小了单次译码迭代所用的时钟周期。从而可提高译码的吞吐量,满足高速数据处理要求,同时也大大简化了译码控制逻辑。应用本发明提供的译码器和译码方法,可高效兼容不同编码码阵、不同码率、不同码长的LDPC码进行译码。


图1为本发明的LDPC译码所用的奇偶校验矩阵示意图;图2为本发明的不同码率LDPC译码器设计时所用的奇偶校验矩阵的一个示例;其中(a)为对应码率为1/2的校验矩阵,(b)为对应码率为2/3的校验矩阵,(c)为对应码率为3/4的校验矩阵;图3为本发明的基于层译码迭代处理步骤的实现流程图;图4为本发明实施例的支持混合码率的LDPC译码器设计框图;图5为本发明实施例的CNPU节点处理电路的设计框图;图6为本发明实施例的译码控制时序。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。本发明的译码器与译码方法,能够对兼容多种不同参数(码阵、码长、码率)的 LDPC码字进行译码。为叙述方便,对以不同码率译码过程进行描叙。规定对高、中、低不同码率的LDPC码进行译码,这些LDPC码的码长相等,它们所对应的奇偶校验矩阵被划分为若干个大小为aXa的子块,每个子块都用循环行列式或0矩阵填充,并且不同码率对应的子块大小也相等,因此,不同码率对应的奇偶校验矩阵有相同的列块数,记为P。需要说明的是,本发明中,存储单元有时也称为存储器。本发明提供的LDPC译码器包括节点更新处理单元(以下简称CNPU),其对译码迭代过程中Tarmer图所对应的校验节点信息以及变量节点信息进行更新运算;变量节点存储单元,它具有两个功能,其一为对译码器初始输入信息进行存储,其二对每次迭代过程中的变量节点更新信息进行存储;校验节点存储单元,用于存储迭代过程中更新的校验节点信息;寻址与偏移控制ROM配置组,用于配置译码迭代过程中各种译码控制信号,如各个存储块的读写地址,桶形移位器的偏移参数等;循环移位网络,用于对变量节点读出的数据进行循环移位;输出缓存器,用于存储译码过程中的判决比特;地址信号控制器,用于对所述LDPC译码器中所用的所述变量节点存储单元和校验节点存储单元进行寻址;译码时序控制器,对节点更新处理单元的运算进行定序,并对它与存储单元间的数据交换进行控制。由于对于不同的码率,奇偶校验矩阵具有相同的列块以及相同的子块大小,因此CNPU所处理节点数不改变,仍为a个。对于多码率译码器而言,其每个存储单元的存储深度应为2Xp (即是2倍列块数大小),因而需要更改的只是寻址与控制ROM配置组
的配置参数。校验节点存储与各行的度分布有关,其总的存储单元数为;,其中d。(i)
i=l
为奇偶校验矩阵中第i行的度,Qffl为对应奇偶校验矩阵中的总行数。寻址与控制ROM配置组根据不同的码率进行配置,使得存储单元读出的数据与CNPU—一对应。上述CNPU具有a个,分别包括
7
第一减法器单元,其将获得校验矩阵中的各行非零元素所对应的变量节点信息与校验节点信息的LLR差值,其个数等于CNPU所处理节点对应所在行的度数;第一存储器单元,其对输入的变量节点信息与校验节点信息的差值信息进行存储;第一选通器单元,其对参与第一异或电路输出的符号与初始化值‘0’电平之间进行选通,以供后续的符号信息更新操作使用;第二选通器单元,其对参与第一比较器输出的比较值与初始最大化的绝对值之间进行选通。第一异或电路单元,完成节点运算中每一行η e N(m)的符号连乘运算;η表示变量节点,m表示校验节点,N(m)表示和校验节点m相邻的所有变量节点的集合;第二异或电路单元,完成节点运算中校验节点符号信息的更新;第一比较器单元,比较产生当前输入的待比较节点的对数似然比(LLR)差值的绝对最小值;第二比较器单元,比较产生当前输入的待比较节点LLR差值的绝对次最小值,第三比较器单元,完成节点运算中校验节点幅度信息的更新;第一加法器单元,完成节点运算中变量节点信息的更新。下面,首先描述用于本实施例的奇偶校验矩阵。奇偶校验矩阵又称H矩阵,如图1所示,由qXp个‘(1彡i彡q,1彡j彡ρ)矩阵组成,Au作为H矩阵的子矩阵,是0矩阵或循环行列式构成的aX a方阵,且该循环行列式的重量很小。在实施例中,Au为由单位阵循环移位而得的aXa方阵或0矩阵。从图1中可见,每一个子矩阵Au中的斜线表示为矩阵元素为“ 1,,的元素位置的轨迹,而其它空白位置上的元素为“0”。在构成H矩阵的pXq个子矩阵Au的每一行和每一列中,只有一个元素值为“ 1,,的位置。所以,在整个H矩阵的每一行和每一列中,元素值为“ 1,,的位置数分别为m’和n’,其中m’是H矩阵的一个子矩阵行(Ail……Aip)中非0矩阵的个数,称为行重; η’是H矩阵的一个子矩阵列(Au……Aqj)中非0矩阵的个数,称为列重。并且,对于H矩阵中每一行的m’值可以相同也可以不相同,同样地,每一列的η’值可以相同也可以不相同。 若H矩阵中每一行的m’值相同并且每一列的η’值也相同,则此H矩阵对应的LDPC码为规则码,否则为非规则码。此H矩阵共有pXa列,那么对应地,LDPC码字的码长为pXa ;此H 矩阵共有qX a行,那么对应LDPC码字的校验位长度为qX a,于是此H矩阵对应LDPC码字的信息位长度为(p-q)Xa,所以,对应的LDPC码字的码率(信息位长度/码长)为(p_q)/P。如图2所示,(a)中校验矩阵(标记为H。)的行重为6或者7,列重分别为2、3,6, 对应的LDPC码字的码率为1/2 ; (b)中校验矩阵(标记为H1)的行重为9或10,列重分别为 2,3,6;对应的LDPC码字的码率为2/3。(c)中校验矩阵(标记为H2)的行重为14、15、16。 列重分别为2,3,4,5 ;对应的LDPC码字的码率为3/4。本领域内公知,H矩阵的每一行可以被视为一个奇偶校验方程,对应于H矩阵的第 i行的奇偶校验方程被称为第i奇偶校验方程,对应于该H矩阵的LDPC码字,当且仅当上述码字满足H矩阵的所有奇偶校验方程,也就是qX a个奇偶校验方程,才能译码成功,得到正确的信息。
而要使译码算法对每组LDPC码进行译码,需要迭代运算,反复交替地进行校验节点更新和变量节点更新运算。本发明中LDPC码译码采用层译码处理,如果LDPC码的校验矩阵是由q行组成,那么可以看成是由q层或者q个子码连接而成。每一层的校验节点处理完成之后,消息立即被用来更新变量节点。它的结果被用来提供给下一层的校验节点处理。层译码处理中的每个译码循环都有q个子循环。在译码开始的时候,变量节点的消息被初始化为信道的后验概率LLR值,这被用来处理第一层时的校验节点更新,第一层的校验节点更新完成后,变量节点用新的校验节点的值更新,这样就完成了一个子循环。然后以相同的方式,第二层中的校验节点处理的结果迅速被用来更新变量节点值,更新后的变量节点值是为第三层中的校验节点处理时准备的。若是在每一层内采用最小和算法,则对于每个子块内采用基于层译码的算法可以按下面的算式顺序来执行
权利要求
1.一种基于层译码处理的LDPC译码器,其特征在于,包括节点更新处理单元,用于对迭代过程中的校验节点信息以及变量节点信息进行更新运算;变量节点存储单元,用于对迭代过程中的初始化信息以及更新的变量节点信息进行存储;校验节点存储单元,用于存储迭代过程中更新的校验节点信息; 寻址与偏移控制ROM配置组,用于配置迭代过程中的各种译码控制信号; 循环移位网络,用于对变量节点读出的数据进行循环移位; 输出缓存器,用于存储译码过程中的判决比特;地址信号控制器,用于对所述LDPC译码器中所用的所述变量节点存储单元和校验节点存储单元进行寻址;译码时序控制器,用于对所述节点更新处理单元的运算进行定序,并对所述节点更新处理单元与校验节点存储单元以及变量节点存储单元间的数据交换进行控制。
2.如权利要求1所述的译码器,其特征在于,所述变量节点存储单元采用双端口RAM的存储器架构。
3.如权利要求1所述的译码器,其特征在于,所述寻址与控制ROM配置组采用首轮迭代译码控制表、次轮迭代译码控制表、译码判决输出控制表三表依次存储的方式,对于不同码率校验矩阵使用不同的配置表以及映射规则。
4.如权利要求1所述的译码器,其特征在于,所述循环移位网络采用库函数来实现桶形移位,循环移位操作可以在一个时钟周期完成。
5.如权利要求1所述的译码器,其特征在于,所述节点更新处理单元包括第一减法器单元,用于将获得校验矩阵中的各行非零元素所对应的变量节点信息与校验节点信息的LLR差值,差值个数等于节点更新处理单元所处理的节点所在行的度数;第一存储器单元,用于对输入的变量节点信息与校验节点信息的差值信息进行存储, 所述差值信息包括幅度与符号;第一选通器单元,用于对参与第一异或电路单元输出的符号与初始化值之间进行选通,该第一选通器单元每隔Cli个时钟周期工作一次,Cli对应校验矩阵第i行的度;第二选通器单元,用于对参与第一比较器单元输出的比较值与初始最大化的绝对值之间进行选通,该第二选通器单元每隔Cli个时钟周期工作一次;第一异或电路单元,用于执行节点运算中每一行η e N(m)的符号连乘运算,η表示变量节点,m表示校验节点,N(m)表示和校验节点m相邻的所有变量节点的集合; 第二异或电路单元,用于执行节点运算中校验节点符号信息的更新; 第一比较器单元,用于通过比较运算来产生当前输入的待比较节点的对数似然比LLR 差值的绝对最小值;第二比较器单元,用于通过比较运算来产生当前输入的待比较节点的LLR差值的绝对次最小值;第三比较器单元,用于通过比较运算来执行节点运算中校验节点的幅度信息的更新; 第一加法器单元,用于执行节点运算中变量节点信息的更新。
6.如权利要求5所述的译码器,其特征在于,所述第一比较器单元、第二比较器单元及第三比较器单元执行的比较运算采用双比较器并行冒泡比较的方式进行。
7.如权利要求1所述的译码器,其特征在于,所述LDPC译码器的迭代过程与译码输出过程均采用时分复用的方式进行,只使用一个桶形移位器,且采用基于层译码的最小和算法实现。
8.一种应用权利要求1 7任一项所述的译码器进行译码的方法,其特征在于,包括以下步骤51、初始化在所述译码时序控制器的控制下将信道后验概率的对数似然比LLR值作为初始化信息逐个地写入所述变量节点存储单元的双端口 RAM,当写完一帧的初始化信息时完成初始化工作,进入译码处理阶段;同时还确定各种译码控制参数,以产生各种控制时序以及完成时序任务的调度;52、校验节点信息的更新运算所述译码时序控制器与地址信号控制器共同控制所述节点更新处理单元对校验矩阵的校验节点信息进行更新,输入为与同一个校验节点相连的各个变量节点的变量信息,输出为更新后的、此校验节点传递给与之相连的变量节点的校验节点信息;53、变量节点信息的更新运算所述译码时序控制器与地址信号控制器共同控制所述节点更新处理单元对校验矩阵的变量节点信息进行更新,输入为与同一个变量节点相连的各个校验节点的校验信息,输出为更新后的、此变量节点传递给与之相连的校验节点的变量节点信息;54、重复步骤S2 S3,直到满足子循环次数,即达到校验矩阵中子块的行数;55、重复步骤S2 S4,进行迭代,直到满足迭代停止条件。
9.如权利要求8所述的译码方法,其特征在于,步骤S2与S3的更新运算按以下步骤进行S201、数据输入预处理获得变量节点信息与校验节点信息的差值信息,所述差值信息包括幅度与符号;5202差值信息的存储在减法操作的同时将步骤S201获得的差值信息存储到相应的存储单元;5203最小值与次小值的查找采用双比较器并行的冒泡排序法查找当前存储的幅度中的最小值与次小值;5204符号位的判决首先获取当前输入数据符号位的累乘值,然后逐个更新当前的校验节点的输出符号信息;5205节点LLR值更新根据当前的步骤S202的输出与步骤S203查找到的最小值与次最小值以及步骤S204获取的所述累乘值进行校验节点的LLR值更新;变量节点信息的更新为当前输出的LLR差值与更新后相应的校验节点LLR值之和。
全文摘要
本发明涉及信道编码技术领域,公开了一种基于层译码处理的LDPC译码器,包括节点更新处理单元,对校验节点信息以及变量节点信息进行更新运算;变量节点存储单元,对初始化信息以及更新的变量节点信息进行存储;校验节点存储单元,存储更新的校验节点信息;寻址与偏移控制ROM配置组,用于配置各种译码控制信号;循环移位网络,对变量节点读出的数据循环移位;输出缓存器,存储译码过程中的判决比特;地址信号控制器,对LDPC译码器中所用的存储单元进行寻址;译码时序控制器,对节点更新处理单元的运算进行定序,并对节点更新处理单元与存储单元间的数据交换进行控制。本发明能解决常规LDPC译码器中硬件资源耗用多以及互连复杂度高、不易通用的问题。
文档编号H03M13/11GK102394661SQ20111035123
公开日2012年3月28日 申请日期2011年11月8日 优先权日2011年11月8日
发明者刘佳, 康桂霞, 张平, 朱莹 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1