当前位置:首页 > 工业控制 > 电子设计自动化

摘 要: 对空间数据系统委员会(CCSDS)推荐的QC-LDPC码进行了研究,给出了改进的分层译码算法。基于改进的分层译码算法设计部分并行结构QC-LDPC译码器,译码速率较快,适合应用需求,并通过仿真验证所设计的译码器的性能。
关键词: LDPC码;准循环;分层译码算法;部分并行结构

LDPC码[1](Low-Density Parity-Check Code)已经被证明是实用的好码,因其优异的纠错性能和高效的迭代译码算法而具有广阔的应用前景。QC-LDPC码(Quasi-Cyclic LDPC Code)是根据系统化构造方法构造的一类非常重要的LDPC码,目前已经成为LDPC码硬件实现研究的热点。空间数据系统委员会(CCSDS)推荐了多种码长和码率的QC-LDPC码作为卫星通信和深空通信的信道编码标准[2]。
为满足不同码率的需要,同时考虑译码器应当具有低复杂度和低功耗,本文设计了一种基于改进分层译码算法的译码器结构,以满足实际需要。

其中每个子矩阵Ai,j都是一个z×z的循环方阵,此方阵只可能是零矩阵、单位阵或者单位循环移位后的矩阵。
置信传播算法[3-4]BP(Belief-propagation decoding algorithm)是很重要的一类基于LDPC码的译码算法,因其具有严格的数学结构和良好的性能,可以对译码算法的性能做定量分析。修正最小和(MMSP)译码算法[5]实际采用的是BP算法机制,虽然具有较低复杂度并保持良好的性能,但在实际应用中会占用大量硬件资源,且译码延时较长。基于OMS(Offset Min-Sum)的分层译码算法[6]能保证信息马上得到传递,从而改进信息的收敛性。


2 译码器的FPGA实现
2.1 译码器结构总体设计
译码器有三种不同的译码结构:全并行结构、串行结构和部分并行结构。部分并行结构避免了全并行结构资源消耗过大、硬件实现难度大的缺点,同时译码速率比串行结构快得多,十分适于实际应用。然而,部分并行结构对校验矩阵中非零元素的分布有特定的要求,而现有的大多数LDPC码其校验矩阵中“l”的分布具有随机性,因此译码器采用部分并行结构十分困难。
QC-LDPC校验矩阵H的每行校验子矩阵中所有行对应的校验节点自然地被划分为一个校验节点集合,而且任意两个集合Li和Lj,满足Li∩Lj=?准。集合Li中的任意两个校验节点Ci、Cj不与相同的变量节点相连,因此可以并行地对每一集合中的校验节点Ci进行更新。
为此,借鉴全并行结构的思想,对串形结构进行修改,增加译码器中的并行节点更新模块(NUU)个数,得到的部分并行结构共有b个NUU单元。b为循环子矩阵的行数。
QC-LDPC并行译码器模块主要由以下几个模块构成:输入缓冲模块、控制模块、节点更新模块(NUU)、数据存储模块、数据重构模块、校验模块和译码输出缓冲模块,如图1所示。其中,控制模块分别产生各子模块的使能,它是译码器的核心控制模块,控制着迭代的正确进行;NUU为译码器的核心运算模块;数据缓冲模块用来判断译码器速率是否大于进入译码器的数据速率;数据存储模块完成中间数据的存储;数据重构模块将变量节点更新的输出数据按照校验节点运算的取数顺序重新排列;校验模块用来校验判决出的码字是否满足校验矩阵。

2.2 节点更新模块(NUU)
本文实现的译码器采用基于修正因子的分层译码算法,每一层的校验节点处理完成以后,信息立即被用来更新变量节点。它的结果被用来提供给下一层的校验节点处理。因而校验节点处理模块和变量节点处理模块可以合并成同一个模块,简称节点更新模块NUU(Node Update Unit)。
本文只研究信息位k=1 024的QC-LDPC码,其结构如表1所示。

图2所示的模块是每层b路并行处理单元中的一个,b为校验矩阵H的循环子矩阵的行数。为了降低部分并行LDPC码译码器中连接的复杂度,节点更新模块(NUU)中节点更新的信息都采用数据串行方法。变量节点的度决定了校验节点单元一次处理的节点数,将校验节点单元处理的节点数设为节点变量的最大值,可以通过逻辑选通来适应不同的码率。

2.3 数据存储模块
本文对接收到的原始数据和计算过程产生的中间数据都采用了8 bit整数量化,其中1 bit为符号位,7 bit为数据位。将译码开始时外部输入的数据存入判决信息存储器时,将接收的前b个二进制数据的最高位依次级联为一个b bit的数据,存入判决信息存储器1,地址为0;将前b个数据的次高位级联为一个b bit的数据,存入判决信息存储器2;然后依次将b个数据剩下的相同位置的数据级联,存入判决信息存储器2:7,地址为0;将接收的后b个数据按上述同样的方式存入判决信息存储器1:7,地址为1;当待译码字的所有数据都存入了判决信息存储器后,就开始译码。图3为数据存储模块框图。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在工业控制系统中,Modbus RTU协议的CRC校验如同通信网络的"免疫系统",某石化厂DCS系统曾因CRC计算错误导致0.3%的数据包丢失,引发连锁控制故障。本文将深入解析CRC-16/MODBUS算法原理,对比软件...

关键字: Modbus RTU CRC 算法

加密算法分对称加密和非对称算法,其中对称加密算法的加密与解密密钥相同,非对称加密算法的加密密钥与解密密钥不同,此外,还有一类不需要密钥的散列算法。

关键字: 算法 嵌入式

在现代数字系统设计中,将算法高效地转化为 RTL(寄存器传输级)实现是 FPGA 工程师的核心任务之一。这一过程不仅需要对算法有深入理解,还需掌握 FPGA 的硬件特性和设计技巧。本文将详细介绍从算法到 RTL 实现的关...

关键字: 算法 寄存器传输级 数字系统

从本质上讲,算法是一种有条不紊、分步骤解决问题或完成任务的方法。无论是简单的数字相加公式,还是复杂的机器学习协议,算法都是软件应用的基础,确保任务能够高效有效地执行。

关键字: 算法 嵌入式

在自动驾驶技术的发展历程中,激光雷达(LiDAR)宛如一颗备受瞩目的新星,其独特的技术特性使其成为追求高安全性、高可靠性自动驾驶方案的首选。然而,这颗新星并非毫无争议,“价格昂贵、结构复杂、算法难度高” 等标签,也让一些...

关键字: 自动驾驶 激光雷达 算法

4月2日消息,近日,有关智能驾驶而引发的交通事故在网络上引起了大家的热烈讨论,对此,央视网评指出,“智能驾驶”,也请握紧方向盘。

关键字: 算法 智能驾驶

所谓排序算法,即通过特定的算法因式将一组或多组数据按照既定模式进行重新排序。这种新序列遵循着一定的规则,体现出一定的规律,因此,经处理后的数据便于筛选和计算,大大提高了计算效率。对于排序,我们首先要求其具有一定的稳定性,...

关键字: 排序算法 算法

快速排序通过一趟排序将待排序列分割成独立的两部分,其中一部分序列的关键字均比另一部分序列的关键字小,则可分别对这两部分序列继续进行排序,以达到整个序列有序的目的。

关键字: 快速排序 算法

算法,作为解决问题的精确描述,是描述策略机制的系统方法。让我们在周末轻松探讨五个具有深远影响的算法:Metropolis-Hastings算法、单纯形法、快速傅立叶变换、快速排序算法,以及计算特征值的QR算法。这些算法在...

关键字: 算法 快速排序算法

服务需要保护自己,以免被太多的请求淹没(无论是恶意或无意的),从而保持可用性。举个生活中的例子,某个景区,平时可能根本没什么人前往,但是一旦到了国庆假日就人满为患,这时景区管理人员就会实施一系列的限流举措,来限制进入的人...

关键字: 限流 算法
关闭