低密度奇偶校验码的译码方法_2

文档序号:9508225阅读:来源:国知局
能力。
[0046] 其中,所述对所述校验信息对应的校验矩阵进行行分析和列分析得到位置特征信 息包括:对所述校验矩阵进行行分析和列分析,得到所述校验矩阵中元素的位置信息;从 所述位置信息中提取出非零元素的位置特征信息,所述位置特征信息用于表征所述校验矩 阵中循环子矩阵被分割的能力。实际中,可以将所述位置特征信息保存在FPGA的块随机存 储器的第一存储区。
[0047] 在译码过程中,矩阵之间需要反复迭代计算,矩阵本身也需要进行更新计算,在迭 代计算和更新计算过程中会产生大量的中间数据,通过对中间数据的有效存储,能够降低 译码复杂性和译码准确率。因此,步骤S104可以包括:将所述校验子矩阵的更新运算过程 中的第一中间数据和变量矩阵的更新运算过程中的第二中间数据保存至块随机存储器的 第二存储区;所述第一中间数据包括校验子矩阵的更新运算过程中的过程数据;第二中间 数据包括变量矩阵的更新运算过程中的过程数据。
[0048] 译码过程中,可以根据LDPC码或译码硬件的具体情况,将校验矩阵和变量矩阵中 的元素进行扩位,并对扩位后计算得到的结果进行截断,能够降低译码过程中的精度损失, 因此,步骤S104可以包括:分别对所述校验子矩阵中的元素和变量矩阵中的元素进行扩位 处理得到第一扩位元素和第二扩位元素;对通过所述第一扩位元素和第二扩位元素计算得 到的计算结果进行截断。在FPGA实现过程中,数据的表示是采用数字方法,用二进制来表 示,数据在各模块之间传输时采用的是固定长度为16位,即在两个数做运算之前先扩展位 数,做完运算在输出到下一模块时,对多于16位的最后几位去掉,即为截断。
[0049] 针对不同的LDPC码和译码硬件,还可以直接将LDPC码的校验子矩阵和变量矩阵 中的元素进行格式转换,以适应译码硬件的需要,提高译码效率。因此,在所述分别对所述 校验子矩阵中的元素和变量矩阵中的元素进行扩位处理得到第一扩位元素和第二扩位元 素之前还包括:将所述校验子矩阵中的元素和变量矩阵中的元素转换为设定数据格式。设 定数据格式可以是多种,本实施例的所述设定数据格式包括二进制补码。
[0050] 实施例2
[0051] 为了克服现有的设计方法中,存在硬件资源消耗大,并行度设计不灵活,难以满足 高速、有效、可靠的数据通信需求。本发明所采用的设计方案中,可利用FPGA内部固有的块 随机存储器(BlockRAM)资源,一部分BlockRAM作为地址产生与控制模块,另一部分用于存 储迭代运算产生的过程数据,实现了有序控制大量数据的读写,不需要设计数据移位交换 网络,降低了实现复杂度,同时节约资源;采取有效的数字信号处理方法,先进行运算,对结 果数据按需求进行截断,减少了中间处理过程的精度损耗;分析LDPC码校验矩阵的特征, 迭代译码过程中将校验矩阵进行分块处理,根据实际需求和矩阵非'0'元素分布情况增加 译码并行度,以大幅提高系统吞吐量。具体的分块过程需依据实际的LDPC码校验矩阵而 定,在本例中的校验矩阵由3X7块准循环矩阵组成,如果需增加译码并行度,则再将各小 块矩阵进行分解。
[0052] 本发明解决其技术问题所采用的技术方案包括数字信号处理技术、有序控制和存 储中间数据技术、有效增加译码并行度设计技术。具体实现方案如下:
[0053] (1)有序读写中间处理数据设计
[0054] LDPC码译码器在迭代运算过程中,CNP(校验节点处理模块)计算的中间结果需要 存储以供VNP (变量节点处理模块,其中,在MXN阶的校验矩阵Η中,N表示校验矩阵的列, 称为变量节点,Μ表示校验矩阵的行,称为校验节点)运算时使用,VNP模块计算的中间结 果同样需要存储以供CNP模块运算时使用。大量的置信度消息在迭代运算过程中需不断进 行读写操作,中间数据的读写操作关键在于避免大量数据读写时的地址冲突。在存储器设 计中,当校验矩阵(当采用CXHT= 0来描述(l,k)的LDPC码时,其中,C为输出的码字;1 为码长;k为信息序列长度)为规则循环矩阵时,同一位置对应的校验信息和变量信息可以 采用同一个存储器存储,对于非规则LDPC码,校验信息和变量信息需用两组寄存器分别存 储。
[0055] 设计中充分利用FPGA内部固有的IP (Intellectual Property Core,知识产权核, 指某一方提供的、形式为逻辑单元、芯片设计的可重用模块)核资源一BlockRAM。一部分作 为地址产生与控制模块,预先存储校验矩阵特征信息,用于控制迭代过程中产生数据的读 写操作(以校验矩阵中每个非零元素在校验矩阵中的位置作为数据存储在ROM中,作为中 间存储器RAM的地址控制数据的输入/输出),不需要采用移位交换网络的架构,简便了实 现复杂度;另一部分作为数据存储模块,用于存储迭代运算产生的过程数据。
[0056] (2)增加译码并行度设计
[0057] 部分并行译码器结构中采用一个CNP负责处理校验矩阵中的一个行块,而一个 VNP负责处理校验矩阵的一个列块。译码过程是一个并串结合的过程,即各行块间的校验节 点更新运算与各列块间的变量节点更新运算是并行执行的,而各行块内的校验节点更新运 算与各列块内的变量节点更新运算则是串行执行的。
[0058] 在高速数据传输应用中,对数据的吞吐量要求较高,因此需根据需求适当增加译 码并行度来提高系统吞吐量。本发明中采用的设计思路是对校验矩阵中非'〇'位置的特征 进行分析,根据需求(主要是应用中对于数据吞吐量的需求,数据传输的及时性等需求)将 校验矩阵Η中各循环子矩阵进一步分割,分成维数更小的若干子矩阵,再对这些更小的子 矩阵进行并行处理,从而大幅增加CNP及VNP的处理并行度,从而提高系统吞吐量。
[0059] (3)量化
[0060] 在实际工程应用中,数据运算必须定点实现,定点实现必然导致算法性能损失,定 点实现的量化比特数越多性能损失就越小,但需要的存储空间和计算量也越大,因此需综 合考虑性能与实现复杂度选取量化方案。
[0061] 本方案应用中,初始信道似然比信息值(初始信道似然比信息即最初的信道特征 值。因为该LDPC译码算法是根据给定的信道特征和接收到的信息估计出噪声信息后验概 率,从而得出满足一定条件的噪声信息的估计值)大小均在600-1500之间,在迭代运算过 程中有累加操作,因此设定数据最终的截断精度为16位比特,在实现中采用先扩位处理, 最后对结果数据进行截断,数据格式采用二进制补码,减少了中间处理过程的精度损耗。
[0062] 本实施例将FPGA内部BlockRAM的一部分配置成R0M,预先存储校验矩阵特征信 息,用来控制中间数据存储模块的地址,从而不需要采用移位交换网络的架构,简便了实现 复杂度,BlockRAM的另一部分用于存储校验节点处理模块(变量节点处理模块)每次处理 后的中间数据,节约了寄存器资源;根据实际应用中数据吞吐量的需求,分析校验矩阵行列 中非'0'元素的位置特征(即统计每一行和列的非"0"元素的个数,以及非"0"元素在校 验矩阵中的位置,即行列号),将子矩阵根据需求分割,进而增加译码并行度,最终提高数据 吞吐量;数据处理过程(对中间数据进行运算的过程,在FPGA实现LDPC码算法的设计中, 主要指加法运算)中,采用先扩位进行运算,再进行数据截断的方式,减少中间处理过程带 来的精度损耗。
[0063] 实施例3
[0064] 下面结合附图对本发明方法做进一步详细的说明。
[0065] 附图2为本方法所采用的LDPC码译码算法流程图。
[0066] 本发明采用的译码算法是带偏移量的最小和算法,具体译码算法步骤如下:
[0067] 1)初始化。对特定的信道预设信息比特的先验概率。
[0069] 其中,LLIC%对数似然比;y "为最初的信道特征值;Z ""为校验矩阵的行向量的信 道对数似然比值;m为校验矩阵的列数;η为校验矩阵的行数;
[0070] 2)横向更新。由信息节点(即指校验节点和变量节点)的信息概率(即接收到的 信息值)按置信传播算法得出各校验节点的后验概率。对(其中,N(m)表 示所有的行自然数)计算:
[0072] 其中,Lm为校验节点的后验概率值;β为校正系数,β不大于1 ;sign为符号函 数;Z,为校验矩阵的行向量的信道对数似然比;η'为表示除本身行号
[0073] mn以外的校验矩阵中的行。
[0074] 3)纵向更新。由校验节点的后验概率推算出信息节点的后验概率。对
:计算:
[0076] 其中,L,为m'列时的校验节点的后验概率值;m'为表示除本身列号以外
[0077] mn的所有列。
[0078] 4)累加处理。当所有的非零节点全部计算完成后,对所有的行数进行累加运算:
[0080] 其中,zns累加运算的结果值。
[0081] 5)判决输出。
[0082] 量化判决
,其中,t为行向量,氣为|的第η个分量, n e (1
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1