基于分层和积译码算法的FPGA实现方法、系统及介质
- 国知局
- 2024-09-05 14:53:37
本发明属于无线通信和数字信号处理,涉及一种译码器,特别是涉及一种基于分层和积译码算法的fpga实现方法、系统及介质。
背景技术:
1、信道编译码技术的发明为通信系统提供了可靠的数据传输。与其他信道编译码方式相比,低密度奇偶校验(low-density parity-check,ldpc)码具有强纠错性、结构灵活以及低译码复杂度等优势。准循环码(quasi-cyclic ldpc,qc-ldpc)是一类具有准循环结构特性的ldpc码,其检验矩阵是由循环置换矩阵(circulant permutation matrices,cpm)或零矩阵组成的阵列,cpm为的单位矩阵每行循环右移得到的矩阵,校验矩阵中的元素值表示循环置换矩阵的移位量,便于实现译码器的硬件结构且有更好的译码性能与速度。现场可编程门阵列(fpga)具有灵活的可编程性以及高速的并行逻辑处理能力,易于实现不同码长、码率、信噪比和其他可变参数的译码器,可以在实际应用中实现更高的可靠性和稳定性。
2、ldpc码的译码算法可分为软判决译码算法和硬判决译码算法,软判决译码算法因其更强的译码性能而得到广泛研究。ldpc软判决译码算法主要包括置信传播(beliefpropagation,bp)译码算法、对数似然比(log likelihood ratio,llr)置信传播译码算法、以及在bp算法基础上改进的最小和(minimum sum,ms)、归一化最小和(normalizedminimum sum,nms)和补偿最小和(offset minimum sum,oms)等译码算法,其中对数似然比置信传播算法将bp算法的非线性乘法运算简化成了线性加法运算,保证译码性能的同时大大降低了译码算法在硬件实现的复杂度。分层译码算法是将校验矩阵的若干行划分为一层,采用层间串行层内并行的操作加快迭代译码的收敛速度,而qc-ldpc码可以将基矩阵的一行看作一层,故对qc-ldpc码采用分层llr bp译码算法,又称分层和积译码算法(layersum-product algorithm,lspa),可以降低硬件资源,提高译码迭代收敛速度。
3、由于和积译码算法中涉及到对数运算和三角函数运算,这在fpga上实现较为复杂,目前ldpc译码器的fpga设计多使用最小和译码算法,其以一定的译码准确率作为代价来简化译码算法的实现复杂度,但在实际应用中某些低信噪比通信条件下,比如连续变量量子密钥分发系统中,最小和译码算法的译码性能不及和积译码算法。目前ldpc译码器的fpga实现重点在译码器性能的提升与硬件资源消耗的减少,设计基于分层和积译码算法的qc-ldpc码译码器的fpga实现是有必要的。
4、现有qc-ldpc译码器的fpga实现,其大多使用分层最小和译码算法或者对最小和译码算法的改进,这些译码算法均为和积译码算法的简化,其译码性能会有所损失,而且在低信噪比条件下性能较差;译码器硬件结构需要存储奇偶校验矩阵、所有节点信息、待译码信息矩阵、归一化系数、后验llr信息等大量数据信息,译码器译码性能和硬件资源消耗有待提升。
技术实现思路
1、本发明的目的在于提供一种基于分层和积译码算法的fpga实现方法、系统及介质,用于解决现有技术中低信噪比条件下译码器性能差、译码速度慢的问题。
2、第一方面,本发明提供一种基于分层和积译码算法的fpga实现方法,所述方法包括如下步骤:获取信道消息,对qc-ldpc码的校验矩阵进行预处理以得到预处理信息;对所述信道消息进行初始化处理后,更新节点llr信息并根据所述预处理信息存储;在计算得到最后一层的后验llr信息并更新之后进行译码判决;确定满足预设条件后译码结束,存储译码得到的译码结果。
3、在第一方面的一种实现方式中,所述对qc-ldpc码的校验矩阵进行预处理以得到预处理信息,包括:获取qc-ldpc码中的校验矩阵;过滤所述校验矩阵中的零矩阵,并对过滤后的所述校验矩阵进行压缩以得到偏移量矩阵和地址矩阵;其中,所述零矩阵中的校验节点和变量节点之间在译码过程中没有信息传递且无消息更新,所述偏移量矩阵用于保存每一行所述校验矩阵对应的循环移位量,所述地址矩阵由每个循环置换矩阵对应的校验矩阵列号组成,所述偏移量矩阵的行数和所述地址矩阵的行数均与所述校验矩阵的行数一致,所述偏移量矩阵的列数和所述地址矩阵的列数均与所述校验矩阵中的最大行重一致,所述行重为所述校验矩阵中每一行非负值的数量。
4、在第一方面的一种实现方式中,所述对所述信道消息进行初始化处理后,更新节点llr信息并根据所述预处理信息存储,包括:对所述信道消息进行初始化处理以得到第一llr信息;根据所述第一llr信息更新每一次迭代中每一层节点的第二llr信息,所述第二llr信息包括校验节点llr信息、后验llr信息和变量节点llr信息;根据所述预处理信息将所述第二llr信息中的所述校验节点llr信息和所述后验llr信息存储在存储器中,将所述变量节点llr信息按照校验节点读取信息的顺序寄存。
5、在第一方面的一种实现方式中,所述对所述信道消息进行初始化处理以得到第一llr信息,包括:通过第一公式计算出所述信道信息中每个变量节点和校验节点在迭代开始之前的初始llr信息;
6、其中,所述第一公式满足如下条件:
7、
8、其中,l(0)(qj)为信道传递给第j个变量节点的信道初始llr信息,l(0)(rij)为第i个校验节点传给第j个变量节点的变量节点初始llr信息,qj表示接收到的信道信息yj对应的发送码字为0或者1的后验概率信息,rij表示第i个校验节点传递给第j个变量节点的外信息,σ2表示信道高斯噪声的方差。
9、在第一方面的一种实现方式中,所述根据所述第一llr信息更新每一次迭代中每一层节点的第二llr信息,包括:将所述校验矩阵按行分层,采用层内并行层间串行的译码策略进行译码,以分别得到每一层变量节点和校验节点之间传输的校验节点llr信息和变量节点llr信息;根据每一层的所述校验节点llr信息和变量节点llr信息计算得到后验llr信息。
10、在第一方面的一种实现方式中,所述校验节点llr信息、所述变量节点llr信息和所述后验llr信息的计算过程满足如下第二公式:
11、
12、其中,l是当前迭代次数,k是当前的层数,j′表示与第i个校验节点相连的除去第j个变量节点以外的变量节点的集合,qji表示第j个变量节点传递给第i个校验节点的外信息,v(i)表示与第i个校验节点相连的变量节点的集合,l(l,k)(qji)表示当前层迭代更新后的第j个变量节点传向第i个校验节点的变量节点llr信息,l(l,k-1)(qj)是上一层第j个变量节点的后验llr信息,l(l-1,k)(rij)是上一次迭代第i个校验节点传给第j个变量节点的校验节点llr信息,l(l,k)(rij)是当前层迭代更新后的第i个校验节点传向第j个变量节点的校验节点llr信息,l(l,k)(qj)为第k层更新后的第j个变量节点的后验llr信息,v(i)\j表示v(i)中除第j个变量节点以外的变量节点集合,sgn是符号函数,x表示函数的变量。
13、在第一方面的一种实现方式中,所述校验节点llr信息存储在校验节点llr信息存储ram中,所述后验llr信息存储在后验llr信息存储ram中,所述变量节点llr信息通过快速循环移位器按照校验节点读取信息的顺序寄存。
14、在第一方面的一种实现方式中,所述在计算得到最后一层的后验llr信息并更新之后进行译码判决,包括:在计算得到最后一层的所述后验llr信息之后,确定每一层的所述后验llr信息完成更新;对当前层的所述后验llr信息进行判决后以获得译码码字序列。
15、在第一方面的一种实现方式中,所述确定满足预设条件后译码结束,存储译码得到的译码结果,包括:判断是否满足达到最大迭代次数或者译码码字序列满足校验方程;在确定满足上述任一条件之后确定译码结束,将所述译码码字序列存储至译码结果存储器;否则继续进行新一轮的信息迭代更新。
16、第二方面,本发明还提供了一种基于分层和积译码算法的fpga实现系统,包括控制单元、地址生成单元、后验llr信息存储ram、校验节点llr信息存储ram、节点信息处理单元、校验判决单元、分解校验矩阵单元、初始llr信息计算单元和译码结果存储器,所述初始llr信息计算单元与所述后验llr信息存储ram电连接,用于在接收信道信息之后计算第一llr信息并存储至所述后验llr信息存储ram中,所述节点信息处理单元分别与所述后验llr信息存储ram和所述校验节点llr信息ram电连接,用于根据所述第一llr信息计算出第二llr信息并分别存储,所述分解校验矩阵单元与所述节点信息处理单元电连接,用于对校验矩阵分解后得到的偏移量矩阵和地址矩阵进行存储,所述校验判决单元与所述后验llr信息存储ram电连接,用于在迭代更新之后进行判决,并在迭代结束之后将译码码字序列存储在所述译码结果存储器之中。
17、在第二方面的一种实现方式中,所述节点信息处理单元包括变量节点信息处理模块、校验节点信息处理模块、加法器、第一快速循环移位器和第二快速循环移位器,所述变量节点信息处理模块用于计算变量节点llr信息,所述校验节点信息处理模块用于计算校验节点llr信息,所述第一快速循环移位器的输入输出端分别与所述变量节点处理模块和所述校验节点处理模块电连接,用于将变量节点传向校验节点的所述变量节点llr信息按照校验节点读取llr信息的顺序循环移位,所述第二快速循环移位器的输入输出端分别与所述校验节点信息处理模块和所述校验节点llr信息存储ram电连接,用于将所述校验节点llr信息按照变量节点读取顺序进行反向循环移位存入所述校验节点llr信息存储ram中,所述加法器分别与所述变量节点信息处理模块和所述校验节点信息处理模块电连接,以根据所述变量节点llr信息和所述校验节点llr信息计算后验llr信息。
18、在第二方面的一种实现方式中,所述快速循环移位器包括移位控制器、左移模块、右移模块和选择模块,所述移位控制器在接收所述变量节点llr信息之后生成移位控制信号和移位数,所述移位控制器分别与所述左移模块和所述右移模块电连接,以对所述变量节点llr信息分别进行左移和右移得到左移结果和右移结果,所述选择模块与所述左移模块和所述右移模块电连接,用于根据所述移位控制信号选择所述左移结果或者所述右移结果作为移位结果。
19、第三方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现上述的基于分层和积译码算法的fpga实现方法。
20、如上所述,本发明所述的基于分层和积译码算法的fpga实现方法、系统及介质,具有以下有益效果:
21、与传统的译码器相比,实现了校验矩阵预处理、快速循环移位操作,加快了译码速度,提高译码器的吞吐量。同时在数据存储方面整合了初始变量节点llr信息和后验llr信息的存储,省去层内变量节点llr信息的存储,降低了译码器的资源消耗。
本文地址:https://www.jishuxx.com/zhuanli/20240905/288731.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。