一种通用型LDPC译码器.pdf

上传人:Y0****01 文档编号:1104712 上传时间:2018-03-31 格式:PDF 页数:14 大小:480.45KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010532675.2

申请日:

2010.11.01

公开号:

CN101977063A

公开日:

2011.02.16

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H03M 13/11申请日:20101101|||公开

IPC分类号:

H03M13/11

主分类号:

H03M13/11

申请人:

西安空间无线电技术研究所

发明人:

杨磊; 龚险峰; 李雄飞; 惠腾飞; 赵雨; 侴胜男

地址:

710100 陕西省西安市长安区西街150号

优先权:

专利代理机构:

中国航天科技专利中心 11009

代理人:

安丽

PDF下载: PDF下载
内容摘要

一种通用型LDPC译码器,包括调度模块、输入模块、译码模块和输出模块。输入模块、译码模块和输出模块采用状态机的方式在调度模块的控制下进行独立工作,其中,译码模块具有通用型硬件设计,可对不同长度的LDPC码进行译码。

权利要求书

1: 一种通用型 LDPC 译码器, 包括调度模块、 接收模块、 译码模块和发送模块, 接收模块 接收 LDPC 编码数据并将编码数据逐段输出到译码模块 ; 译码模块对接收模块输入的编码 数据进行译码, 并将译码数据输出给发送模块 ; 发送模块将译码模块分段输出的译码数据 排序后组成信息数据输出, 其特征在于 : 所述的调度模块与以握手命令的方式采用状态机 实现对接收模块、 译码模块和发送模块的交互控制 ; 所述的译码模块可对通用长度的 LDPC 编码数据进行译码, 译码模块包括 : 校验节点处 理模块 CNPMi, i = 0......n-1, n 为校验矩阵原模图的行数、 变量节点处理模块 VNPMj, j= 0......m-1, m 为校验矩阵原模图的列数、 输入数据存储器 Yj、 输出数据存储器 Dj、 迭代计算 存储器 Rij 和 Qij ; VNPMj 具有 i+1 个从 0 到 i 编号的输入端和 i 个从 0 到 i-1 编号的输出端, VNPMj 的编 号为 i 的输入端与 Yj 的输出端相连, VNPMj 的编号从 0 到 i-1 的输入端按编号与 Rij 的输出 端对应相连, VNPMj 的编号从 0 到 i-1 的输出端按编号与 Qij 的输入端对应相连 ; 接收到数据接收指令后, VNPMj 将 Yj 缓存输入的编码数据段复制 i 次, 并保存编码数据 段后, 再从 i 个输出端同时输出到相连的 Qij 中 ; 接收到开始译码指令后, 译码模块进入迭代译码过程, VNPMj 将每次从 i-1 个输入端输 入的数据与修正因子相乘, 再与保存的编码数据段相加后保存所得结果 ; 再将结果从 i 个 输出端同时输出, 并写入到对应的 Qij ; 其中作为加数的 i-1 个输入端不包括与 VNPMj 编号 j 相同的输入端所输入的数据 ; CNPMi 具有 j 个从 0 到 j-1 编号的输入端与 j 个 0 到 j-1 编号的输出端 ; CNPMi 的 j 个 输入端按编号与 Qij 的输出端对应相连, CNPMi 的 j 个输出端按编号与 Rij 的输入端对应相 连; CNPMi 将每次从 j 个输入端输入的数据中绝对值最小与次小的数据选出 ; 从与输入最 小绝对值数据的输入端编号相同的输出端输出绝对值次小的数据, 从其它 j-1 个输出端输 出绝对值最小的数据 ; CNPMi 将 j 个输出端口输出的数据写入到对应的 Rqj ; 在迭代译码过程中, CNPMi 和 VNPMj 依次迭代进行工作, 并分别接收从 Qij 和 Rij 输出的 数据, Qij 和 Rij 在输出数据时, 按照预先规定的读取地址循环读取上次迭代时分别由 VNPMj 和 CNPMi 写入的数据 ; 下标相同的 Qij 和 Rij 为一组对应于校验矩阵原模图每行中的每个元 素节点, 一组 Qjq 和 Rjq 具有相同的读取地址和末尾地址, 所述的读取地址等于与 Qjq 和 Rjq 对 应的元素节点扩展后子矩阵的偏移量 ; 所述的末尾地址等于与 Qjq 和 Rjq 对应的元素节点扩 展后子矩阵的秩 ; 所述读取地址和末尾地址需要再译码前根据码长进行配置 ; 接收到结束译码指令后, VNPMj 将编号从 0 到 i-1 的输入端输入的数据与保存的编码数 据段求和后进行硬判决后从 1 个输出端输出到 Dj, 并由 Dj 按编号顺序将译码数据输出。
2: 根据权利要求 1 所述的一种通用型 LDPC 译码器, 其特征在于 : 所述的译码模块还可 设计为包括 : 校验节点处理模块 CNPMi, i = 0......n-1, n 为校验矩阵原模图的行数、 变量 节点处理模块 VNPMj, j = 0......m-1, m 为校验矩阵原模图的列数、 输入数据存储器 Yj、 输 出数据存储器 Dj、 迭代计算存储器 Rqj 和 Qqj, q = 0......k-1, k 为校验矩阵原模图每列中 校验节点的个数 ; VNPMj 具有 k+1 个从 0 到 k 编号的输入端和 k 个从 0 到 k-1 编号的输出端, VNPMj 的编 号为 k 的输入端与 Yj 的输出端相连, VNPMj 的编号从 0 到 k-1 的输入端按编号与 Rqj 的输出 2 端对应相连, VNPMj 的编号从 0 到 k-1 的输出端按编号与 Qqj 的输入端对应相连 ; 接收到数据接收指令后, VNPMj 将 Yj 缓存输入的编码数据段复制 k 次, 并保存编码数据 段后, 再从 k 个输出端同时输出 ; 接收到开始译码指令后, 译码模块进入迭代译码过程, VNPMj 将每次从 k-1 个输入端输 入的数据与修正因子相乘, 再与保存的编码数据段相加后保存 ; 将结果从 k 个输出端同时 输出, 并写入到对应的 Qqj ; 其中作为加数的 k-1 个输入端不包括与 VNPMj 编号 j 相同的输入 端所输入的数据 ; CNPMi 具有 I 个从 0 到 I-1 编号的输入端与 I 个 0 到 I-1 编号的输出端, 所述的 I 为校 验矩阵原模图每行中变量节点的个数 ; CNPMi 的 I 个输入端与 Qqj 的输出端, 按校验矩阵原模 图第 i 行中变量节点的位置对应相连, CNPMi 的 I 个输出端与 Rqj 的输入端, 按校验矩阵原模 图 i 行中变量节点的位置对应相连 ; CNPMi 将每次从 I 个输入端输入的数据中绝对值最小与次小的数据选出 ; 从输入最小 绝对值数据的输入端编号相同的输出端输出绝对值次小的数据, 从其它 I-1 个输出端输出 绝对值最小的数据 ; CNPMi 将 I 个输出端口输出的数据写入到对应的 Rqj ; 在迭代译码过程中, CNPMi 和 VNPMj 依次迭代进行工作, 并分别接收从 Qjq 和 Rjq 输出的 数据, Qjq 和 Rjq 在输出数据时, 按照预先规定的读取地址循环读取上次迭代写入的数据 ; 下 标相同 Qjq 和 Rjq 为一组并按列对应于校验矩阵原模图每行中的校验节点, 一组 Qjq 和 Rjq 具 有相同的读取地址, 所述的读取地址等于与 Qjq 和 Rjq 对应的校验节点扩展后子矩阵的偏移 量; 接收到结束译码指令后, VNPMj 将编号从 0 到 k-1 的输入端输入的数据与保存的编码数 据段求和后进行硬判决后从 1 个输出端输出到 Dj, 并由 Dj 按编号顺序将译码数据输出。
3: 根据权利要求 1 所述的一种通用型 LDPC 译码器, 其特征在于 : 所述的通用长度为校 验矩阵原模图每行变量节点个数的整数倍。
4: 根据权利要求 1 所述的一种通用型 LDPC 译码器, 其特征在于 : 所述的修正因子取值 在 0 ~ 1 间。
5: 根据权利要求 1 或 4 所述的一种通用型 LDPC 译码器, 其特征在于 : 所述的修正因子 取值 0.8125。

说明书


一种通用型 LDPC 译码器

    【技术领域】
     本发明涉及一种 LDPC 码译码器, 特别涉及具有通用性的 LDPC 译码器, 属于译码技术领域。 背景技术 随着深空通信、 移动卫星通信等技术的不断发展, 低信噪比通信成为通信技术发 展的一个重要方向。为了能够可靠的进行通信, 高增益的信道编码成为低信噪比通信系统 不可或缺的一部分, 在迄今为止所发明和应用的纠错编码技术中, 只有 Turbo 码和 LDPC 码 具有接近香农极限的性能。与 Turbo 码相比, LDPC 码在运算速度、 译码门限和错误平层方 面都具有明显的优势, 成为当前信道编码领域的研究热点。欧洲数字电视广播组织 (DVB) 已经宣布在其下一代卫星数字电视标准 (DVB-S2) 中放弃 Turbo 码而采用 LDPC 码作为前向 纠错的编码方案。而下一代蜂窝移动通信, 宽带卫星通信, 无线个人区域网 (802.15), 无线 移动宽带接入网 (802.20) 以及其它诸如数据存储介质设备访问和有线调制解调器 (Cable
     Modem)、 数字用户线 (DSL) 等通信系统也正在考虑将其作为信道编码规范。
     LDPC(Low-Density Parity Check Code) 码是一种线性分组码, 它的校验矩阵是 一个非常稀疏的矩阵, 矩阵中的非零元素的数量相对于行列长度来说很少。如果校验矩阵 的每一列 ( 或行 ) 都有相同的重量称这种 LDPC 码是规则的, 否则称为不规则 LDPC 码。由 于非规则 LDPC 码的校验矩阵中元素 1 的位置基本没有规律可循, 导致编码复杂度高, 实现 难度比较大。而规则 LDPC 码, 特别是准循环规则 LDPC 码可以采用简单的移位寄存器完成 编码, 硬件复杂度大大降低。
     现有的 LDPC 码译码器基本上都不具备通用性, 一种码长对应一种译码器, 变化码 长后需要重新设计译码器, 大大增加了研发时间和研发成本。对于星上使用的 LDPC 译码 器, 由于工作环境特殊, 必须要有一种通用型的 LDPC 译码器来兼容不同的通信系统协议, 因此 LDPC 码译码器的通用性在星上环境尤为关键。 发明内容
     本发明的技术解决问题是 : 克服现有技术的不足, 提供了一种通用型 LDPC 译码 器。采用本发明解决了对不同码长 LDPC 码译码器不兼容的问题, 以通用型译码结构实现了 对不同长度 LDPC 码的译码。
     本发明的技术解决方案是 :
     一种通用型 LDPC 译码器, 包括调度模块、 接收模块、 译码模块和发送模块, 接收模 块接收 LDPC 编码数据并将编码数据逐段输出到译码模块 ; 译码模块对接收模块输入的编 码数据进行译码, 并将译码数据输出给发送模块 ; 发送模块将译码模块分段输出的译码数 据排序后组成信息数据输出, 其特征在于 : 所述的调度模块与以握手命令的方式采用状态 机实现对接收模块、 译码模块和发送模块的交互控制 ;
     所述的译码模块可对通用长度的 LDPC 编码数据进行译码, 译码模块包括 : 校验节点处理模块 CNPMi, i = 0......n-1, n 为校验矩阵原模图的行数、 变量节点处理模块 VNPMj, j = 0......m-1, m 为校验矩阵原模图的列数、 输入数据存储器 Yj、 输出数据存储器 Dj、 迭代 计算存储器 Rij 和 Qij ;
     VNPMj 具有 i+1 个从 0 到 i 编号的输入端和 i 个从 0 到 i-1 编号的输出端, VNPMj 的编号为 i 的输入端与 Yj 的输出端相连, VNPMj 的编号从 0 到 i-1 的输入端按编号与 Rij 的 输出端对应相连, VNPMj 的编号从 0 到 i-1 的输出端按编号与 Qij 的输入端对应相连 ;
     接收到数据接收指令后, VNPMj 将 Yj 缓存输入的编码数据段复制 i 次, 并保存编码 数据段后, 再从 i 个输出端同时输出到相连的 Qij 中 ;
     接收到开始译码指令后, 译码模块进入迭代译码过程, VNPMj 将每次从 i-1 个输入 端输入的数据与修正因子相乘, 再与保存的编码数据段相加后保存所得结果 ; 再将结果从 i 个输出端同时输出, 并写入到对应的 Qij ; 其中作为加数的 i-1 个输入端不包括与 VNPMj 编 号 j 相同的输入端所输入的数据 ;
     CNPMi 具有 j 个从 0 到 j-1 编号的输入端与 j 个 0 到 j-1 编号的输出端 ; CNPMi 的 j 个输入端按编号与 Qij 的输出端对应相连, CNPMi 的 j 个输出端按编号与 Rij 的输入端对应 相连 ;
     CNPMi 将每次从 j 个输入端输入的数据中绝对值最小与次小的数据选出 ; 从与输 入最小绝对值数据的输入端编号相同的输出端输出绝对值次小的数据, 从其它 j-1 个输出 端输出绝对值最小的数据 ; CNPMi 将 j 个输出端口输出的数据写入到对应的 Rqj ;
     在迭代译码过程中, CNPMi 和 VNPMj 依次迭代进行工作, 并分别接收从 Qij 和 Rij 输 出的数据, Qij 和 Rij 在输出数据时, 按照预先规定的读取地址循环读取上次迭代时分别由 VNPMj 和 CNPMi 写入的数据 ; 下标相同的 Qij 和 Rij 为一组对应于校验矩阵原模图每行中的每 个元素节点, 一组 Qjq 和 Rjq 具有相同的读取地址和末尾地址, 所述的读取地址等于与 Qjq 和 Rjq 对应的元素节点扩展后子矩阵的偏移量 ; 所述的末尾地址等于与 Qjq 和 Rjq 对应的元素节 点扩展后子矩阵的秩 ; 所述读取地址和末尾地址需要再译码前根据码长进行配置 ;
     接收到结束译码指令后, VNPMj 将编号从 0 到 i-1 的输入端输入的数据与保存的编 码数据段求和后进行硬判决后从 1 个输出端输出到 Dj, 并由 Dj 按编号顺序将译码数据输出。
     所述的译码模块还可设计为包括 : 校验节点处理模块 CNPMi, i = 0......n-1, n为 校验矩阵原模图的行数、 变量节点处理模块 VNPMj, j = 0......m-1, m 为校验矩阵原模图的 列数、 输入数据存储器 Yj、 输出数据存储器 Dj、 迭代计算存储器 Rqj 和 Qqj, q = 0......k-1, k 为校验矩阵原模图每列中校验节点的个数 ;
     VNPMj 具有 k+1 个从 0 到 k 编号的输入端和 k 个从 0 到 k-1 编号的输出端, VNPMj 的编号为 k 的输入端与 Yj 的输出端相连, VNPMj 的编号从 0 到 k-1 的输入端按编号与 Rqj 的 输出端对应相连, VNPMj 的编号从 0 到 k-1 的输出端按编号与 Qqj 的输入端对应相连 ;
     接收到数据接收指令后, VNPMj 将 Yj 缓存输入的编码数据段复制 k 次, 并保存编码 数据段后, 再从 k 个输出端同时输出 ;
     接收到开始译码指令后, 译码模块进入迭代译码过程, VNPMj 将每次从 k-1 个输入 端输入的数据与修正因子相乘, 再与保存的编码数据段相加后保存 ; 将结果从 k 个输出端 同时输出, 并写入到对应的 Qqj ; 其中作为加数的 k-1 个输入端不包括与 VNPMj 编号 j 相同的 输入端所输入的数据 ;CNPMi 具有 I 个从 0 到 I-1 编号的输入端与 I 个 0 到 I-1 编号的输出端, 所述的 I 为校验矩阵原模图每行中变量节点的个数 ; CNPMi 的 I 个输入端与 Qqj 的输出端, 按校验矩阵 原模图第 i 行中变量节点的位置对应相连, CNPMi 的 I 个输出端与 Rqj 的输入端, 按校验矩阵 原模图 i 行中变量节点的位置对应相连 ;
     CNPMi 将每次从 I 个输入端输入的数据中绝对值最小与次小的数据选出 ; 从输入 最小绝对值数据的输入端编号相同的输出端输出绝对值次小的数据, 从其它 I-1 个输出端 输出绝对值最小的数据 ; CNPMi 将 I 个输出端口输出的数据写入到对应的 Rqj ;
     在迭代译码过程中, CNPMi 和 VNPMj 依次迭代进行工作, 并分别接收从 Qjq 和 Rjq 输 出的数据, Qjq 和 Rjq 在输出数据时, 按照预先规定的读取地址循环读取上次迭代写入的数 据; 下标相同 Qjq 和 Rjq 为一组并按列对应于校验矩阵原模图每行中的校验节点, 一组 Qjq 和 Rjq 具有相同的读取地址, 所述的读取地址等于与 Qjq 和 Rjq 对应的校验节点扩展后子矩阵的 偏移量 ;
     接收到结束译码指令后, VNPMj 将编号从 0 到 k-1 的输入端输入的数据与保存的编 码数据段求和后进行硬判决后从 1 个输出端输出到 Dj, 并由 Dj 按编号顺序将译码数据输出。
     所述的通用长度为校验矩阵原模图每行变量节点个数的整数倍。 所述的修正因子取值在 0 ~ 1 间。
     本发明与现有技术相比具有如下优点 :
     (1)、 本发明的译码模块采用的设计结构, 可实现对不同码长 LDPC 的译码, 只需要 重新配置译码模块中的读取地址便可适应不同的码长的 LDPC 码, 具有良好的灵活性与极 强的兼容性。
     (2)、 本发明各个模块间采用状态机进行实现, 各个工作模块在调度模块的握手式 控制下独立工作, 提高了译码器的可靠性。
     (2)、 由于本发明具有通用型译码结构, 因此可采用固定的 FPGA 资源并配合外置 RAM 进行实现, 并且 FPGA 资源占用少, 逻辑资源不随码长的增加而增多, 节省了设计与实现 阶段的软硬件资源, 尤其适应于资源有限的航天器工作环境。
     附图说明
     图 1 为本发明系统框图 ;
     图 2 为本发明状态机图 ;
     图 3 为译码模块结构设计图 ;
     图 4 为实施例校验矩阵原模图 ;
     图 5 为译码性能曲线图。 具体实施方式
     一、 发明原理
     准循环 LDPC 码的校验矩阵 Hqc 如式 (1) 所示, 各子矩阵 Ai, j 是 b×b 的循环右移置 换矩阵或者是 b×b 的 0 矩阵。
     由于循环置换矩阵 Ai, 因此, 总可以用母矩阵 Hb j 的形式完全决定于矩阵的偏移量, = [p(i, j)]m×n 来表征校验矩阵 Hqc, 其中, p(i, j) 为 Ai, j 的偏移量。
     若 p(i, j) > 0, 则表示 Hqc 矩阵中对应的 Ai, j) 的置换矩阵, j 是向右偏移量为 p(i, 即通过将单位矩阵循环右移 p(i, j) 位, 可得到 Ai, j ;
     若 p(i, j) = 0, 则表示 Ai, 即不对单位阵进行循环移位 ; j 为单位阵,
     若 p(i, j) < 0, 则表示 Ai, j 为全 0 矩阵。
     这样在设计中只要存储母矩阵就可以表示校验矩阵 Hqc, 借此原理使得对 LDPC 码 的通用译码方法具备了可实现性。在本发明所述的技术方案就是基于准循环 LDPC 码的译 码器。
     原模图 (J Thorpe, 《Low-Density Parity-Check(LDPC)Codes Constructed from Protographs》 , 与 D.Divsalar, 《Construction of ProtographLDPC Codes with Linear Minimum Distance)》 ) 可以认为是节点数量较少的 LDPC 码的校验矩阵, 对应式 (1) 中的子 矩阵 Ai, 若在原模图中令 b 为 1, 则 Ai, 因此, 原模图 j(b×b 的矩阵 ), j 仅代表 0 和 1 两种值, 具有 LDPC 码校验矩阵的所有属性。基于原模图的 LDPC 码构造是在原模图基础上扩展 Ai, j, 通过改变 b 的值, 使译码器通用于各种码长的 LDPC 码。
     原模图经扩展后得到 LDPC 码的校验矩阵后, 由于 Ai,j 的 b 大于 1, 所以, 扩展倍数 不同, 相同位置的 Ai,j 可能会对应多种不同的偏移量, 不同的偏移量对应到新的 LDPC 码所 体现的也就性能不同, 因此, 在选择原模图校验矩阵时, 需要通过计算机仿真搜索, 选出一 个性能优异的原模图矩阵。
     二、 设计方案
     本发明的通用型 LDPC 译码器包括 : 调度模块、 接收模块、 译码模块和发送模块。 如 图 1 所示, 为译码器各模块间连接示意图。
     1、 状态机设计
     调度模块是译码器中的全局控制模块, 调度模块对其他模块进行握手方式交互控 制, 即调度模块向各个模块发出控制命令, 在等待模块工作完成并回复命令后, 再发出下一 条命令。整个译码器是以命令驱动的状态机方式进行工作。
     如图 2 所示, 为译码器状态机的状态转换图。采用状态机的触发工作模式消除了 因码长变化对各模块处理时间的影响, 同时确保了处理模块间互不影响的并行工作, 也提 高了译码器工作的可靠性。
     整个状态机包括 5 个工作状态分别为 : 等待状态 Idle( 空闲 )、 接收状态 S1、 变量 节点更新状态 S2、 校验节点更新状态 S3 和输出状态 S4。
     Idle 状态 : 为译码器的起始工作状态。此时各个模块之间无数据传输, 处于等待 调度模块调度命令的状态。
     S1 状态 : 为译码器的接收模块的工作状态。当有译码数据到来时, 调度模块向接 收模块发送接收命令, 启动接收模块接收译码数据, 接收模块对输入的译码数据进行缓冲, 然后按照译码数据的输入顺序进行分段存储, 然后向调度模块回复并等待调度模块的发送 命令, 收到发送命令后接收模块将分段后的译码数据分别并同时输出给译码模块。
     S2、 S3 状态 : 为译码器的译码模块迭代译码工作的状态。在译码过程中, S2 状态 和 S3 状态循环迭代进行, 其中, S2 状态为 VNPM 的工作状态, 对应于变量节点更新操作 ; S3 状态为 CNPM 的工作状态, 对应于校验节点更新操作。
     译码模块工作时, 不考虑输入的译码数据的码字长度, 只是根据调度模块的开始 译码命令与停止译码命令进行工作。当译码模块接收到调度模块的开始译码命令后, 开始 进行译码。此时译码器处于 S2 状态, 然后, 按照变量节点信息更新 (S2 状态 )、 校验节点信 息更新 (S3 状态 ) 的转换顺序循环进行迭代译码计算。每完成一次变量节点更新操作与校 验节点更新操作相当于完成一次迭代, 译码过程中, 调度模块对迭代次数进行累加计数。 当 达到预定的迭代次数时, 调度模块向译码模块发送停止命令, 译码模块接收到停止命令后, 停止译码, 输出译码数据。
     S4 状态 : 为译码器的输出模块工作的状态。当有译码数据输出时, 调度模块向输 出模块发送输出命令, 启动输出模块接收译码模块的输出数据并进行缓冲, 由于译码器接 收模块接收的输入数据是分段存储的, 因此输出缓存 D 中的数据也要依次输出, 即 D0 的数 据全部输出完毕后, 再输出 D1 中的数据, 依次类推。
     2、 模块设计
     译码模块
     译码器的核心是译码矩阵模块, 本发明译码模块结合原模图结构产生了具备通用 性的 LDPC 译码结构。
     原模图本质上是一个较小规模的准循环 LDPC 码的校验矩阵, 它规定了每一行和 每一列的子矩阵 Ai,j 个数, 以及全 0 矩阵和非 0 矩阵的位置。在设计译码器时, 原模图的 结构决定了 LDPC 码的译码结构, 因此, 只要不改变原模图的结构 ( 即非 0 矩阵的个数和位 置 ), 即使 LDPC 编码的码长改变, 那么译码模块的译码结构就不会改变, 从而使译码器具备 了通用性。
     在设计译码模块前, 先优选一个性能优异的原模图, 以该原模图为蓝本建立译码 结构, 所谓性能优异的原模图是指在相同的误码率条件下, 若信噪比越低, 则原模图的性能 越好。在码长变化时, 不改变原模图的结构, 只是调整子矩阵 Ai, j 的大小和偏移量使其满足 码长要求, 子矩阵的大小根据码长值可以直接算出, 偏移量需要通过 LDPC 译码仿真模型进 行筛选。
     本发明的译码模块为达到通用性的目的, 须要对子矩阵 Ai,j 大小和偏移量的改变 能够自适应。在具体设计时, 采用了两种设计结构。
     结构一
     对于一个大小为 n×m 的校验矩阵原模图, 需要 n 个校验节点处理模块 CNPMi, 并按 照从 0 到 n-1 进行编号 ; m 个变量节点处理模块 VNPMj, 并按照从 0 到 m-1 进行编号。同时, 为存储接收模块分段输入的编码数据段和分段输出译码数据段, 还需要与于 VNPMj 对应的 j 个输入数据存储器 Yj 和 j 个输出数据存储器 Dj, Yj 和 Dj 同样按照 0 到 m-1 进行编号, 并按编号与对应的 VNPMj 相联接。对应于原模图校验矩阵中的每个元素经扩展后获得的子矩 阵, 同时设置迭代计算存储器 Rij 和 Qij, 一个 Rqj 和一个 Qqj 定为一组。
     对于变量节点处理模块 VNPMj, 具有 i+1 个从 0 到 i 编号的输入端和 i 个从 0 到 i-1 编号的输出端, VNPMj 的第 i 个输入端与 Yj 的输出端相连, VNPMj 的编号从 0 到 i-1 的 输入端按编号与 Rij 的输出端对应相连, VNPMj 的编号从 0 到 i-1 的输出端按编号与 Qij 的 输入端对应相连。
     对于校验节点处理模块 CNPMi, 具有就个从 0 到 j-1 编号的输入端与 j 个 0 到 j-1 编号的输出端。 CNPMi 的 j 个从 0 到 j-1 编号的输入端与 Qij 的输出端按编号对应相连, CNPMi 的就个从 0 到 j-1 编号的输出端与 Qij 的输入端按编号对应相连。
     如图 3 所示, 为校验矩阵原模图 H = [Aij]2×4 时, 采用结构一实现的译码模块。图 3 中, 对应于校验矩阵原模图的行数设置有 2 个 CNPM, 列数设置有 4 个 VNMP, 并设置有 2X4 组 R 和 Q, 分别按照行列进行编号。并按照上述连接方式进行了连接。
     结构二
     同样对一个大小为 n×m 的校验矩阵原模图, 结构二与结构一相比, 其主要区别在 于使用的 R 与 Q 的数量变为 Rqj 和 Qqj, 其中, 若按列优先进行排列, 则 q 对应于校验矩阵原模 图每列中校验节点的个数 k, 按照从 0 到 k-1 进行编号。则结合校验矩阵原模图进行分析, 结构二相对于结构一省略了对应于校验矩阵原模图中对应于 0 元素位置的 R 与 Q。
     为适应 R 与 Q 数量的改变, VNPM 和 CNPM 的输入与输出端进行了相应的变化。对于 变量节点处理模块 VNPMj, 具有 k+1 个从 0 到 k 编号的输入端和 k 个从 0 到 k-1 编号的输出 端, VNPMj 的第 k 个输入端与 Yj 的输出端相连, VNPMj 的编号从 0 到 k-1 的输入端按编号与 Rqj 的输出端对应相连, VNPMj 的编号从 0 到 k-1 的输出端按编号与 Qqj 的输入端对应相连。
     对于校验节点处理模块 CNPMi, 具有 I 个从 0 到 I-1 编号的输入端与 I 个 0 到 I-1 编号的输出端, 所述的 I 为校验矩阵原模图每行中变量节点的个数。在校验矩阵原模图中, 一行中具有多个不同的变量节点 ( 变量节点的个数可以为 0), 所以, 对于不同的 CNPMi 与 VNPMj 具有不同的对应连接关系。由于, 原模图在进行扩展式, 0 元素扩展后为全 0 的子矩 阵, 因此, 在按此原理设计译码模块的结构时, 可进一步总结为, 按行编号的 CNPMi 与校验矩 阵原模图中第 i 行存在校验节点的 VNPMj 具有连接, 而 CNPMi 和 VNPMj 的连接点便为 Rqj 和 Qqj。
     在 CNPMi 和 Rqj 和 Qqj 的连接时, CNPMi 的 I 个从 0 到 I-1 编号的输入端与 Qqj 的输 出端, 按校验矩阵原模图第 i 行中变量节点的位置对应相连, CNPMi 的 I 个从 0 到 I-1 编号 的输出端与 Rqj 的输入端, 按校验矩阵原模图 i 行中变量节点的位置对应相连。
     此种设计, 使得在进行迭代的过程中, CNPMi 和 VNPMj 分别按照校验节点和变量节 点的对应位置进行工作, 从而会出现暂时空闲的 CNPMi 和 VNPMj。但由于采用了与校验矩阵 原模图中校验节点 ( 变量节点 ) 总数的 Rqj 和 Qqj, 因此, Rqj 和 Qqj 在每次迭代过程中均会被 使用, 始终处于工作中。相对于结构一进一步节省了硬件资源。
     译码算法
     本发明采用了乘性修正最小和 (MSMA) 译码算法进行译码。
     接收到开始译码指令后, 译码模块进入迭代译码过程, VNPMj 将每次从 k-1 或 i-1 个输入端输入的数据与修正因子相乘, 再与保存的编码数据段相加后保存 ; 将结果从 k 或 i个输出端同时输出, 并写入到对应的 Q 中 ; 其中作为加数的输入端不包括与 VNPMj 编号 j 相 同的输入端所输入的数据 ;
     CNPMi 将每次从 I 或 j 个输入端输入的数据中绝对值最小与次小的数据选出 ; 从输 入最小绝对值数据的输入端编号相同的输出端输出绝对值次小的数据, 从其它 I-1 或 j-1 个输出端输出绝对值最小的数据 ; CNPMi 将 I 或 j 个输出端口输出的数据写入到对应的 R 中。
     在迭代译码过程中, CNPMi 和 VNPMj 分别接收从与其相连的 Q 和 R 输出的数据。Q 和 R 在输出数据时, 按照预先规定的读取地址循环读取上次迭代写入的数据一组 Q 和 R 具 有相同的读取地址, 读取地址等于与 Q 和 R 对应的校验节点扩展后所得子矩阵的偏移量。
     在每组 Q 和 R 中, 写入数据的首地址为 0, 末尾地址为 b-1, b 为每组 Q 和 R 所对应 校验矩阵原模图子矩阵的秩。循环读取的规则为, Q 和 R 以预先规定的读取地址 ADDx 为首 地址读取暂存于其中的数据, 当读取到数据末地址 b-1 时, 在从 0 开始读取直到 ADDx-1, 通 过此循环读取, 实现对其中暂存数据的循环移位输出。
     按照这个设计方案, 只需要在 Q 和 R 中预先按照对应的子矩阵的偏移量设置好每 次读取数据的起始地址 ( 读取地址 ), CNPMi 和 VNPMj 分别独立进行进行, 调度模块累加统 计迭代次数, 从而可以在编码长度改变时, 只需要通过程序改变每个 Q 和 R 中的读取地址与 b, 便可在不影响译码结构的情况下, 对不同编码长度的 LDPC 码进行译码, 实现了译码器的 通用性设计。 对于结构二的设计, 由于省略了校验矩阵原模图中与 0 元素相对应的 Q 和 R, 但是, 结构二中的 Q 和 R 仍与校验矩阵原模图中的非零元素存在对应关系, 因此可以按照同样的 方式设置读取地址。
     接收模块
     用于接收输入译码器的编码数据, 并对编码数据进行分段, 接受模块对编码数据 的分段原则是根据译码模块中 Yj 的个数对输入的编码数据按照先后顺序进行的。 分段完成 后的编码数据段在调度模块的控制下, 逐段依次序输入到译码模块的 Yj 中, 即按照从 Y0 到 Ym 的顺序进行接收。
     输出模块
     输出模块在调度模块的控制下接收译码模块输出的译码数据段, 并将分段输出的 译码数据重新组合后输出。按照译码模块接收编码数据段的先后顺序, 将译码数据段编排 后输出, 即按照从 D0 到 Dm 的顺序进行输出。
     调度模块
     调度模块对接收模块、 译码模块与输出模块进行握手控制, 以状态转换的方式控 制各个模块独立工作。
     三、 实施例
     以下以 1/2 码率为例, 对可配置码长的通用 LDPC 译码器的设计过程进行说明。
     本方案通过仿真模型选择的原模图矩阵如图 4, 按照原模图设计的译码结构中 QC-LDPC 码的母矩阵 Hb = [aij]8×16, 译码结构包括 8 个校验节点处理模块 CNPM, 16 个变量 节点处理模块 VNPM ; 16 个输入数据存储器 Y ; 16 个输出数据存储器 D ; 48 个交互信息存储 器R; 48 个交互信息存储器 Q。
     48 组 R 和 Q 分为 16 列, 每一列上的 3 组 R 和 Q 均对应一个 VNPM, 根据图 4 中, 校 验矩阵原模图每列中校验节点的个数, 每个 VNPM 具有 4 个输入端与 3 个输出端, 其中每个 VNPM 的第 4 个输入端与 Y 相连。其余 3 个输入端分别连接本列中的 3 个 R 的输出端, 而3 个输出端分别连接本列中的 3 个 Q 的输入端, 同时复用 1 个输出端用于在译码结束时向 D 输出译码数据。
     CNPM 同样具有 6 个输入端与 6 个输出端。48 组 R 和 Q 分为 16 列后, 将共有 3 行。 8 个校验节点处理模块 CNPM 分别对应于 8 行, 并根据图 4 矩阵中每行变量节点的位置对应 连接 R 和 Q。
     本方案中原模图的子矩阵是 b×b 的循环右移置换矩阵, 根据图 4 可知, 利用此校 验矩阵原模图可对码长 L = 16 * b 的 LDPC 码进行译码 ( 这里的码长需为 16 的整数倍 )。 使用前, 通过原模图到 LDPC 码校验矩阵的仿真模型, 可得到对应码长校验矩阵的偏移量, 进而可以设置每个 R 和 Q 的读取地址。
     本实施例中使用 xilinx 公司的 Virtex4SX55 的 FPGA 芯片, 占用的逻辑资源为 25%, 相当于 150 万门的逻辑。存储器 Q 和 R 的容量分别为 (8 * 4kbits), 这样在配置码 长时, 只要子矩阵的大小不超过存储器 Q( 和 R) 的容量上限即可。按照码长公式 L = 16 * b, 当 b = 4k 时, 码长最长为 64k, 这个范围内的码长足以满足现有的 LDPC 码的使用要求。 此外, 采用本发明设计的译码器也具有较好的译码性能, 如图 5 所示, 可配置码长 的 LDPC 译码器分别生成的码长为 6912(“□” 线 ) 和 2048(“○” 线 ) 的码性能曲线, 图中 X 轴为信噪比 (eb/n0), Y 轴为误码率。资料显示, CCSDS 标准中码率为 1/2, 码长为 8192 的 LDPC 码在 10-8 误码率条件下 eb/n0 为 1.5dB ; 码长 2048 的 LDPC 码在 10-6 误码率条件下 eb/n0 为 2dB。比较可知, 本方法中的可配置码长的 LDPC 码在性能上与 CCSDS 标准的差距 不到 0.3dB。
     本发明未详细说明部分属本领域技术人员公知常识。
    

一种通用型LDPC译码器.pdf_第1页
第1页 / 共14页
一种通用型LDPC译码器.pdf_第2页
第2页 / 共14页
一种通用型LDPC译码器.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种通用型LDPC译码器.pdf》由会员分享,可在线阅读,更多相关《一种通用型LDPC译码器.pdf(14页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101977063A43申请公布日20110216CN101977063ACN101977063A21申请号201010532675222申请日20101101H03M13/1120060171申请人西安空间无线电技术研究所地址710100陕西省西安市长安区西街150号72发明人杨磊龚险峰李雄飞惠腾飞赵雨侴胜男74专利代理机构中国航天科技专利中心11009代理人安丽54发明名称一种通用型LDPC译码器57摘要一种通用型LDPC译码器,包括调度模块、输入模块、译码模块和输出模块。输入模块、译码模块和输出模块采用状态机的方式在调度模块的控制下进行独立工作,其中,译码模块具有通用型。

2、硬件设计,可对不同长度的LDPC码进行译码。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书8页附图3页CN101977068A1/2页21一种通用型LDPC译码器,包括调度模块、接收模块、译码模块和发送模块,接收模块接收LDPC编码数据并将编码数据逐段输出到译码模块;译码模块对接收模块输入的编码数据进行译码,并将译码数据输出给发送模块;发送模块将译码模块分段输出的译码数据排序后组成信息数据输出,其特征在于所述的调度模块与以握手命令的方式采用状态机实现对接收模块、译码模块和发送模块的交互控制;所述的译码模块可对通用长度的LDPC编码数据进行译码,译码模块包括校。

3、验节点处理模块CNPMI,I0N1,N为校验矩阵原模图的行数、变量节点处理模块VNPMJ,J0M1,M为校验矩阵原模图的列数、输入数据存储器YJ、输出数据存储器DJ、迭代计算存储器RIJ和QIJ;VNPMJ具有I1个从0到I编号的输入端和I个从0到I1编号的输出端,VNPMJ的编号为I的输入端与YJ的输出端相连,VNPMJ的编号从0到I1的输入端按编号与RIJ的输出端对应相连,VNPMJ的编号从0到I1的输出端按编号与QIJ的输入端对应相连;接收到数据接收指令后,VNPMJ将YJ缓存输入的编码数据段复制I次,并保存编码数据段后,再从I个输出端同时输出到相连的QIJ中;接收到开始译码指令后,译码。

4、模块进入迭代译码过程,VNPMJ将每次从I1个输入端输入的数据与修正因子相乘,再与保存的编码数据段相加后保存所得结果;再将结果从I个输出端同时输出,并写入到对应的QIJ;其中作为加数的I1个输入端不包括与VNPMJ编号J相同的输入端所输入的数据;CNPMI具有J个从0到J1编号的输入端与J个0到J1编号的输出端;CNPMI的J个输入端按编号与QIJ的输出端对应相连,CNPMI的J个输出端按编号与RIJ的输入端对应相连;CNPMI将每次从J个输入端输入的数据中绝对值最小与次小的数据选出;从与输入最小绝对值数据的输入端编号相同的输出端输出绝对值次小的数据,从其它J1个输出端输出绝对值最小的数据;C。

5、NPMI将J个输出端口输出的数据写入到对应的RQJ;在迭代译码过程中,CNPMI和VNPMJ依次迭代进行工作,并分别接收从QIJ和RIJ输出的数据,QIJ和RIJ在输出数据时,按照预先规定的读取地址循环读取上次迭代时分别由VNPMJ和CNPMI写入的数据;下标相同的QIJ和RIJ为一组对应于校验矩阵原模图每行中的每个元素节点,一组QJQ和RJQ具有相同的读取地址和末尾地址,所述的读取地址等于与QJQ和RJQ对应的元素节点扩展后子矩阵的偏移量;所述的末尾地址等于与QJQ和RJQ对应的元素节点扩展后子矩阵的秩;所述读取地址和末尾地址需要再译码前根据码长进行配置;接收到结束译码指令后,VNPMJ将编。

6、号从0到I1的输入端输入的数据与保存的编码数据段求和后进行硬判决后从1个输出端输出到DJ,并由DJ按编号顺序将译码数据输出。2根据权利要求1所述的一种通用型LDPC译码器,其特征在于所述的译码模块还可设计为包括校验节点处理模块CNPMI,I0N1,N为校验矩阵原模图的行数、变量节点处理模块VNPMJ,J0M1,M为校验矩阵原模图的列数、输入数据存储器YJ、输出数据存储器DJ、迭代计算存储器RQJ和QQJ,Q0K1,K为校验矩阵原模图每列中校验节点的个数;VNPMJ具有K1个从0到K编号的输入端和K个从0到K1编号的输出端,VNPMJ的编号为K的输入端与YJ的输出端相连,VNPMJ的编号从0到K。

7、1的输入端按编号与RQJ的输出权利要求书CN101977063ACN101977068A2/2页3端对应相连,VNPMJ的编号从0到K1的输出端按编号与QQJ的输入端对应相连;接收到数据接收指令后,VNPMJ将YJ缓存输入的编码数据段复制K次,并保存编码数据段后,再从K个输出端同时输出;接收到开始译码指令后,译码模块进入迭代译码过程,VNPMJ将每次从K1个输入端输入的数据与修正因子相乘,再与保存的编码数据段相加后保存;将结果从K个输出端同时输出,并写入到对应的QQJ;其中作为加数的K1个输入端不包括与VNPMJ编号J相同的输入端所输入的数据;CNPMI具有I个从0到I1编号的输入端与I个0到。

8、I1编号的输出端,所述的I为校验矩阵原模图每行中变量节点的个数;CNPMI的I个输入端与QQJ的输出端,按校验矩阵原模图第I行中变量节点的位置对应相连,CNPMI的I个输出端与RQJ的输入端,按校验矩阵原模图I行中变量节点的位置对应相连;CNPMI将每次从I个输入端输入的数据中绝对值最小与次小的数据选出;从输入最小绝对值数据的输入端编号相同的输出端输出绝对值次小的数据,从其它I1个输出端输出绝对值最小的数据;CNPMI将I个输出端口输出的数据写入到对应的RQJ;在迭代译码过程中,CNPMI和VNPMJ依次迭代进行工作,并分别接收从QJQ和RJQ输出的数据,QJQ和RJQ在输出数据时,按照预先规。

9、定的读取地址循环读取上次迭代写入的数据;下标相同QJQ和RJQ为一组并按列对应于校验矩阵原模图每行中的校验节点,一组QJQ和RJQ具有相同的读取地址,所述的读取地址等于与QJQ和RJQ对应的校验节点扩展后子矩阵的偏移量;接收到结束译码指令后,VNPMJ将编号从0到K1的输入端输入的数据与保存的编码数据段求和后进行硬判决后从1个输出端输出到DJ,并由DJ按编号顺序将译码数据输出。3根据权利要求1所述的一种通用型LDPC译码器,其特征在于所述的通用长度为校验矩阵原模图每行变量节点个数的整数倍。4根据权利要求1所述的一种通用型LDPC译码器,其特征在于所述的修正因子取值在01间。5根据权利要求1或4。

10、所述的一种通用型LDPC译码器,其特征在于所述的修正因子取值08125。权利要求书CN101977063ACN101977068A1/8页4一种通用型LDPC译码器技术领域0001本发明涉及一种LDPC码译码器,特别涉及具有通用性的LDPC译码器,属于译码技术领域。背景技术0002随着深空通信、移动卫星通信等技术的不断发展,低信噪比通信成为通信技术发展的一个重要方向。为了能够可靠的进行通信,高增益的信道编码成为低信噪比通信系统不可或缺的一部分,在迄今为止所发明和应用的纠错编码技术中,只有TURBO码和LDPC码具有接近香农极限的性能。与TURBO码相比,LDPC码在运算速度、译码门限和错误平层。

11、方面都具有明显的优势,成为当前信道编码领域的研究热点。欧洲数字电视广播组织DVB已经宣布在其下一代卫星数字电视标准DVBS2中放弃TURBO码而采用LDPC码作为前向纠错的编码方案。而下一代蜂窝移动通信,宽带卫星通信,无线个人区域网80215,无线移动宽带接入网80220以及其它诸如数据存储介质设备访问和有线调制解调器CABLEMODEM、数字用户线DSL等通信系统也正在考虑将其作为信道编码规范。0003LDPCLOWDENSITYPARITYCHECKCODE码是一种线性分组码,它的校验矩阵是一个非常稀疏的矩阵,矩阵中的非零元素的数量相对于行列长度来说很少。如果校验矩阵的每一列或行都有相同的。

12、重量称这种LDPC码是规则的,否则称为不规则LDPC码。由于非规则LDPC码的校验矩阵中元素1的位置基本没有规律可循,导致编码复杂度高,实现难度比较大。而规则LDPC码,特别是准循环规则LDPC码可以采用简单的移位寄存器完成编码,硬件复杂度大大降低。0004现有的LDPC码译码器基本上都不具备通用性,一种码长对应一种译码器,变化码长后需要重新设计译码器,大大增加了研发时间和研发成本。对于星上使用的LDPC译码器,由于工作环境特殊,必须要有一种通用型的LDPC译码器来兼容不同的通信系统协议,因此LDPC码译码器的通用性在星上环境尤为关键。发明内容0005本发明的技术解决问题是克服现有技术的不足,。

13、提供了一种通用型LDPC译码器。采用本发明解决了对不同码长LDPC码译码器不兼容的问题,以通用型译码结构实现了对不同长度LDPC码的译码。0006本发明的技术解决方案是0007一种通用型LDPC译码器,包括调度模块、接收模块、译码模块和发送模块,接收模块接收LDPC编码数据并将编码数据逐段输出到译码模块;译码模块对接收模块输入的编码数据进行译码,并将译码数据输出给发送模块;发送模块将译码模块分段输出的译码数据排序后组成信息数据输出,其特征在于所述的调度模块与以握手命令的方式采用状态机实现对接收模块、译码模块和发送模块的交互控制;0008所述的译码模块可对通用长度的LDPC编码数据进行译码,译码。

14、模块包括校验节说明书CN101977063ACN101977068A2/8页5点处理模块CNPMI,I0N1,N为校验矩阵原模图的行数、变量节点处理模块VNPMJ,J0M1,M为校验矩阵原模图的列数、输入数据存储器YJ、输出数据存储器DJ、迭代计算存储器RIJ和QIJ;0009VNPMJ具有I1个从0到I编号的输入端和I个从0到I1编号的输出端,VNPMJ的编号为I的输入端与YJ的输出端相连,VNPMJ的编号从0到I1的输入端按编号与RIJ的输出端对应相连,VNPMJ的编号从0到I1的输出端按编号与QIJ的输入端对应相连;0010接收到数据接收指令后,VNPMJ将YJ缓存输入的编码数据段复制I。

15、次,并保存编码数据段后,再从I个输出端同时输出到相连的QIJ中;0011接收到开始译码指令后,译码模块进入迭代译码过程,VNPMJ将每次从I1个输入端输入的数据与修正因子相乘,再与保存的编码数据段相加后保存所得结果;再将结果从I个输出端同时输出,并写入到对应的QIJ;其中作为加数的I1个输入端不包括与VNPMJ编号J相同的输入端所输入的数据;0012CNPMI具有J个从0到J1编号的输入端与J个0到J1编号的输出端;CNPMI的J个输入端按编号与QIJ的输出端对应相连,CNPMI的J个输出端按编号与RIJ的输入端对应相连;0013CNPMI将每次从J个输入端输入的数据中绝对值最小与次小的数据选。

16、出;从与输入最小绝对值数据的输入端编号相同的输出端输出绝对值次小的数据,从其它J1个输出端输出绝对值最小的数据;CNPMI将J个输出端口输出的数据写入到对应的RQJ;0014在迭代译码过程中,CNPMI和VNPMJ依次迭代进行工作,并分别接收从QIJ和RIJ输出的数据,QIJ和RIJ在输出数据时,按照预先规定的读取地址循环读取上次迭代时分别由VNPMJ和CNPMI写入的数据;下标相同的QIJ和RIJ为一组对应于校验矩阵原模图每行中的每个元素节点,一组QJQ和RJQ具有相同的读取地址和末尾地址,所述的读取地址等于与QJQ和RJQ对应的元素节点扩展后子矩阵的偏移量;所述的末尾地址等于与QJQ和RJ。

17、Q对应的元素节点扩展后子矩阵的秩;所述读取地址和末尾地址需要再译码前根据码长进行配置;0015接收到结束译码指令后,VNPMJ将编号从0到I1的输入端输入的数据与保存的编码数据段求和后进行硬判决后从1个输出端输出到DJ,并由DJ按编号顺序将译码数据输出。0016所述的译码模块还可设计为包括校验节点处理模块CNPMI,I0N1,N为校验矩阵原模图的行数、变量节点处理模块VNPMJ,J0M1,M为校验矩阵原模图的列数、输入数据存储器YJ、输出数据存储器DJ、迭代计算存储器RQJ和QQJ,Q0K1,K为校验矩阵原模图每列中校验节点的个数;0017VNPMJ具有K1个从0到K编号的输入端和K个从0到K。

18、1编号的输出端,VNPMJ的编号为K的输入端与YJ的输出端相连,VNPMJ的编号从0到K1的输入端按编号与RQJ的输出端对应相连,VNPMJ的编号从0到K1的输出端按编号与QQJ的输入端对应相连;0018接收到数据接收指令后,VNPMJ将YJ缓存输入的编码数据段复制K次,并保存编码数据段后,再从K个输出端同时输出;0019接收到开始译码指令后,译码模块进入迭代译码过程,VNPMJ将每次从K1个输入端输入的数据与修正因子相乘,再与保存的编码数据段相加后保存;将结果从K个输出端同时输出,并写入到对应的QQJ;其中作为加数的K1个输入端不包括与VNPMJ编号J相同的输入端所输入的数据;说明书CN10。

19、1977063ACN101977068A3/8页60020CNPMI具有I个从0到I1编号的输入端与I个0到I1编号的输出端,所述的I为校验矩阵原模图每行中变量节点的个数;CNPMI的I个输入端与QQJ的输出端,按校验矩阵原模图第I行中变量节点的位置对应相连,CNPMI的I个输出端与RQJ的输入端,按校验矩阵原模图I行中变量节点的位置对应相连;0021CNPMI将每次从I个输入端输入的数据中绝对值最小与次小的数据选出;从输入最小绝对值数据的输入端编号相同的输出端输出绝对值次小的数据,从其它I1个输出端输出绝对值最小的数据;CNPMI将I个输出端口输出的数据写入到对应的RQJ;0022在迭代译码。

20、过程中,CNPMI和VNPMJ依次迭代进行工作,并分别接收从QJQ和RJQ输出的数据,QJQ和RJQ在输出数据时,按照预先规定的读取地址循环读取上次迭代写入的数据;下标相同QJQ和RJQ为一组并按列对应于校验矩阵原模图每行中的校验节点,一组QJQ和RJQ具有相同的读取地址,所述的读取地址等于与QJQ和RJQ对应的校验节点扩展后子矩阵的偏移量;0023接收到结束译码指令后,VNPMJ将编号从0到K1的输入端输入的数据与保存的编码数据段求和后进行硬判决后从1个输出端输出到DJ,并由DJ按编号顺序将译码数据输出。0024所述的通用长度为校验矩阵原模图每行变量节点个数的整数倍。0025所述的修正因子取。

21、值在01间。0026本发明与现有技术相比具有如下优点00271、本发明的译码模块采用的设计结构,可实现对不同码长LDPC的译码,只需要重新配置译码模块中的读取地址便可适应不同的码长的LDPC码,具有良好的灵活性与极强的兼容性。00282、本发明各个模块间采用状态机进行实现,各个工作模块在调度模块的握手式控制下独立工作,提高了译码器的可靠性。00292、由于本发明具有通用型译码结构,因此可采用固定的FPGA资源并配合外置RAM进行实现,并且FPGA资源占用少,逻辑资源不随码长的增加而增多,节省了设计与实现阶段的软硬件资源,尤其适应于资源有限的航天器工作环境。附图说明0030图1为本发明系统框图;。

22、0031图2为本发明状态机图;0032图3为译码模块结构设计图;0033图4为实施例校验矩阵原模图;0034图5为译码性能曲线图。具体实施方式0035一、发明原理0036准循环LDPC码的校验矩阵HQC如式1所示,各子矩阵AI,J是BB的循环右移置换矩阵或者是BB的0矩阵。0037说明书CN101977063ACN101977068A4/8页70038由于循环置换矩阵AI,J的形式完全决定于矩阵的偏移量,因此,总可以用母矩阵HBPI,JMN来表征校验矩阵HQC,其中,PI,J为AI,J的偏移量。0039若PI,J0,则表示HQC矩阵中对应的AI,J是向右偏移量为PI,J的置换矩阵,即通过将单位。

23、矩阵循环右移PI,J位,可得到AI,J;0040若PI,J0,则表示AI,J为单位阵,即不对单位阵进行循环移位;0041若PI,J0,则表示AI,J为全0矩阵。0042这样在设计中只要存储母矩阵就可以表示校验矩阵HQC,借此原理使得对LDPC码的通用译码方法具备了可实现性。在本发明所述的技术方案就是基于准循环LDPC码的译码器。0043原模图JTHORPE,LOWDENSITYPARITYCHECKLDPCCODESCONSTRUCTEDFROMPROTOGRAPHS,与DDIVSALAR,CONSTRUCTIONOFPROTOGRAPHLDPCCODESWITHLINEARMINIMUMDI。

24、STANCE可以认为是节点数量较少的LDPC码的校验矩阵,对应式1中的子矩阵AI,JBB的矩阵,若在原模图中令B为1,则AI,J仅代表0和1两种值,因此,原模图具有LDPC码校验矩阵的所有属性。基于原模图的LDPC码构造是在原模图基础上扩展AI,J,通过改变B的值,使译码器通用于各种码长的LDPC码。0044原模图经扩展后得到LDPC码的校验矩阵后,由于AI,J的B大于1,所以,扩展倍数不同,相同位置的AI,J可能会对应多种不同的偏移量,不同的偏移量对应到新的LDPC码所体现的也就性能不同,因此,在选择原模图校验矩阵时,需要通过计算机仿真搜索,选出一个性能优异的原模图矩阵。0045二、设计方案。

25、0046本发明的通用型LDPC译码器包括调度模块、接收模块、译码模块和发送模块。如图1所示,为译码器各模块间连接示意图。00471、状态机设计0048调度模块是译码器中的全局控制模块,调度模块对其他模块进行握手方式交互控制,即调度模块向各个模块发出控制命令,在等待模块工作完成并回复命令后,再发出下一条命令。整个译码器是以命令驱动的状态机方式进行工作。0049如图2所示,为译码器状态机的状态转换图。采用状态机的触发工作模式消除了因码长变化对各模块处理时间的影响,同时确保了处理模块间互不影响的并行工作,也提高了译码器工作的可靠性。0050整个状态机包括5个工作状态分别为等待状态IDLE空闲、接收状。

26、态S1、变量节点更新状态S2、校验节点更新状态S3和输出状态S4。0051IDLE状态为译码器的起始工作状态。此时各个模块之间无数据传输,处于等待调度模块调度命令的状态。说明书CN101977063ACN101977068A5/8页80052S1状态为译码器的接收模块的工作状态。当有译码数据到来时,调度模块向接收模块发送接收命令,启动接收模块接收译码数据,接收模块对输入的译码数据进行缓冲,然后按照译码数据的输入顺序进行分段存储,然后向调度模块回复并等待调度模块的发送命令,收到发送命令后接收模块将分段后的译码数据分别并同时输出给译码模块。0053S2、S3状态为译码器的译码模块迭代译码工作的状态。

27、。在译码过程中,S2状态和S3状态循环迭代进行,其中,S2状态为VNPM的工作状态,对应于变量节点更新操作;S3状态为CNPM的工作状态,对应于校验节点更新操作。0054译码模块工作时,不考虑输入的译码数据的码字长度,只是根据调度模块的开始译码命令与停止译码命令进行工作。当译码模块接收到调度模块的开始译码命令后,开始进行译码。此时译码器处于S2状态,然后,按照变量节点信息更新S2状态、校验节点信息更新S3状态的转换顺序循环进行迭代译码计算。每完成一次变量节点更新操作与校验节点更新操作相当于完成一次迭代,译码过程中,调度模块对迭代次数进行累加计数。当达到预定的迭代次数时,调度模块向译码模块发送停。

28、止命令,译码模块接收到停止命令后,停止译码,输出译码数据。0055S4状态为译码器的输出模块工作的状态。当有译码数据输出时,调度模块向输出模块发送输出命令,启动输出模块接收译码模块的输出数据并进行缓冲,由于译码器接收模块接收的输入数据是分段存储的,因此输出缓存D中的数据也要依次输出,即D0的数据全部输出完毕后,再输出D1中的数据,依次类推。00562、模块设计0057译码模块0058译码器的核心是译码矩阵模块,本发明译码模块结合原模图结构产生了具备通用性的LDPC译码结构。0059原模图本质上是一个较小规模的准循环LDPC码的校验矩阵,它规定了每一行和每一列的子矩阵AI,J个数,以及全0矩阵和。

29、非0矩阵的位置。在设计译码器时,原模图的结构决定了LDPC码的译码结构,因此,只要不改变原模图的结构即非0矩阵的个数和位置,即使LDPC编码的码长改变,那么译码模块的译码结构就不会改变,从而使译码器具备了通用性。0060在设计译码模块前,先优选一个性能优异的原模图,以该原模图为蓝本建立译码结构,所谓性能优异的原模图是指在相同的误码率条件下,若信噪比越低,则原模图的性能越好。在码长变化时,不改变原模图的结构,只是调整子矩阵AI,J的大小和偏移量使其满足码长要求,子矩阵的大小根据码长值可以直接算出,偏移量需要通过LDPC译码仿真模型进行筛选。0061本发明的译码模块为达到通用性的目的,须要对子矩阵。

30、AI,J大小和偏移量的改变能够自适应。在具体设计时,采用了两种设计结构。0062结构一0063对于一个大小为NM的校验矩阵原模图,需要N个校验节点处理模块CNPMI,并按照从0到N1进行编号;M个变量节点处理模块VNPMJ,并按照从0到M1进行编号。同时,为存储接收模块分段输入的编码数据段和分段输出译码数据段,还需要与于VNPMJ对应的J个输入数据存储器YJ和J个输出数据存储器DJ,YJ和DJ同样按照0到M1进行编号,并说明书CN101977063ACN101977068A6/8页9按编号与对应的VNPMJ相联接。对应于原模图校验矩阵中的每个元素经扩展后获得的子矩阵,同时设置迭代计算存储器RI。

31、J和QIJ,一个RQJ和一个QQJ定为一组。0064对于变量节点处理模块VNPMJ,具有I1个从0到I编号的输入端和I个从0到I1编号的输出端,VNPMJ的第I个输入端与YJ的输出端相连,VNPMJ的编号从0到I1的输入端按编号与RIJ的输出端对应相连,VNPMJ的编号从0到I1的输出端按编号与QIJ的输入端对应相连。0065对于校验节点处理模块CNPMI,具有就个从0到J1编号的输入端与J个0到J1编号的输出端。CNPMI的J个从0到J1编号的输入端与QIJ的输出端按编号对应相连,CNPMI的就个从0到J1编号的输出端与QIJ的输入端按编号对应相连。0066如图3所示,为校验矩阵原模图HAI。

32、J24时,采用结构一实现的译码模块。图3中,对应于校验矩阵原模图的行数设置有2个CNPM,列数设置有4个VNMP,并设置有2X4组R和Q,分别按照行列进行编号。并按照上述连接方式进行了连接。0067结构二0068同样对一个大小为NM的校验矩阵原模图,结构二与结构一相比,其主要区别在于使用的R与Q的数量变为RQJ和QQJ,其中,若按列优先进行排列,则Q对应于校验矩阵原模图每列中校验节点的个数K,按照从0到K1进行编号。则结合校验矩阵原模图进行分析,结构二相对于结构一省略了对应于校验矩阵原模图中对应于0元素位置的R与Q。0069为适应R与Q数量的改变,VNPM和CNPM的输入与输出端进行了相应的变。

33、化。对于变量节点处理模块VNPMJ,具有K1个从0到K编号的输入端和K个从0到K1编号的输出端,VNPMJ的第K个输入端与YJ的输出端相连,VNPMJ的编号从0到K1的输入端按编号与RQJ的输出端对应相连,VNPMJ的编号从0到K1的输出端按编号与QQJ的输入端对应相连。0070对于校验节点处理模块CNPMI,具有I个从0到I1编号的输入端与I个0到I1编号的输出端,所述的I为校验矩阵原模图每行中变量节点的个数。在校验矩阵原模图中,一行中具有多个不同的变量节点变量节点的个数可以为0,所以,对于不同的CNPMI与VNPMJ具有不同的对应连接关系。由于,原模图在进行扩展式,0元素扩展后为全0的子矩。

34、阵,因此,在按此原理设计译码模块的结构时,可进一步总结为,按行编号的CNPMI与校验矩阵原模图中第I行存在校验节点的VNPMJ具有连接,而CNPMI和VNPMJ的连接点便为RQJ和QQJ。0071在CNPMI和RQJ和QQJ的连接时,CNPMI的I个从0到I1编号的输入端与QQJ的输出端,按校验矩阵原模图第I行中变量节点的位置对应相连,CNPMI的I个从0到I1编号的输出端与RQJ的输入端,按校验矩阵原模图I行中变量节点的位置对应相连。0072此种设计,使得在进行迭代的过程中,CNPMI和VNPMJ分别按照校验节点和变量节点的对应位置进行工作,从而会出现暂时空闲的CNPMI和VNPMJ。但由于。

35、采用了与校验矩阵原模图中校验节点变量节点总数的RQJ和QQJ,因此,RQJ和QQJ在每次迭代过程中均会被使用,始终处于工作中。相对于结构一进一步节省了硬件资源。0073译码算法0074本发明采用了乘性修正最小和MSMA译码算法进行译码。0075接收到开始译码指令后,译码模块进入迭代译码过程,VNPMJ将每次从K1或I1个输入端输入的数据与修正因子相乘,再与保存的编码数据段相加后保存;将结果从K或I说明书CN101977063ACN101977068A7/8页10个输出端同时输出,并写入到对应的Q中;其中作为加数的输入端不包括与VNPMJ编号J相同的输入端所输入的数据;0076CNPMI将每次从。

36、I或J个输入端输入的数据中绝对值最小与次小的数据选出;从输入最小绝对值数据的输入端编号相同的输出端输出绝对值次小的数据,从其它I1或J1个输出端输出绝对值最小的数据;CNPMI将I或J个输出端口输出的数据写入到对应的R中。0077在迭代译码过程中,CNPMI和VNPMJ分别接收从与其相连的Q和R输出的数据。Q和R在输出数据时,按照预先规定的读取地址循环读取上次迭代写入的数据一组Q和R具有相同的读取地址,读取地址等于与Q和R对应的校验节点扩展后所得子矩阵的偏移量。0078在每组Q和R中,写入数据的首地址为0,末尾地址为B1,B为每组Q和R所对应校验矩阵原模图子矩阵的秩。循环读取的规则为,Q和R以。

37、预先规定的读取地址ADDX为首地址读取暂存于其中的数据,当读取到数据末地址B1时,在从0开始读取直到ADDX1,通过此循环读取,实现对其中暂存数据的循环移位输出。0079按照这个设计方案,只需要在Q和R中预先按照对应的子矩阵的偏移量设置好每次读取数据的起始地址读取地址,CNPMI和VNPMJ分别独立进行进行,调度模块累加统计迭代次数,从而可以在编码长度改变时,只需要通过程序改变每个Q和R中的读取地址与B,便可在不影响译码结构的情况下,对不同编码长度的LDPC码进行译码,实现了译码器的通用性设计。0080对于结构二的设计,由于省略了校验矩阵原模图中与0元素相对应的Q和R,但是,结构二中的Q和R仍。

38、与校验矩阵原模图中的非零元素存在对应关系,因此可以按照同样的方式设置读取地址。0081接收模块0082用于接收输入译码器的编码数据,并对编码数据进行分段,接受模块对编码数据的分段原则是根据译码模块中YJ的个数对输入的编码数据按照先后顺序进行的。分段完成后的编码数据段在调度模块的控制下,逐段依次序输入到译码模块的YJ中,即按照从Y0到YM的顺序进行接收。0083输出模块0084输出模块在调度模块的控制下接收译码模块输出的译码数据段,并将分段输出的译码数据重新组合后输出。按照译码模块接收编码数据段的先后顺序,将译码数据段编排后输出,即按照从D0到DM的顺序进行输出。0085调度模块0086调度模块。

39、对接收模块、译码模块与输出模块进行握手控制,以状态转换的方式控制各个模块独立工作。0087三、实施例0088以下以1/2码率为例,对可配置码长的通用LDPC译码器的设计过程进行说明。0089本方案通过仿真模型选择的原模图矩阵如图4,按照原模图设计的译码结构中QCLDPC码的母矩阵HBAIJ816,译码结构包括8个校验节点处理模块CNPM,16个变量节点处理模块VNPM;16个输入数据存储器Y;16个输出数据存储器D;48个交互信息存储器R;48个交互信息存储器Q。说明书CN101977063ACN101977068A8/8页11009048组R和Q分为16列,每一列上的3组R和Q均对应一个VN。

40、PM,根据图4中,校验矩阵原模图每列中校验节点的个数,每个VNPM具有4个输入端与3个输出端,其中每个VNPM的第4个输入端与Y相连。其余3个输入端分别连接本列中的3个R的输出端,而3个输出端分别连接本列中的3个Q的输入端,同时复用1个输出端用于在译码结束时向D输出译码数据。0091CNPM同样具有6个输入端与6个输出端。48组R和Q分为16列后,将共有3行。8个校验节点处理模块CNPM分别对应于8行,并根据图4矩阵中每行变量节点的位置对应连接R和Q。0092本方案中原模图的子矩阵是BB的循环右移置换矩阵,根据图4可知,利用此校验矩阵原模图可对码长L16B的LDPC码进行译码这里的码长需为16。

41、的整数倍。使用前,通过原模图到LDPC码校验矩阵的仿真模型,可得到对应码长校验矩阵的偏移量,进而可以设置每个R和Q的读取地址。0093本实施例中使用XILINX公司的VIRTEX4SX55的FPGA芯片,占用的逻辑资源为25,相当于150万门的逻辑。存储器Q和R的容量分别为84KBITS,这样在配置码长时,只要子矩阵的大小不超过存储器Q和R的容量上限即可。按照码长公式L16B,当B4K时,码长最长为64K,这个范围内的码长足以满足现有的LDPC码的使用要求。0094此外,采用本发明设计的译码器也具有较好的译码性能,如图5所示,可配置码长的LDPC译码器分别生成的码长为6912“”线和2048“。

42、”线的码性能曲线,图中X轴为信噪比EB/N0,Y轴为误码率。资料显示,CCSDS标准中码率为1/2,码长为8192的LDPC码在108误码率条件下EB/N0为15DB;码长2048的LDPC码在106误码率条件下EB/N0为2DB。比较可知,本方法中的可配置码长的LDPC码在性能上与CCSDS标准的差距不到03DB。0095本发明未详细说明部分属本领域技术人员公知常识。说明书CN101977063ACN101977068A1/3页12图1图2说明书附图CN101977063ACN101977068A2/3页13图3图4说明书附图CN101977063ACN101977068A3/3页14图5说明书附图CN101977063A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 基本电子电路


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1