一种EG-LDPC译码器的制作方法

文档序号:22118548发布日期:2020-09-04 15:53阅读:192来源:国知局
一种EG-LDPC译码器的制作方法

本发明涉及一种欧式几何低密度奇偶校验(euclideangeometry-ldpc,eg-ldpc)码译码器及方法。



背景技术:

低密度奇偶校验码(lowdensityparitycheckcode,ldpc)作为可以逼近香农限的好码受到了广泛的研究与应用。到目前为止,ldpc已经被确定应用于5g移动宽带业务数据信息的长码块编码方案。ldpc的核心思想是将信息分散到一个稀疏的向量空间以获得良好的译码性能。

ldpc发现之初(gallager,1963)因为运算量太大使得当时的运算设备不足以承载被忽略,直到30年后重新进入人们的视线(tanner,1981)(mackay,1999),发现了其良好的编译码性能。构造随机的稀疏矩阵在译码时可以很好的接近香农限,但因为矩阵的随机性使得硬件实现较为复杂。相对于随机ldpc,结构化ldpc可以减少硬件复杂度。其中欧式几何低密度奇偶校验码(euclideangeometry-ldpc,eg-ldpc)(y.kouands.lin,2001)是使用基于有限域上的欧氏几何的线和点来设计实现ldpc的方法。eg-ldpc的生成矩阵和校验矩阵具有代数结构,构造的码字不会产生4环,降低了实现复杂度,有利于硬件实现。但eg-ldpc的h矩阵行列较重,不适用于置信传播算法的使用。而比特翻转(bit-flipping,bf)算法(j.h.kim,2010)(j.t.zhang,2007)和大数逻辑译码(majority-logicdecoding,mld)算法(a,thangaraj,2002)(t.m.n.ngatched,2011)(r.pedro,2013)(h.q.chen,2015)可以很好的利用eg-ldpc的优势来检错和纠错。

ⅰ类2维eg-ldpc作为大数逻辑可译码,对其码字进行译码时,仅需要对eg-ldpc的h矩阵的子矩阵进行循环移位就可以对码字顺序完成校验,因此其硬件实现简单。但对于码长为的码字需要对子矩阵循环移位次,对于h矩阵中单个分向量复用次;在阶的h矩阵中,1具有信息值而0不具有信息值,同时eg-ldpc的h矩阵为稀疏矩阵,稀疏矩阵每个分向量中1的数量仅为个,因此整个h矩阵的子矩阵中绝大部分位置为0的循环移位是不需要的。本发明设计了一种eg-ldpc译码器,计算结果表明,减少了存储占用资源,增加了译码效率。



技术实现要素:

本发明提出了一种eg-ldpc译码器,目的在于减少译码器的存储占用资源,增加译码器的译码效率。

本发明是这样实现的:一种eg-ldpc译码器,包括:控制器、移位运算器、数据存储器组、h矩阵存储器、接收存储器、数据运算器以及结果运算器。

所述控制器产生数据存储器组的ram读入读出状态及地址、h矩阵存储器和接收存储器的ram读入读出地址。

所述移位运算器接入原始数据,形成数据循环矩阵输入到数据存储器组;所述h矩阵存储器的输出端连接到数据存储器组的地址位;所述数据存储器组的输出端连接数据运算器的输入端;所述数据运算器的输出端接入到结果运算器的输入端;所述结果运算器的输出端接入到接收存储器的输入端。

所述数据存储器组包含有2个ram;所述h矩阵存储器存储h矩阵分向量中1的位置;所述接收存储器接收最终修正数据。

所述移位运算器包含个d触发器;所述数据运算器包含有个异或器,个d触发器;所述结果运算器包含有个加法器,个d触发器,个异或器。

一种eg-ldpc译码方法步骤包含如下。

第一步,控制器产生数据存储器组中ram读入读出状态及地址,数据运算器进行次循环移位构成阶数据循环矩阵输入到数据存储器组的ram中,使用数据循环矩阵替代h矩阵子矩阵的循环移位;移位结果按地址顺序输入到数据存储器组,数据存储器组中的2个ram的读入读出状态应当交替出现,当1个ram为读出状态时,表示其当前数据循环矩阵已准备完毕;另一个ram为读入状态时,其接收下一个数据向量的循环矩阵。

第二步,控制器产生h矩阵存储器ram读出地址,其输出向量接入数据存储器组中ram的地址位读出对应数据。其中eg-ldpc的h矩阵子矩阵分向量应当满足:

每个向量的第个位置的值均为1;对的位置中值为1的向量不超过1个。

确定h矩阵的子矩阵后,h矩阵存储器的ram仅存储每个分向量为1的位置,即ram中每个地址描述一个分向量所有1的位置。

h矩阵存储器ram的输出产生数据存储器组ram的读取地址,相应的数据循环矩阵的输出向量可以表示为h矩阵子矩阵的分向量中的1循环移位次与数据向量对应bit计算的顺序输出。

第三步,数据运算器对于数据循环矩阵输出向量的异或运算应当接收个数据向量时,完成一次分向量运算。数据运算器将运算结果输出至结果运算器并初始化。

第四步,控制器产生接收存储器读入地址,结果运算器使用个加法器对接收的数据在相应位置进行相加,当接收个数据向量时,所有分向量计算完成。

相加结果表示对应bit位置出错。反之当时,表示对应bit位置正确。其中为h矩阵子矩阵所有分向量与数据向量异或和后的相加值。

根据相加结果及h矩阵事先存储的分向量判断出错bit位置,出错位置bit与1异或,未出错bit与0异或,数据修正完成,将修正数据向量输入接收存储器。

本发明的优点在于:存储h矩阵中1的位置代替h矩阵子矩阵。对于eg-ldpc,当时,该方法可以减少存储占用资源。

使用数据循环矩阵替代h矩阵分向量的循环减少了存储占用资源。

数据循环矩阵的分向量表示h矩阵的分向量中的相应位置bit循环移位次所读取的bit值;h矩阵存储器的ram中的存储深度为,顺序调用h矩阵存储器ram个地址就可完成译码。对于时钟频率为nmhz时,其吞吐量可以达到nmbit/s,图公式5所示。

(5)。

其中为时钟频率,为码字长度,为完成译码需要的时钟周期。

相较于传统大数逻辑译码使用数据向量及h矩阵分向量进行译码实现nmbit/s的吞吐量,需要个ram构成h矩阵存储器组。因此本发明还提高了译码效率。

附图说明

为了更加清晰的说明本发明的目的和优异性,本发明下面参照附图结合实施例对本发明作进一步说明。

附图1是本发明一种eg-ldpc译码器的电路原理框图;

附图2是传统一步大数逻辑译码原理图。

具体实施方式

结合附图1说明,本发明一种eg-ldpc译码器的较佳实施例,包括:控制器、移位运算器、数据存储器组、h矩阵存储器、接收存储器、数据运算器以及结果运算器。所述移位运算器接入原始数据,形成阶数据循环矩阵输入到数据存储器组,为数据长度;所述h矩阵存储器中存储h矩阵分向量中1的位置,其h矩阵存储器的ram的存储宽度为,存储深度为。h矩阵存储器输出连接到数据存储器的地址位;所述数据存储器组的输出端连接数据运算器输入端,数据长度为,其输出端连接到结果运算器的输入端;所述结果运算器对所有分向量的异或结果进行加运算,判断出错bit位置并纠正,其修正结果输出到接收存储器的输入端。

所述控制器产生数据存储器组的ram读入读出状态及地址、h矩阵存储器和接收存储器的ram读入读出地址。

所述数据存储器组包含有2个ram;所述h矩阵存储器将h矩阵分向量中1的位置以地址的形式存储;所述接收存储器接收最终修正数据。

其中数据存储器组的数据循环矩阵如公式6所示,其中为数据bit。

(6)。

所述移位运算器包含个d触发器;所述数据运算器包含有个异或器,个d触发器;所述结果运算器包含有个加法器,个d触发器,个异或器。

结合附图2说明传统一步大数逻辑译码算法原理如下所示。

在码字长为的eg-ldpc的h矩阵中可以找到个分向量构成子矩阵。

每个向量的第个位置的值均为1;对的位置中值为1的向量不超过1个。

h矩阵子矩阵如公式7所示。

(7)。

假设错误码字总的错误数量,当第位出错时,将上述个向量与码字的异或和后,相加的值;反之第位正确,。因为eg-ldpc的h矩阵是循环矩阵,所以将上述个向量进行循环移位次并计算,就可通过该数据向量完成译码。

结合附图2说明,为了减少译码器存储器占用资源,增加译码效率。

一、本发明将h矩阵分向量中1的位置以地址的形式存储。

其中将存储器对h矩阵分向量的存储转换为分向量中对应的1的地址进行存储,每个分向量占用的资源由变为,其中为存储地址所需位数。

所以当时,该方法可以减少存储占用资源。

二、本发明用数据循环矩阵替代h矩阵子矩阵的分向量的循环移位。

其中h矩阵子矩阵的个分向量的循环移位可以对应于码字的循环移位,以式6,式7得式8,h矩阵分向量向右平移一位等效于数据循环矩阵向左平移一位。

(8)。

进一步的,数据循环矩阵与h子矩阵单个分向量的计算可以表示为式9,其可以理解为该分向量循环移位次对数据向量的校验计算。

(9)。

进一步的,因为数据循环矩阵为对称矩阵,所以每一个数据循环矩阵的分向量可以理解为对h矩阵子矩阵的分向量中的数据bit与数据向量循环移位次后对应bit计算的顺序输出。

一种eg-ldpc译码方法的步骤如下所示。

第一步,控制器产生数据存储器组中ram读入读出状态及地址,数据运算器进行次循环移位构成阶数据循环矩阵输入到数据存储器组的ram中,使用数据循环矩阵替代h矩阵子矩阵的循环移位;移位结果按地址顺序输入到数据存储器组,数据存储器组中的2个ram的读入读出状态应当交替出现,当1个ram为读出状态时,表示其当前数据循环矩阵已准备完毕;另一个ram为读入状态时,其接收下一个数据向量的循环矩阵。

第二步,控制器产生h矩阵存储器ram读出地址,其输出向量接入数据存储器组中ram的地址位读出对应数据。其中,h矩阵子矩阵分向量应当满足:

每个向量的第个位置的值均为1;对的位置中值为1的向量不超过1个。

确定h矩阵的子矩阵后,h矩阵存储器的ram仅存储每个分向量为1的位置,即ram中每个地址描述一个分向量中1的位置。

h矩阵存储器的ram的输出产生数据存储器组ram的读取地址,相应的数据循环矩阵的输出向量可以表示为h矩阵子矩阵的分向量中的1循环移位次与数据向量对应bit计算的顺序输出。

第三步,数据运算器对于数据循环矩阵输出的异或运算应当接收个数据向量时,完成一次分向量运算。数据运算器将结果输出至结果运算器并归零。

第四步,控制器产生接收存储器读入地址,结果运算器使用个加法器对接收的数据在相应位置进行相加,当接收个数据向量时,所有分向量计算完成。

相加结果表示对应bit位置出错。反之时,表示对应bit位置正确。其中为h矩阵子矩阵所有分向量与数据向量异或和后的相加值。

根据相加结果及h矩阵事先存储的分向量判断出错bit位置,出错位置bit与1异或,未出错bit与0异或,数据修正完成,将修正数据向量输入接收存储器。

综上所述,本发明的eg-ldpc译码器使用存储h矩阵中1的位置代替h矩阵子矩阵;使用数据循环矩阵替代h矩阵分向量的循环移位;调用h矩阵存储器中个地址就可以完成译码,降低了存储占用资源,增加了译码效率。

以上详细描述的实施例仅用于说明本发明的具体实施方式,需要说明,上述描述的内容仅具有说明性而非限制,但是本领域技术人员应当理解,可以在形式和细节上对其作不同的改变,而不偏离发明权利要求书所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1