一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于信息截断的低复杂度多进制LDPC码译码器装置的制作方法

2021-11-03 12:51:00 来源:中国专利 TAG:

基于信息截断的低复杂度多进制ldpc码译码器装置
技术领域
1.本发明涉及数字通信差错数字编码领域,尤其涉及一种基于信息截断的低复杂度多进制ldpc码译码器装置。


背景技术:

2.作为数字通信系统中的关键一环,信道编码的作用是保护信息在信道上传输时免受噪声、失真和干扰的影响,为系统的可靠性提供保障。低密度奇偶校验(low

density parity

check,ldpc)码作为目前提出的性能最逼近shannon极限的信道编码方式,以其优异的纠错性能被广泛应用于5g移动通信和卫星通信等领域。定义在伽罗华域gf(q=2
p
)(p>1)的多进制ldpc码的纠错能力明显优于其对应二进制形式,但其译码算法的硬件实现复杂度较高,限制了其在实际场景中的应用。
3.多进制ldpc码的译码算法分为软判决译码算法和硬判决译码算法,这两种译码算法各有优缺点。软判决译码算法的优点是可以充分利用接收信号中的软信息,提供更多的可靠度,与硬判决译码算法相比有2db左右的译码增益,其缺点是译码复杂度较高,消耗更多的硬件资源,占用更多芯片面积。
4.主要的软判决译码算法有置信传播(belief propagation,bp)、基于快速傅里叶变换的bp(fast fourier transform belief fpropagation,fft

bp)、对数域的bp(logbp,log

bp)、扩展最小和(extended min

sum,ems)以及最小最大(min

max,mm)等译码算法,其中ems算法与mm算法被广泛采用到译码器的实现中。
5.davey和mackay首次对多进制ldpc码进行研究,并将二进制ldpc码中的bp译码算法推广至多进制ldpc码中进行译码,但是在gf(q)域上随着进制数q的增加,译码复杂度呈指数增加,直接导致bp译码算法不适于工程实现。因此,为进一步降低译码复杂度,一种基于快速傅里叶变换的置信传播译码算法通过对校验节点信息分量做fft运算进行简化。后续学者barnault、declercq和fossorie又对fft

bp译码算法进行解释与推广。songh等学者从降低乘法运算复杂度的角度考虑提出了对数域fft

bp算法,该算法将实数域的累乘运算转换为对数域上的加法及查表运算,能够大幅度降低译码复杂度,从而进一步提升译码速度以及资源的有效利用率。wymeersch等学者提出了bp算法的另一个方向的改进,将实数域的乘法运算转换为对数域的加法运算,即log

bp算法,此算法大大降低了硬件实现的复杂度,同时也降低数据量化对纠错性能的影响。2007年,declercq和fossorier等学者提出ems译码算法。ems算法为了减少译码过程中产生的复杂度,在校验节点更新的过程中只截取有限的信息值,并且确定适合的修正因数以提高编码增益。2008年,savin提出mm算法,该算法中通过使用最大化运算来近似校验节点更新单元中的求和运算。尽管ems和mm算法都降低实现的复杂性,但是cn单元中的前向后向(forward

backward,fb)计算过程限制了高速率多进制ldpc码的整体吞吐量。为避免使用fb计算,网格ems算法和网格mm算法的译码器,通过一个校验节点单元并行的生成d
c
个校验节点到变量节点的消息以提高译码吞吐量。
6.为提高吞吐量并减小占用面积,有两种主要的解决方案,第一种是减少软判决译
码的迭代次数,另一种是将硬决策解决方案应用于选择满足校验节点方程式的d
c
个候选符号,即使用硬判决译码算法。相比于软判决译码算法,硬判决译码算法具有计算复杂度低,消耗存储资源少等优点,但其译码性能不理想,因此硬判决译码算法适用于信道条件好,硬件实现复杂度低的通信系统。主要的硬判决译码算法主要有大数逻辑可译码算法(majority

logic decodable,mlgd)、广义比特翻转译码算法(generalized bit

flipping decodingalgorithm,gbfda)及其改进算法。与以前的基于bp的算法不同,这两种算法只需要在校验节点处理中对有限域元素进行简单的校验和计算即可,使得计算复杂度低,消耗存储资源少,因此硬判决译码算法要求硬件实现复杂度低的系统。
7.mlgd是由reed提出,后来由massey和rudolph进行了扩展。关于大数逻辑可译码代码的大多数研究工作都是以二进制形式完成的,很少是多进制形式的。因此基于迭代硬可靠性的mlgd和基于迭代软可靠性的mlgd被开发用来译码多进制ldpc码。在这些算法中,可靠性消息被合并到大数逻辑译码中,并通过迭代过程进行了改进。此外,对于所接收的符号,仅需要存储一组可靠性消息,并且从变量节点传递到所有连接的校验节点的消息是相同的。因此,可以大大减少存储消息所需的存储器。这些基于迭代可靠性的大数逻辑译码算法可以实现有效的复杂性与性能的折衷。gbfda将二进制ldpc码的比特翻转(bit flipping,bf)译码算法推广到多进制ldpc码。gbfda是一种适用于高速率码的译码方法,该算法定义了可靠性矩阵,对于速率高且列权重小的码,可实现更准确的解码并获得更好的纠错性能。基于比特翻转译码算法通过使用多比特翻转的并行化方法,其性能可逼近最小和译码算法。基于gbfda,研究者又提出增强串行广义比特翻转译码算法(enhanced serial gbfda,es

gbfda)并进行硬件实现。在译码过程中对数似然比(loglikelihood ratio,llr)的值可能会超过其量化比特数,因此,gbfda和es

gbfda均需要控制llr值增长的操作,例如裁剪操作,即当一个元素的大小大于其量化位数可表达的最大值时,将该元素所在的列减去一个常数。通过串行处理来实现的裁剪操作,每次迭代所需时钟周期数需乘上q,由此会产生造成较大延迟。通过并行处理来实现的裁剪操作,由于每个符号的裁剪信息必须与其他符号共享,会因此增加了路由拥塞。简化增强串行广义比特翻转译码算法(simplified es

gbfda,ses

gbfda)在初始化时将所有符号的llr值减去最可靠符号对应的llr值,避免了裁剪操作,并且不会对频率或延迟造成不利影响。es

gbfda对多进制ldpc码译码需存储校验节点更新得到的每个符号的次数,即“投票”数,用于计算变量节点的外信息,因此会消耗较多的存储资源。为降低存储需求ses

gbfda仅用一个比特来量化“投票”数,从而使存储量减少了45%,同时引入了0.05db的性能损失。另外,ses

gbfda算法对初始化软信息进行修改,避免了使用控制数据增长的技术,并且不会导致任何性能下降,减少了路由,增加了可达到的最大频率,并节省了逻辑。
8.发明人在实现本发明的过程中,发现现有多进制ldpc码译码器硬件架构存在以下缺点和不足:
9.多进制ldpc码译码器的实现需要考虑资源、速度和性能的折中,其译码性能受所选择的译码算法影响,译码算法不同,译码性能不同。软判决译码算法中bp、fft

bp译码算法的性能最好,但其缺点是译码复杂度较高,消耗更多的硬件资源,占用更多芯片面积。基于ses

gbfda的硬判决译码算法在有一定性能损失的情况下,降低了硬件复杂度,但对每个符号的处理仍需计算q个可能符号对应的对数似然值并进行比较,会消耗较多的硬件资源。


技术实现要素:

10.本发明提供了一种基于信息截断的低复杂度多进制ldpc码译码器装置,本发明针对多进制ldpc码译码算法实现复杂度较高的问题,基于简化增强串行广义比特翻转译码算法(ses

gbfda),提出将每个符号的对数似然值截断为有限值的截断ses

gbfda译码算法,进而有效减少存储需求和计算复杂度的译码算法,详见下文描述:
11.一种基于信息截断的低复杂度多进制ldpc码译码器装置,所述装置包括:
12.将每个译码符号的对数似然值由q个截断为t个,t<q,将截断后的对数似然值及对应域元素输入拼接单元进行拼接,并将所述拼接单元输出的拼接向量输入变量节点处理模块完成硬判决符号更新,校验矩阵存储单元存储校验矩阵中的非零元素及其逆元素;
13.校正子计算单元根据所述变量节点处理模块输出的硬判决符号和所述校验矩阵存储单元输出的校验矩阵非零元素计算校正子,所述校验节点更新模块根据所述变量节点处理模块输出的硬判决符号、所述校正子计算单元输出的校正子和所述校验矩阵存储单元输出的校验矩阵非零元素的逆元素计算并输出校验节点的投票符号,其中d
c
为校验节点的度。
14.其中,所述拼接单元包括:并串转换单元和两个串并转换单元;
15.位宽为q
b
×
t的对数似然值l
n
是第一串并转换单元的输入,所述第一串并转换单元输出t个位宽为q
b
的对数似然值[l
n,1
,l
n,2
,...,l
n,t
],位宽为p
×
t的域元素e
n
是第二串并转换单元的输入,所述第二串并转换单元输出t个位宽为p的域元素[e
n,1
,e
n,2
,...,e
n,t
],第一串并转换单元和第二串并转换单元的输出以及d
v
个0作为并串转换单元的输入,所述并串转换单元输出t个位宽为wid的消息矢量v
ni
=[l
n,i
,0...0,e
n,i
](1≤i≤t),并将其按照i=t,...,1的顺序拼接得到位宽为wid
×
t的向量v
n
={v
n,t
,v
n,t
‑1,...,v
n1
},其中,wid=q
b
d
v
p。
[0016]
进一步地,所述变量节点处理模块包括:二选一选择器、消息存储单元和变量节点更新单元;
[0017]
位宽为wid
×
t的消息矢量v
n
和所述变量节点更新单元的输出向量f
new
是所述二选一选择器的输入,当输入使能为高电平时,所述二选一选择器的输出为消息矢量v
n
,相反,所述二选一选择器的输出为所述变量节点更新单元的输出向量f
new
,所述二选一选择器的输出是所述消息存储单元的输入,所述消息存储单元输出的位宽为wid
×
t的向量f和所述校验节点更新单元输出的位宽为p的投票符号r
n
是所述变量节点更新单元的输入,所述变量节点更新单元输出位宽为p的变量节点符号q
n

[0018]
其中,所述消息存储单元包括p比特计数器和随机读写存储器;数值v作为所述p比特计数器的初始计数值,所述p比特计数器的计数值作为所述ram的读地址或写地址,所述ram的深度为q

1,宽度为wid
×
t,所述ram中存储t个域元素e
n,i
(1≤i≤t)对应的对数似然值w
n
(e
n,i
)、标志矩阵w
mn
(e
n,i
)以及域元素e
n,i
所构成的向量
[0019]
f
i
=[w
n
(e
n,i
),w
mn
(e
n,i
),e
n,i
],其中第i个ram的p比特计数器的初值v为校验矩阵第i列子矩阵中第一列非零元素的行索引,e
n,i
为第n个符号中第i可靠的域元素,w
n
表示变量节点n相关联的t元组,该元组中的元素为非负整数,并由gf(q)上的元素e
n,i
索引,索引为e
n,i
的分量表示变量节点n为域元素e
n,i
的可靠性度量,即w
n
(e
n,i
),w
mn
是标志矩阵,表示变量节点n相关联的t元组,其成分是0或1,并由gf(q)上的元素e
n,i
(1≤i≤t)索引,即w
mn
(e
n,i
)。
[0020]
其中,所述变量节点更新单元包括:串并转换单元、投票定位单元、t个基本更新单元、并串转换单元、比较网络单元;
[0021]
所述串并转换单元输出为t路向量f
i
(1≤i≤t),并行的每一路消息矢量f
i
(1≤i≤t)的[p

1:0]位即域元素e
n,i
(1≤i≤t),以及投票符号r
n
作为所述投票定位单元的输入,所述投票定位单元将符号r
n
与域元素e
n,i
(1≤i≤t)的值进行比较,来确定t个域元素的位置使能sym_sel
i
(1≤i≤t),分别作为所述t个基本更新单元中w
n
(e
n,i
)和w
mn
(e
n,i
)更新的使能,将消息矢量f
i
(1≤i≤t)的[q
b
d
v
p

1:p]位定义为u
i
=[w
n
(e
n,i
),w
mn
(e
n,i
)](1≤i≤t),作为所述基本更新单元的输入,t个基本更新单元输出u
i
更新后的向量u
inew
以及不同域元素e
n,i
(1≤i≤t)关联的外信息d
i
(1≤i≤t),并输出更新后的w
n
(e
n,i
)和w
mn
(e
n,i
),所述t个基本更新单元输出的外信息d
i
(1≤i≤t)是所述比较网络单元的输入,所述比较网络单元输出t个外信息中最大值对应的域元素q
n
,即当前节点的硬判决符号,向量u
inew
和域元素e
n,i
(1≤i≤t)作为所述并串转换单元的输入,所述并串转换单元输出更新的消息矢量f
new

[0022]
进一步地,所述基本更新单元包括:比较器、反向器、与门、有符号数加法器、四选一选择器、两个二选一选择器、投票更新单元、有符号数减法器、拼接单元;
[0023]
所述基本更新单元对外信息d
i
(1≤i≤t)的计算:假设变量节点的度d
v
=4,令w
mn
[0]、w
mn
[1]、w
mn
[2]、w
mn
[3]分别代表第1、2、3、4个校验节点是否对此符号进行投票,并将其作为所述四选一选择器的输入,变量节点使能d
v
_sel作为所述四选一选择器的使能端,当变量节点使能d
v
_sel为“00”、“01”、“10”和“11”时,所述四选一选择器分别选择w
mn
[0]、w
mn
[1]、w
mn
[2]、w
mn
[3]作为输出,所述四选一选择器的输出连接所述第一二选一选择器的使能端,先前迭代中收到的投票数β和0是所述第一二选一选择器的输入,当使能为高电平时所述第一二选一选择器输出β,当使能为低电平时所述第一二选一选择器输出0,所述第一二选一选择器的输出和w
n
(e
n,i
)作为所述有符号数减法器的输入,所述有符号数减法器输出符号e
n,i
(1≤i≤t)对应的位宽为q
b
1的外信息d
i
=w
n
(e
n,i
)

βw
mn
(e
n,i
)(1≤i≤t);
[0024]
所述基本更新单元对w
n
的更新:所述比较器的输入为w
n
(e
n,i
)和数值若所述比较器输出为高电平,否则输出为低电平,所述比较器的输出连接所述反相器,所述反向器的输出和位置使能sym_sel
i
是所述与门的输入,所述与门的输出连接所述第二二选一选择器的使能端,w
n
(e
n,i
)和数值1是所述有符号数加法器的输入,所述有符号数加法器的输出w
n
(e
n,i
) 1和w
n
(e
n,i
)是所述第二二选一选择器的输入,当所述与门输出为低电平时,所述第二二选一选择器的输出为w
n
(e
n,i
),当所述与门输出为高电平时,所述第二二选一选择器的输出为w
n
(e
n,i
) 1;
[0025]
所述基本更新单元对w
mn
的更新:使用所述投票更新单元对w
mn
进行更新,当变量节点使能d
v
_sel分别为“00”、“01”、“10”和“11”时,分别将w
mn
[0]、w
mn
[1]、w
mn
[2]、w
mn
[3]的值替换为sym_sel
i
的值;
[0026]
所述拼接单元将更新后的w
n
(e
n,i
)和w
mn
(e
n,i
)进行拼接得到向量u
inew

[0027]
其中,所述比较网络单元包含t

1个比较器以及t

1个二选一选择器;所述比较网络单元包含t个输入,每个输入的前q
b
1比特为外信息d
i
(1≤i≤t),后p比特为外信息对应的域元素e
n,i
,所述比较器的输入为所述比较网络单元的两个输入的前q
b
1比特,所述比较器的输出是所述二选一选择器使能端,所述二选一选择器选择较大一方的输入作为输出,所述比较网络单元通过多级比较后,最终选择所述比较网络单元的t个输入中最大外信息
对应的域元素作为输出,即硬判决符号q
n

[0028]
其中,所述校验矩阵存储单元用来存储校验矩阵中的非零元素以及非零元素的逆元素,所述校验矩阵存储单元包括地址生成器和只读存储器;所述地址生成器生成所述rom的读地址,所述rom的位宽为d
c
×
p,深度为2m,其中m为校验矩阵的行数,所述rom的偶数地址中存储校验矩阵中第i(1≤i≤m)行的非零元素,所述rom的奇数地址中存储校验矩阵中第i(1≤i≤m)行的非零元素的逆元素。
[0029]
进一步地,所述校正子计算单元包括d
c
个有限域乘法器和d
c

1个有限域加法器;所述d
c
个有限域乘法器的输入为d
c
个所述变量节点更新单元输出的判决符号和所述校验矩阵存储单元输出的校验矩阵中非零元素所述d
c
个有限域乘法器的输出通过d
c

1个有限域加法器进行累加得到校正子s。
[0030]
其中,所述校验节点更新模块包括d
c
个校验节点更新单元,所述校验节点更新单元包括有限域乘法器和有限域加法器;所述有限域乘法器的输入为校正子s和所述校验矩阵存储单元输出的校验矩阵中非零元素的逆元素所述有限域乘法器的输出和所述变量节点更新模块输出的硬判决符号q
n
是所述有限域加法器的输入,所述有限域加法器输出校验节点的投票符号r
n
,用来翻转下次迭代中变量节点的硬判决符号q
n

[0031]
本发明提供的技术方案的有益效果是:
[0032]
1、本发明针对多进制ldpc码译码器实现复杂度较高的问题,提出了面向简化增强串行广义比特翻转译码算法(ses

gbfda)的初始化信息截断的算法,从而有效降低复杂度;
[0033]
2、本发明基于所提出译码算法设计了低复杂度部分并行译码器的电路结构,对于定义在gf(32)上的多进制ldpc码,在将每个符号的对数似然信息截断为10的前提下,仅使用10个基本更新单元来处理变量节点消息的更新,显著降低了计算复杂度;
[0034]
3、本发明在fpga平台实现了设计的译码器架构,实现结果表明,与ses

gbfda的译码器相比,所提出截断ses

gbfda译码器的吞吐量达到90mbps,并且查找表和寄存器资源消耗分别减少了64.5%和76.3%,适用于吞吐量要求不高并且要求硬件实现复杂度低的通信系统中。
附图说明
[0035]
图1为译码器装置的结构示意图;
[0036]
图2为不同截断长度时算法的误比特率曲线图;
[0037]
图3为对数似然值量化为不同比特时的误比特率曲线图;
[0038]
图4为拼接单元的结构示意图;
[0039]
图5为消息存储单元的结构示意图;
[0040]
图6为ram存储单元的结构示意图;
[0041]
图7为变量节点更新单元的结构示意图;
[0042]
图8为基本更新单元的结构示意图;
[0043]
图9为比较网络单元的结构示意图;
[0044]
图10为校正子计算单元的结构示意图;
[0045]
图11为校验节点更新模块的结构示意图;
[0046]
图12为校验矩阵存储单元的结构示意图;
[0047]
图13为本发明提供的译码器分别在软件与硬件上实现的误比特率曲线图。
具体实施方式
[0048]
为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。
[0049]
本发明实施例针对定义在gf(32)上,码长为837个符号,码率为0.85,准循环校验矩阵h
124,837
校验节点度d
c
和变量节点度d
v
分别为27和4的多进制ldpc码,使用基于截断的简化增强串行广义比特翻转译码算法(ses

gbfda)进行迭代译码,最大译码迭代次数it
max
设置为10。本发明实施例在xilinx virtex

vi xc6vlx240t的fpga上实现。
[0050]
如图1所示,基于所提出截断的ses

gbfda译码算法,本发明实施例提出一种基于信息截断的低复杂度多进制ldpc码译码器装置,包括:拼接单元1、变量节点处理模块2、校正子计算单元3、校验节点更新模块4和校验矩阵存储单元5。本发明实施例针对有限域gf(32)上的多进制ldpc码,将每个译码符号的对数似然值由32个截断为t(t<32)个,然后将截断后的对数似然值及对应域元素输入拼接单元1进行拼接,并将拼接单元1输出的拼接向量输入变量节点处理模块2完成硬判决符号更新,校验矩阵存储单元5中存储校验矩阵中的非零元素及其逆元素,校正子计算单元3根据变量节点处理模块2输出的硬判决符号和校验矩阵存储单元6输出的校验矩阵非零元素计算校正子,校验节点更新模块4根据变量节点处理模块2输出的硬判决符号、校正子计算单元3输出的校正子和校验矩阵存储单元5输出的校验矩阵非零元素的逆元素计算并输出校验节点的投票符号,其中d
c
为校验节点的度,在本发明实施例中取27。
[0051]
为了确定译码装置输入的截断对数似然值的长度,本发明实施例首先仿真对数似然值截断为不同长度后进行译码的比特错误率(bit error rate,ber),仿真结果如图2所示。由图2可知,当截断长度为20时,译码性能基本无性能损失;当截断长度为16时,在ber为10
‑6处,有0.05db的性能损失;当截断长度为10时,在ber为10
‑6处开始有误码平台;当截断长度为7时,性能损失很大且较早的出现误码平台问题。图3为将对数似然值截断为10并量化为不同比特时的ber,在ber为10
‑5时,将对数似然值截断为10并量化为6比特与未截断未量化相比,ber性能损失约为0.2db,并且量化为5比特与6比特时两者的ber性能差距不大。经过分析,在译码器的实现中对数似然值截断长度t为10,量化比特数q
b
为5。
[0052]
如图4所示,拼接单元1包括:第一串并转换单元10、第二串并转换单元11和并串转换单元12;位宽为q
b
×
t的对数似然值l
n
是串并转换单元10的输入,第一串并转换单元10输出t个位宽为q
b
的对数似然值[l
n,1
,l
n,2
,...,l
n,t
],位宽为p
×
t的域元素e
n
是第二串并转换单元11的输入,第二串并转换单元11输出t个位宽为p的域元素[e
n,1
,e
n,2
,...,e
n,t
],第一串并转换单元10和第二串并转换单元11的输出以及d
v
个0作为并串转换单元12的输入,并串转换单元12输出t个位宽为wid的消息矢量v
ni
=[l
n,i
,0...0,e
n,i
](1≤i≤t),
[0053]
并将其按照i=t,...,1的顺序拼接得到位宽为wid
×
t的向量v
n
={v
n,t
,v
n,t
‑1,...,v
n1
},其中,wid=q
b
d
v
p,多进制ldpc码定义在伽罗华域gf(q=2
p
),d
v
为变量节点的度,q
b
为将对数似然值量化的位数,t为将多进制ldpc码码字中每个符号对应的q个对数似然值进行截断后的数目。
[0054]
如图1所示,变量节点处理模块2包括:二选一选择器20、消息存储单元21和变量节点更新单元22;位宽为wid
×
t的消息矢量v
n
和变量节点更新单元22的输出向量f
new
是二选一选择器20的输入,当对数似然值输入使能为高电平时,二选一选择器20的输出为消息矢量v
n
,当对数似然值输入使能为低电平时,二选一选择器20的输出为变量节点更新单元22的输出向量f
new
,二选一选择器20的输出是消息存储单元21的输入,消息存储单元21输出的位宽为wid
×
t的向量f和校验节点更新单元输出的位宽为p的投票符号r
n
是变量节点更新单元22的输入,变量节点更新单元22输出的位宽为p的变量节点符号q
n
作为变量节点处理模块2的输出,其中f
new
为变量节点更新单元22对消息存储单元21输出的消息向量f更新后的消息向量。
[0055]
如图5所示,消息存储单元21用来存储译码过程中多进制ldpc码n个符号的对数似然值w
n
、标志矩阵w
mn
以及域元素e
n
,包括:p比特计数器210和随机读写存储器(ram)211;数值v作为p比特计数器210的初始计数值,p比特计数器的计数值作为ram的读地址或写地址,ram的深度为q

1,宽度为wid
×
t,ram中存储内容为t个域元素e
n,i
(1≤i≤t)对应的对数似然值w
n
(e
n,i
)、标志矩阵w
mn
(e
n,i
)以及域元素e
n,i
所构成的向量f
i
=[w
n
(e
n,i
),w
mn
(e
n,i
),e
n,i
],其中第i个ram的p比特计数器的初值v为校验矩阵第i列子矩阵中第一列非零元素的行索引,e
n,i
为第n个符号中第i可靠的域元素,w
n
表示变量节点n相关联的t元组,该元组中的元素为非负整数,并由gf(q)上的元素e
n,i
索引,索引为e
n,i
的分量表示变量节点n为域元素e
n,i
的可靠性度量,即w
n
(e
n,i
),w
mn
是标志矩阵,表示变量节点n相关联的t元组,其成分是0或1,并由gf(q)上的元素e
n,i
(1≤i≤t)索引,即w
mn
(e
n,i
)。图6展示了第一个消息存储单元的ram中存储内容分布,e
1,1
为第1个符号中最可靠的域元素,w
n
(e
1,1
)为域元素e
1,1
对应的对数似然值,w
mn
(e
1,1
)为域元素e
1,1
对应的投票标志矩阵;e
n,i
为第n个符号中第i可靠的域元素,w
n
(e
n,i
)为e
n,i
对应的对数似然值,w
mn
(e
n,i
)为域元素e
n,i
对应的投票标志矩阵。则d
c
个ram所需存储的总比特数为wid
×
t
×
(q

1)
×
d
c

[0056]
如图7所示,变量节点更新单元22包括:串并转换单元220、投票定位单元221、t个基本更新单元222、并串转换单元223、比较网络单元224;消息存储单元21输出的位宽为wid
×
t的向量f作为串并转换单元220的输入,串并转换单元220输出为t路向量f
i
(1≤i≤t),并行的每一路消息矢量f
i
(1≤i≤t)的[p

1:0]位即域元素e
n,i
(1≤i≤t),以及投票符号r
n
作为投票定位单元221的输入,投票定位单元221将符号r
n
与域元素e
n,i
(1≤i≤t)的值进行比较,来确定t个域元素的位置使能sym_sel
i
(1≤i≤t),分别作为t个基本更新单元222中w
n
(e
n,i
)和w
mn
(e
n,i
)更新的使能,将消息矢量f
i
(1≤i≤t)的[q
b
d
v
p

1:p]位定义为u
i
=[w
n
(e
n,i
),w
mn
(e
n,i
)](1≤i≤t),作为基本更新单元222的输入,t个基本更新单元222输出u
i
更新后的向量u
inew
以及不同域元素e
n,i
(1≤i≤t)关联的外信息d
i
(1≤i≤t),并输出更新后的w
n
(e
n,i
)和w
mn
(e
n,i
),t个基本更新单元222输出的外信息d
i
(1≤i≤t)是比较网络单元224的输入,比较网络单元224输出t个外信息中最大值对应的域元素q
n
,即当前节点的硬判决符号,向量u
inew
和域元素e
n,i
(1≤i≤t)作为并串转换单元223的输入,并串转换单元223输出更新的消息矢量f
new

[0057]
如图8所示,基本更新单元222包括:比较器2220、反向器2221、与门2222、有符号数加法器2223、二选一选择器2224、二选一选择器2225、四选一选择器2226、投票更新单元2227、有符号数减法器2228、拼接单元2229;
[0058]
基本更新单元222对外信息d
i
(1≤i≤t)的计算:假设变量节点的度d
v
=4,令w
mn
[0]、w
mn
[1]、w
mn
[2]、w
mn
[3]分别代表第1、2、3、4个校验节点是否对此符号进行投票,并将其作为四选一选择器2226的输入,变量节点使能d
v
_sel作为四选一选择器2226的使能端,当变量节点使能d
v
_sel为“00”、“01”、“10”和“11”时,四选一选择器2226分别选择w
mn
[0]、w
mn
[1]、w
mn
[2]、w
mn
[3]作为输出,四选一选择器2226的输出连接二选一选择器2225的使能端,先前迭代中收到的投票数β和0是二选一选择器2225的输入,当使能为高电平时二选一选择器2225输出β,当使能为低电平时所述二选一选择器2225输出0,二选一选择器2225的输出和w
n
(e
n,i
)作为有符号数减法器2228的输入,有符号数减法器2228输出符号e
n,i
(1≤i≤t)对应的位宽为q
b
1的外信息d
i
=w
n
(e
n,i
)

βw
mn
(e
n,i
)(1≤i≤t);
[0059]
基本更新单元222对w
n
的更新:比较器2220的输入为w
n
(e
n,i
)和数值若比较器2220输出为高电平,否则输出为低电平,比较器2220的输出连接反相器2221,反向器2221的输出和位置使能sym_sel
i
是与门2222的输入,与门2222的输出连接二选一选择器2224的使能端,w
n
(e
n,i
)和数值1是有符号数加法器2223的输入,有符号数加法器2223的输出w
n
(e
n,i
) 1和w
n
(e
n,i
)是二选一选择器2224的输入,当与门2222输出为低电平时,二选一选择器2224的输出为w
n
(e
n,i
),当与门2222输出为高电平时,二选一选择器2224的输出为w
n
(e
n,i
) 1;
[0060]
基本更新单元222对w
mn
的更新:使用投票更新单元2227对w
mn
进行更新,当变量节点使能d
v
_sel分别为“00”、“01”、“10”和“11”时,分别将w
mn
[0]、w
mn
[1]、w
mn
[2]、w
mn
[3]的值替换为sym_sel
i
的值;
[0061]
拼接单元2229将更新后的w
n
(e
n,i
)和w
mn
(e
n,i
)进行拼接得到向量u
inew

[0062]
比较网络单元224包含t

1个比较器以及t

1个二选一选择器;比较网络单元224包含t个输入,每个输入的前q
b
1比特为外信息d
i
(1≤i≤t),后p比特为外信息对应的域元素e
n,i
,比较器的输入为比较网络单元的两个输入的前q
b
1比特,比较器的输出是二选一选择器使能端,二选一选择器选择较大一方的输入作为输出,比较网络单元通过多级比较后,最终选择比较网络单元224的t个输入中外信息最大值对应的域元素作为输出,即硬判决符号q
n

[0063]
图9为对7个域元素进行比较的比较网络单元的电路结构,其中选择量化比特数为q
b
=5,有限域p=5,则比较网络单元的位宽为q
b
p 1=11,输入的前q
b
1=6位是后p=5位所代表符号的对数似然值。所设计的比较网络单元将7个输入分为三级比较,包括6个二输入选择器和6个比较器,其功能是对7个值进行比较,并输出最大值以及最大值对应的域元素。图中每个输入的前六位为一个域元素对应的外信息w
n
(e
n,i
)

βw
mn
(e
n,i
),后五位为其对应的域元素e
n,i

[0064]
校验矩阵存储单元5用来存储校验矩阵中的非零元素以及非零元素的逆元素,对于随机的校验矩阵,不仅需要存储矩阵中的所有非零元素,还需要存储矩阵中的所有非零元素所在的位置。随机的校验矩阵比规则的校验矩阵所构造的多进制ldpc码的译码性能更好,但存储随机校验矩阵中非零元素的位置会消耗较多的存储资源,因此本发明实施例采用准循环校验矩阵。校验矩阵存储单元包括:地址生成器和只读存储器(rom),如图10所示,rom的位宽为d
c
×
p,深度为2m,其中m为校验矩阵的行数,分别代表校验矩阵h
m
×
n
的第m行中第1,

,d
c
个非零元素,分别代表校验矩阵h
m
×
n
的第m行中第1,

,d
c
个非零元素的逆元素。rom的偶数地址中存储校验矩阵中第i(1≤i≤m)行的非零元素,rom的奇数地址中存储校验矩阵中第i(1≤i≤m)行的非零元素的逆元素,由于本发明实施例中选择准循环校验矩阵h
124,837
,因此m为124,n为837。
[0065]
如图11所示,校正子计算单元3包括:d
c
个有限域乘法器和d
c

1个有限域加法器,d
c
个有限域乘法器的输入为d
c
个变量节点更新单元输出的判决符号和校验矩阵存储单元输出的校验矩阵中非零元素d
c
个有限域乘法器的输出通过d
c

1个有限域加法器进行累加得到校正子s,若某一行的s=0,说明该行的译码结果正确;否则,若某一行的校正子s≠0,说明该行的译码结果不正确。
[0066]
如图12所示,校验节点更新模块4块包括:d
c
个校验节点更新单元,校验节点更新单元包括:有限域乘法器和有限域加法器,有限域乘法器的输入为校正子s和校验矩阵存储单元输出的校验矩阵中非零元素的逆元素有限域乘法器的输出和所述变量节点更新模块输出的硬判决符号q
n
连接有限域加法器,有限域加法器输出校验节点的投票符号r
n
,当校正子s=0时,校验节点更新单元根据该校正子计算投票符号r
n
=q
n
;当s≠0时,校验节点更新单元根据该校正子计算得到投票符号r
n
≠q
n
用来翻转变量节点硬判决符号q
n

[0067]
表1统计了译码器译码过程所消耗的时钟周期数,其中n为多进制ldpc码码字符号长度,m为校验矩阵的行数,it
max
为译码的最大迭代次数,q为伽罗华域的大小。由于初始化过程是将向量v
n
存储在消息存储单元中,设定为每个时钟周期输入1个符号的相关消息,则初始化过程需要n个时钟周期。迭代更新过程按照校验矩阵的行来进行,并且插入了流水线寄存器,在设计的译码器架构中,变量节点处理模块以及校验模块更新单元的一次更新消耗5个时钟周期,则译码迭代过程需it
max
×
m
×
5个时钟周期。为充分利用资源在译码判决过程中直接利用变量节点处理模块来完成,此时译码判决是d
c
路并行执行,因此所消耗的时钟周期数是块循环矩阵的大小q

1再加上两个延迟(消息存储单元的输出延迟和流水线寄存器),即为q 1个时钟周期。
[0068]
表1译码过程所需的时钟周期数
[0069][0070]
经过统计得到译码器在fpga上实现的误比特率(ber)曲线如图13所示。在ber=10
‑4处,硬件性能仿真比软件浮点仿真差0.25db。造成这种差距的主要原因是定点运算的精度损失以及对软信息的截断处理。
[0071]
表2统计了使用es

gbfda、ses

gbfda和t

ses

gbfda等译码算法实现译码器的综合结果,表中多进制ldpc码的码长和码率相似,因此它们之间的资源可以进行比较。由于本发明实施例提出的t

ses

gnfda算法是基于es

gbfda和ses

gbfda译码算法进行的改进,因此对这三种译码器消耗的硬件资源与达到的吞吐量进行了比较。与es

gbfda译码器相比本
发明实施例所实现的译码器查找表和寄存器资源分别减少了82%和79.3%,但是吞吐量仅是其20.5%。与ses

gbfda译码器相比本发明实施例所实现的译码器查找表和寄存器资源分别减少了64.5%和76.3%,但是吞吐量仅是其12.6%。使用分布式ram存储中间消息的译码器装置,减少了读出中间消息的延时,使吞吐量有较大的提高,但是消耗了较多的查找表,本发明使用block ram来存储中间消息,显著降低了查找表的消耗,但是block ram有读出时延,因此吞吐量较低。吞吐量的计算方法如式(1)所示,其中th表示译码器的吞吐量(单位为mbps),n代表一个ldpc码码字的符号数,p为伽罗华域gf(2
p
)中2的阶次,f为译码器可以达到的最大频率(单位为mhz),
c
l
ed
代表一个码字译码结束所需消耗的时钟周期数。
[0072][0073]
表2多进制ldpc译码器综合结果
[0074][0075]
针对多进制ldpc码译码器实现复杂度较高的问题,提出了面向ses

gbfda算法的初始化信息截断的t

ses

gbfda算法,从而有效降低复杂度。进一步,基于所提出译码算法设计了低复杂度部分并行译码器的电路结构。对于定义在gf(32)上的多进制ldpc码,仅使用10个基本更新单元来处理变量节点消息的更新,显著降低了计算复杂度。在fpga平台实现了设计的译码器架构,实现结果表明,与未进行对数似然值截断的译码器相比,所提出译码器的吞吐量达到90mbps,并且查找表和寄存器资源消耗分别减少了64.5%和76.3%,适用于吞吐量要求不高并且要求硬件实现复杂度低的通信系统中。所提出的译码器在译码性能损失较小的情况下,在性能与复杂度之间实现了良好折中。
[0076]
本发明实施例对各器件的型号除做特殊说明的以外,其他器件的型号不做限制,只要能完成上述功能的器件均可。
[0077]
本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例
序号仅仅为了描述,不代表实施例的优劣。
[0078]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献