低密度奇偶校验码的译码方法及其校验节点更新电路
技术领域
本发明涉及数字通信系统用于数据传输纠错的译码器和方法,特别是涉及数字通信领域纠错技术中的低密度奇偶校验码的译码的节点更新运算方法及电路。
背景技术
所有的数字通信系统如通信、雷达、遥控遥测、数字计算机的存储系统和内部运算以及计算机之间的数据传输等都可以归结为如图1所示的模型,其中各部分的主要功能如下:
信源编码器对信源作处理以提高传输的有效性,信道编码器是为了抗击传输过程中各种各样的噪声和干扰,通过人为地增加冗余信息,使得系统具有自动纠正差错的能力,从而保证数字传输的可靠性。M调制器是对信道编码输出的串行二进制比特流按特定数量分段并做符号映射。信道是指传输链路,包括有线与无线。解码器做符号解映射并合并成串行的二进制比特流,信道解码器与信道编码器相对应,主要为了输入数据中提取出正确的信息比特。信源编码器相对信源编码器是一个逆过程,为了还原信源数据。
低密度奇偶校验码是一类可以用于非常稀疏的奇偶校验矩阵或者二分图定义的线性分组码,最初由Gallager发现,所以称为Gallager码。经过数十年的沉寂,随着计算机硬件和相关理论的发展,MacKay和.Neal重新发现了它,并证明了它具有逼近香农限的性能。最新研究表明,低密奇偶校验码具有以下特点:低译码复杂度,可线性时间编码,具有逼近香农限的性能,可并行译码,性能上优于或者等于Turbo码,复杂度远低于Turbo码。
LDPC码是一种基于稀疏校验矩阵的线性分组码,正是利用它的校验矩阵的稀疏性,才能实现低复杂度的编译码,从而使得LDPC码走向实用化。前面提到的Gallager码是一种正则的LDPC码(regular ldpcc),而Luby和Mitzenmacher等人对Gallager码进行了推广,提出非正则的LDPC码(irregularldpcc)。LDPC码的具有很多译码算法,主要有基于编码二分图结构的信息传递算法(Message Passing algorithm),M.Fossorier et al.提出的BP算法的简化算法-BP-Based算法和APP-based算法,及Jinghu Chen和M.Fossorier在此基础上提出的两种改进的BP-Based算法,还有Max-Log_MAP算法,有记忆衰落信道中BP译码和信道状态估计联合算法等等。其中,信息传递算法(或者BP算法)是LDPC码的主流和基础算法,很多算法都是基于此算法的改进。
对数域的BP算法(Sum Product)形式一
若编码的校验矩阵为H,将参与第m个校验的变量节点集合记为N(m)={n:Hmn=1}。类似的,将第n个变量节点参与的校验的集合记为M(n)={m:Hmn=1}。N(m)\n为N(m)与第n个比特的差集。算法中有两个交替执行的部分,与校验矩阵中非零元相关的数值qmn和rmn在算法的迭代中逐次更新。数值qmn x是指在已知除第m个校验节点外其它所有校验节点的消息时,x的第n个变量节点取值为x的概率(x为发送的码字)。数值rmn x是指在已知x的第n变量节点值为x,其它变量节点满足概率分布{qmn′:n′∈N(m)\n}时第m个校验节点得到满足的概率。如果矩阵H所对应的二分图没有环,在经过一定次数的迭代后,该算法将给出每一变量节点取值的精确后验概率。
如果将BP算法转换到对数域上进行,可以极大的减少乘法运算的次数,适合于实际应用。此时,译码消息看成是对码字中的信息比特的估计,包括符号(sign)和可信度(reliability)两部分:
①消息的符号,表示对信道中传输的信息比特的估计:是(-)还是(+);
②消息的绝对值,即可信度,表示该消息对信息比特估计的可靠程度;
③消息集中的0表示可抹符号(erasure),表示信息比特取(+1)或(-1)的概率相等。
Lmn表示从校验节点m发往比特节点n的边信息(extrinsic information),Zmn表示从比特节点n发往校验节点m的信息,LLRn表示第n个码字比特的对数似然比。
该译码算法过程如下:
a)初始化:
for n=0,...,N-1
for m∈M(n)
b)校验节点更新
for m=0,...,M-1 10
for n∈N(m)
c)变量节点更新
for,n=0,...,N-1
for m∈M(n)
可以得到码字的对数似然比:
for n=0,...,N-1
d)然后对码字对数似然比LLR(qn)进行硬判决生成试验译码结果
用 来判断译码算法能否结束。若译码成功,则译码结束,输出码字;否则重复b)和c),继续迭代。若迭代次数少于某预先设定的最大值,则重复上述算法步骤。若迭代次数达到预先设定的最大值,译码过程仍未结束,则宣告译码失败。
其中,k为译码迭代次数,L为零时刻输入译码器的初始消息,对BIAWGN(二进制输入、高斯加性白噪声-Binary Input Additive WhiteGaussian Noise)信道而言,yn为信F道输出,σ2为噪声方差。
对数域的BP算法(Sum Product)形式二
可以将b)和c)进行合并,消掉Lmn,得到如下等同的对数域形式:
a)初始化:同上
b)节点更新
for m=0,...,M-1
for n∈N(m)
c)计算码字的对数似然比:
for n=0,...,N-1
d)判决检测,内容同上。
最小和算法(Min-Sum)
对于对数域译码,校验节点更新需要进行非线性运算,所以复杂度比较高,此时可以对步骤b)进行近似处理,译码运算只需要加法和比较运算。
对于具有形式一的数域译码算法步骤b)进行近似处理,得到如下公式:
对于具有形式二的对数域译码算法步骤b)的近似,仅需用LLRn (k-1)-Lmn′ (k-1)代替上述Vmn′,sign(·)表示符号运算。以图4或图6为例,其下方与门电路的组合即为实现该运算的电路。
边信息加权衰减因子的最小和算法(Min-Sum+Scale factor)
最小和算法估计出来的Lmn是偏大的,为了取得更准确的结果,可以对行更新的结果乘一个小于1的常数α,所以:
其中常数α和LDPC码的校验矩阵H的行重量有关系,可能取值为0.6~0.9,确切的数值要通过仿真来确定,这里我们推荐0.75。
匹配行重量的最小和算法(Row weight matched Min-Sum)
这种算法也是修正的最小和算法,但是可以达到和积算法的性能,公式如下:
如果|Vmn′|≥3 ln(dc-1)/8
否则
dc为m行的行重量。
在这里,我们介绍了若干种适合硬件实现的低密度奇偶校验码译码算法。对于对数域的BP算法,非线性运算是主要复杂度,可以用查找表来实现;对于最小和算法,比较/选择是主要的运算,复杂虽然很低,但是性能比和积算法差0.5dB左右;对于加权边信息的最小和算法,由于边信息需要加权小于1的常数α,复杂度还是明显高于最小和算法,但是性能与对数域的BP算法类似;对于匹配行重量的最小和算法,由于只需要比较/选择和求和运算,实际上复杂度与和积算法类似,这种算法具有最好的使用前景。
最小和算法的实现方法
对于最小和算法:
计算第m行所有
将包括下述两种方法,其中Smn表示第m行中排除|Vmn|后所有输入绝对值的最小值:
一种是基于最小值和第二小值的方法。假设本实施例各行的行重量相等,均为dc,则该行校验节点更新运算有dcm路输入,用Vmn表示第m行第n路输入,n∈{1,2,…,dcm},并且为第一路输入设置一个唯一的索引,用于标识该路输入,这里直接用n作为该索引,当然也可以采用其它的标识方式,该方法步骤如下:
a)对第m行所有输入数值的绝对值|Vmn|,求出最小值Sm以及该最小值对应输入的索引IDXm′;
b)对第m行排除最小值Sm后所有其它|Vmn|求最小,得到所有|Vmn|中的第二小值Sm′;
c)对于每一路输入,如果其索引n=IDXm′,则对应的输出Smn为第二小值Sm′;如果n≠IDXm′,则对应的输出Smn为最小值Sm。
此时仅仅需要大约2·dcm-3个求最小值的运算,此时行更新计算的延迟是O(2·logdc)。
另一种是直接法
对于任意n∈{1,2,…,dcm},求第m行中排除|Vmn|后所有输入的最小值,即可得Smn。根据上述表述,假设奇偶校验矩阵中,第m行的行重量是dcm,如果按照定义来计算,则需要dcm·(dcm-1)求最小运算,复杂度很高,故不会在实际中应用。
一种可行的校验节点更新是采用网状拓扑(net topology),其特征是尽可能共享已有的最小运算的结果,此时仅仅需要大约2·dc个求最小值的运算,此时行更新计算的延迟是O(log dcm)。
图2给出了一个行重量为4、具有网状拓扑的行更新电路图的基本单元,图3给出了一个行重量为6、具有网状拓扑的行更新电路图的基本单元。其中Vm1、Vm2、Vm3、Vm4、Vm5、Vm6为输入,Um1′、Um2′、Um3′、Um4′、Um5′、Um6′为输出,Umn′为排除了|Vmm|后所有其它输入的最小值,即Smn。ABS单元为求输入绝对值的电路,MIN为求两输入最小值的电路。
以图2为例,该部分电路具有两级MIN,第一级包括2个MIN,第二级包括4个MIN,分析输出为Um1′的第二级MIN,一个输入来自于输入为|Vm3|、|Vm4|的第一级MIN的输出,另一个输入为|Vm2|,这样Um1′为排除了输入|Vm1|外所有其它输入|Vm2|、|Vm3|、|Vm4|中的最小值,其它各路输出与此相似,不再赘述。
对于图3中具有6个输入的电路来说,则具有三级MIN,第一级MIN的输出为2个输入中的最小值,第二级MIN输入为2个第一级MIN的输出,因此其输出为4个输入中的最小值,第三级的每一个MIN输入为一个第二级MIN输入和一个ABS输出,因此可得到5个输入的最小值。
实际上,对于最小和算法,采用网状拓扑的直接法是实现行更新的最佳途径,此时延迟和复杂度都是接近最低。
边信息加权衰减因子的最小和算法的实现
对于加权最小和算法:
计算第m行所有
即求:
将包括下述两种方法:
一种是基于最小值和第二小值的方法,最小值和第二小值的计算和上述最小和算法中基于最小值和第二小值的实现方法的前两步相同,第三步如下:
c)对于每一路输入,如果其索引n=IDXm ′,则对应的输出Smn α为第二小值Sm′乘以α;如果n≠IDXm′,则对应的输出Smn α为最小值Sm乘以α。
此时仅仅需要大约2·dcm-3个求最小值的运算和2个乘法运算,此时行更新计算的延迟是O(2·log dcm+1)。
另一种是直接法
对于任意n∈{1,2,…,dcm},求第m行中排除|Vmn|后所有输入的最小值,将得到最小值再乘以α,即可得Smn α。根据上述表述,假设奇偶校验矩阵中,第m行的行重量是dcm,如果按照定义来计算,则需要dcm·(dcm-1)求最小值运算和dcm个乘法运算,复杂度很高,故不会在实际中应用。
一种可行的校验节点更新是采用网状拓扑(net topology),其特征是尽可能共享已有的最小运算的结果,此时仅仅需要大约2·dcm个求最小值的运算和dc个乘法运算,此时行更新计算的延迟是O(log dcm+1)。
图4给出了一个基本的行重量为4、具有网状拓扑的行更新电路图,图5给出了一个基本的行重量为6、具有网状拓扑的行更新电路图。其内部走线也可以稍有不同。其中基本单元BASEUNIT(4)和基本单元BASE UNIT(6)分别采用图2和图3中的电路。
图中SF为加权衰减因子α,S/M(Split/Merge Unit)为比特拆分/合并单元。Vm1、Vm2、Vm3、Vm4、Vm5、Vm6为带有符号信息的输入信号,Um1、Um2、Um3、Um4、Um5、Um6为行更新电路的最终输出,即Lmn,DF和基本单元电路的每一路输出Umn′分别送入一乘法器,完成乘法运算后输出到一比特拆分/合并单元(S/M),n=1,2,…dcm。图下方由多个与门连接而成的电路为做符号运算的电路,即求取:
实际上,比较基于最小值和第二小值的方法和采用网状拓扑的直接法,我们会发现它们有各自明显的优缺点。第一种方法乘法运算比第二种方法少了很多,但是延迟是第二种方法的两倍。
匹配行重量的最小和算法的实现
对于匹配行重量的最小和算法:
如果:|Vmn′|≥3 ln(dcm-1)/8则:
否则:λmn=0
需要求:
计算第m行所有Smn α包括下述两种方法:
一种基于最小值和第二小值的方法,本方法中最小值和第二小值的计算和上述最小和算法中基于最小值和第二小值的实现方法的前两步相同,第三步如下:
c)当某一路输入的索引n=IDX
m′时,如第二小值S
m′大于3ln(d
cm-1)/8,则对应的输出S
mn α等于第二小值S
m′减去
否则S
mn α等于该第二小值S
m′;
当某一路输入的索引n≠IDX
m′时,如最小值S
m大于3ln(d
cm-1)/8,则对应对应的输出S
mn α等于最小值S
m减去
否则S
mn α等于该最小值S
m;
此时仅仅需要大约2·dcm-3个求最小值的运算,2个比较/选择运算和至多两个减法运算,此时行更新计算的延迟是O(2·logdcm+2)。
另一种是直接法
对于任意n∈{1,2,…,d
cm},求第m行中排除|V
mn|后所有其它输入数值的绝对值的最小值S
mn′,将此最小值与3ln(d
cm-1)/8比较,若大于则将此最小值S
mn减去
若小于则此最小值S
mn不变,计算结果就是S
mn α。根据上述表述,假设奇偶校验矩阵中,第m行的行重量是d
cm,如果按照定义来计算,则需要d
cm·(d
cm-1)求最小值运算,d
cm个比较/选择运算和至多d
cm个减法运算,复杂度很高,故不会在实际中应用。
一种可行的校验节点更新是采用网状拓扑(net topology),其特征是尽可能共享已有的最小运算的结果,此时仅仅需要大约2·dcm个求最小值的运算,dcm个比较/选择运算和至多dcm个减法运算,此时行更新计算的延迟是O(log dc+2)。
图6给出了一个行重量为4、具有网状拓扑的行更新电路图,图7给出了一个行重量为6、具有网状拓扑的行更新电路图。其中基本单元电路BASEUNIT(4)和BASE UNIT(6)分别采用图2和图3中的电路。图下方的电路为做符号运算的电路,即求取:
图中Vm1、Vm2、Vm3、Vm4、Vm5、Vm6为带有符号信息的输入,Um1、Um2、Um3、Um4、Um5、Um6为行更新电路的最终输出,比较和减法运算单元C/S用于比较CON和输出Umn′(即Smn),如输出大于CON,则将其减去DF后输出到S/M。
CON=3ln(dcm-1)/8;
实际上,比较基于最小值和第二小值的方法和采用网状拓扑的直接法,我们会发现它们有各自明显的优缺点。第一种方法比较/选择运算比第二种方法少了很多但是延迟接近第二种方法的两倍。
需要加以说明的是,如果译码采用的低密度奇偶校验码校验矩阵各行的行重量不同,上述实施方法或电路中,只要用第m行的行重量dcm代替式中的dc即可。
从上面分析可以看出,由于最小和算法的性能比最优算法差了0.5dB左右,所以改进的最小和算法将被应用于实际系统,这里改进的最小和算法包括边信息加权衰减因子的最小和算法和匹配行重量的最小和算法。这两种算法都有两种实现方法,即直接法和基于最小值和第二小值的实现方法。比较两种实现方法,直接法复杂度低但是延迟大,而基于最小值和第二小值的实现方法是延迟小但是复杂度高。还需要进一步的改进。
发明内容
本发明要解决的技术问题是提供一种低密度奇偶校验码的译码方法,使得校验节点更新运算的延迟小,且复杂度低。
为了解决上述技术问题,本发明提供了一种:一种低密度奇偶校验码的译码方法,用于对接收的编码信号进行译码,输出码字,其中的校验节点更新运算包括M个行更新运算,M为奇偶校验矩阵的行数,其特征在于,所述行更新运算的方法如下:
设Vmn为第m行的第n路输入,n∈{1,2,…,dcm},dcm为第m行的行重量,该输入中包括数值、符号位和标识该路输入的索引,该行更新运算采用最小和算法的修正算法,即有:
其中,Lmn为第m行第n个节点输出的边信息,Smn α为Smn的修正值,Smn为与第n路输入对应的第m行中除|Vmn|外所有其它输入数值的绝对值的最小值,即
第m行的行更运算方法步骤如下:
(a)对于任意n∈{1,2,…,dcm},先对输入Vmn的数值求绝对值,然后求Smn′,同时,求出第m行所有输入数值的绝对值的最小值Sm及该路输入的索引IDXm′,即
(b)对IDXm′进行译码得到dcm个与输入Vmn一一对应的译码信号Yn,其中只有n=IDXm′的那一路译码信号有效,利用译码信号Yn从dcm个Smn中选出n=IDXm′的那一路输入对应的Smn,即为所有输入数值的绝对值的第二小值Sm′;
(c)计算出Smf和Sms,其中Smf为第二小值Sm′的修正值,Sms为最小值Sm的修正值;
(d)当译码信号Yn有效时,以Smf为第n路输入对应的Smn α,否则以Sms为第n路输入对应的Smn α。
(e)将Smn α与第n路输入的符号运算结果合并,n∈{1,2,…,dcm},得到行更新后的dcm个边信息Lmn。
进一步地,上述译码方法还可具有以下特点:所述行更新运算采用边信息加权衰减因子的最小和算法,即
α为加权衰减因子,所述步骤(c)中,是将第二小值Sm′乘以α得到所述Smf,将最小值Sm乘以α得到所述Sms
进一步地,上述译码方法还可具有以下特点:所述行更新运算采用匹配行重量的最小和算法,即:
如|Vmn′|≥3ln(dcm-1)/8则:
否则λmn=0,所述步骤(c)中:
当S
m′大于3ln(d
mc-1)/8时,S
mf等于S
m′减去
否则,S
mf等于S
m′;
当S
m大于3ln(d
cm-1)/8时,S
ms等于S
m减去
否则,S
ms等于S
m。
进一步地,上述译码方法还可具有以下特点:所述步骤(a)中计算Smn时,是采用多级的两输入求最小值电路MIN实现的,在计算最小值Sm时,是以其中的两个MIN的输出作为增加的一个MIN的输入,只要与该两个MIN相连或通过中间MIN与该两个MIN相连的输入包括了所有输入即可,增加的一个MIN的输出即为最小值Smn,每一路输入的索引是随其数值一起输入MIN和从MIN输出。
进一步地,上述译码方法还可具有以下特点:所述步骤(b)中计算Sm′时,是采用n个与运算单元电路和一个或运算单元电路实现的n选1的电路,即实现:
进一步地,上述译码方法还可具有以下特点:所述步骤(d)中计算Smn α时,是采用n个2MUX电路来实现的,靠k-2k译码器的译码信号Yn来驱动实现路选功能。
本发明要解决的另一技术问题是提供一种低密度奇偶校验码译码的校验节点更新电路,使得校验节点更新运算的延迟小,且复杂度低。
为了解决上述技术问题,本发明提供了一种用于低密度奇偶校验码译码的校验节点更新电路,包括M个行更新电路,M为奇偶校验矩阵的行数,每一行更新电路包括基本单元电路、修正电路、比特拆分/合并电路和符号运算电路,其特征在于,每一行更新电路还包括译码电路、第二小值计算电路和选择电路,对于第m行的行更新电路,m∈{1,2,…,K},其中:
所述基本单元电路用于对输入Vmn的数值求绝对值|Vmn|,n∈{1,2,…,dcm},然后求第n路输入对应的除|Vmn|外所有其它输入数值的绝对值的最小值Smn,即
同时,求出第m行所有输入数值的绝对值的最小值Sm及该路输入的索引IDXm′,
其中,Vmn为第m行的第n路输入,该输入中包括数值、符号位和标识该路输入的索引,dcm为第m行的行重量;
所述译码电路用于对基本单元电路输出的索引IDXm′译码,得到dcm路译码信号Yn,n∈{1,2,…,dcm},每路译码信号对应一路输入,其中只有索引为IDXm′的那路输入对应的译码信号有效;
所述第二小值计算电路用于根据接收的所述译码电路输出的各路译码信号Yn,从dcm个Smn中选出索引为IDXm′的那路输入对应的Smn,即所有输入数值的绝对值的第二小值Sm′;
所述修正电路包括两个修正单元,用于完成对最小值Sm和第二小值Sm′的修正运算;
所述选择电路用于包括dcm个多路选择器,用于接收乘法电路输出的最小值Sm和第二小值Sm′,每个多路选择器对应于一路输入,根据该路对应的译码信号进行选择,如译码信号有效,输出第二小值Sm′,如译码信号无效,则输出最小值Sm;
所述比特拆分/合并电路将所述符号运算电路输出的第n路输入运算后的符号位和选择电路对应于第n路输入的多路选择器的输出合并输出,即为该行第n个节点输出的边信息Lmn,n∈{1,2,…,dcm}。
进一步地,上述校验节点更新电路还可具有以下特点:所述基本单元电路包括两部分,其中:
第一部分用于求第n路输入对应的除|V
mn|外所有其它输入数值的绝对值的最小值S
mn,包括d
cm个求绝对值电路以及
级的求两个输入最小值的电路MIN,
表示向上取整运算;
第二部分用于求第m行所有输入数值的绝对值的最小值Sm及该路输入的索引IDXm′,包括1个MIN,该MIN的两个输入连接到所述第一部分两个MIN的输出,且与该两个MIN相连或通过中间MIN与该两个MIN相连的输入包括了所有输入;
所述求绝对值电路和MIN的输入、输出中均包括数值和索引部分。
进一步地,上述校验节点更新电路还可具有以下特点:所述译码电路为一个k-2
k译码器,其中k表示输入路数,2
k表示输出路数,
表示向上取整,当d
cm不是2的幂次时,仅选择译码器中的低位或高位的位或高位的d
cm路译码信号输出。
进一步地,上述校验节点更新电路还可具有以下特点:所述所述第二小值计算电路包括dcm个与运算单元和一个dcm路输入的或运算单元,第n个与运算单元接收所述基本单元电路与第n路输入对应的输出Smn以及第n路译码信号Yn,然后将所有与运算单元的输出送入该或运算单元,得到所述第二小值Sm′。
进一步地,上述校验节点更新电路还可具有以下特点:所述修正电路包括两个乘法器,分别用于完成最小值Sm和第二小值Sm′与加权衰减因子α的乘法运算。
进一步地,上述校验节点更新电路还可具有以下特点:所述修正电路包括两个比较及减法器单元,该两个单元均接收CON信号和DF信号,其中一个单元还接收最小值Sm,用于比较该Sm是否大于CON,如果大于,则输出为Sm减去DF,否则直接输出Sm,另一个单元还接收第二小值Sm′,并比较该Sm′是否大于CON,如果大于,则输出Sm′减去DF,否则直接输出Sm′,其中:
CON=3ln(dcm-1)/8;
进一步地,上述校验节点更新电路还可具有以下特点:所述基本单元电路的第一部分电路在dcm为偶数时,最后一级有dcm+1个MIN,其它级有dcm/2个MIN,如8输入的电路可分为4级,前三级有4个MIN,最后一级有9个MIN。第一级MIN的两个输入连接到两个ABS的输出,第一级和最后一级之间各级的MIN的两个输入分别取自前一级的两个MIN的输出且互不相同,在最后一级,dcm以两个MIN为一组分别与其前一级的一个MIN对应,同组的两个MIN的一个输入均连接到该组对应的前一级MIN,同组两个MIN的另一个输入分别连接到一个ABS,该两个ABS的输出没有输出或通过中间的MIN输出到与该组对应的前一级MIN。
进一步地,上述校验节点更新电路还可具有以下特点:所述基本单元电路的第一部分在dc为奇数时,其电路与dc+1路输入基本单元电路包含的MIN级数相同,最后一级有dcm+1个MIN,第一级有(dcm+1)/2-1个MIN,其它级与dcm+1路输入的电路的MIN个数相同,且其连接关系和所述偶数dc+1路输入的电路相同。
由上可知,本发明的低密度奇偶校验码译码的节点更新运算方法及电路复杂度低、延迟小、性能接近或者等于最优算法。此发明对于推动低密度奇偶校验码替代turbo码具有明显的意义。
附图说明
图1是现有技术中,数字通信系统处理流程图。
图2是现有技术中行重量为4的最小和行更新电路的电路图。
图3是现有技术中行重量为6和最小和行更新电路的电路图。
图4是现有技术中行重量为4,边信息加权衰减因子的最小和行更新电路中基本单元的电路图。
图5是现有技术中,行重量为6,边信息加权衰减因子的最小和基本行更新电路图。
图6是现有技术中,行重量为4,匹配行重量的最小和直接算法的基本行更新电路图。
图7是现有技术中,行重量为6,匹配行重量的最小和直接算法的基本行更新电路图。
图8是现有技术中,行重量为6,译码器整体结构图。
图9是本发明行重量为4,最小和行更新电路基本单元的示例电路图。
图10是本发明行重量为6,最小和行更新电路基本单元的示例电路图。
图11是本发明实施例行重量为4,边信息加权衰减因子的最小和行更新电路图。
图12是本发明实施例行重量为6,边信息加权衰减因子的最小和行更新电路图。
图13是本发明实施例行重量为4,匹配行重量的最小和行更新电路图。
图14是本发明实施例行重量为6,匹配行重量的最小和行更新电路图。
图15是本发明实施例行重量为4,边信息加权衰减因子的最小和的最终展开电路。
其中图4~图7,图11~图15为校验节点运算单元CFU的电路。
具体实施方式
图8给出了一个低密度奇偶校验码的译码器,它包括存储单元,节点更新运算单元,控制逻辑单元,输入输出接口。
存储单元包括三部分:码字存储单元MEM(code),迭代计算单元的计算结果存储单元MEM(CFU,BFU)及初始化值存储单元MEM(init)。MEM(code)和MEM(init)用于存储节点之间传递的信息,接收数据(初始对数似然比),MEM(CFU,BFU)用于译码后对数似然比的存储,CFU(Check Functional Unit)为校验节点更新单元,BFU(Bit Functional Unit)为变量节点更新单元。
控制逻辑单元controler用于控制译码流程及负责存储单元与节点更新运算单元之间的信息传递控制。
节点运算单元包括两部分,即校验节点更新运算单元CFU和变量节点更新运算单元BFU,分别用于校验节点更新和变量节点更新的运算,其中校验节点更新运算是根据背景技术中提到的两种实现方法来实现的,即:边信息加权衰减因子的最小和算法以及匹配行重量的最小和算法。本发明正是针对校验节点更新运算单元的电路(CFU)做了进一步的改进,由于校验节点更新运算由M个行更新运算组成,M为奇偶校验矩阵的行数。因此下面只需将对行更新运算的方法和电路进行详细说明。
第一实施例
该实施例是在现有边信息加权衰减因子的最小和算法基础上所做的改进。其实现方法计算第m行所有
的步骤如下,其中α为加权衰减因子。假定该行行重量为dcm,Vmn表示第m行的第n路输入,n∈{1,2,…,dcm},同时用n表示各输入的索引,但不排除其它索引方式。
步骤一:对于任意n∈{1,2,…,dcm},先对输入Vmn的数值求绝对值,再求取第m行中排除|Vmn|后所有其它输入数值的绝对值的最小值
,同时求出第m行所有输入数值的绝对值的最小值
及其索引IDXm′;
计算Smn时,是采用多级的两输入求最小值电路MIN实现的,在计算最小值Sm时,选择其中两个MIN的输出求最小值得到的,只要与该两个MIN相连或通过中间MIN与该两个MIN相连的输入包括了所有输入即可。
步骤二:对IDXm′进行译码,得到与各路输入Vmn一一对应的1位的译码信号Yn,n∈{1,2,…,dcm},其中只有n=IDXm′的那一路译码信号有效,利用译码信号Yn从dcm个Smn中选出n=IDXm′的那一路输入对应的Smn,得到所有输入数值的绝对值的第二小值Sm′;
步骤三:计算出Smf和Sms,其中Smf等于第二小值Sm′乘以α,Sms等于最小值Sm乘以α;
步骤四,根据译码信号Yn从Smf和Sms中选择一个作为第n路输出的Smn α,当n=IDXm′,即Yn有效时,Smn α等于Smf,n为其它值时,Smn α等于Sms;
然后再将得到的Smn α送入S/M单元与第n路的符号位合并输出,即得到该行更新后的dcm个边信息Lmn,在图中表示为Umn。
以上算法中只进行了两次乘法运算,降低了整个运算的复杂度。
上述步骤一的运算是通过行更新电路中的基本单元完成的。图9和图10示出了本发明的两个示例性的基本单元电路ENHANCED UNIT(4)和ENHANCED UNIT(6)。图中,ABS表示求输入绝对值的电路,MIN表示求两个输入中最小值的电路,Vm1、Vm2、Vm3、Vm4、Vm5、Vm6为各路输入,Um1′、Um2′、Um3′、Um4′、Um5′、Um6′为与各路输入对应的基本单元电路的输出,其中Umn′即为上述流程中提到的Smn,Sm为所有输入数值的绝对值的最小值。
图9中的电路和图2相比较,除了输出Um1′、Um2′、Um3′、Um4′外,还要求输出最小值Sm及其索引IDXm′,因此,该电路在图2中基本单元电路的基础上,在最后一级MIN中增加了一个MIN,可去掉不必要的延迟,该新增MIN的输入为上一级两个MIN的输出,其输出最小值Sm。同样地,图10中的电路也是在图3中电路的基础上,在最后一级MIN中增加了一个MIN,其输入为上一级两个MIN的输出,其输出最小值Sm。
同时,每个输入Vmn中除数值信息外,还包含有符号位以及索引号的信息,在4输入基本单元电路中,该索引号信息用输入信号的低两位(或高两位)来表示,如Vm1的索引为00,Vm2的索引为01,依此类推,在每个MIN中用数值进行比较后,输出为包含索引和数值的数值较小那个输入。因此,增加的MIN的输出中还包括最小值Sm的索引IDXm′。
对于任意dc路输入,本实施例的基本单元电路分为两部分:
第一部分用于求第n路输入对应的除|V
mn|外所有其它输入数值的绝对值的最小值S
mn,包括d
c个求绝对值电路ABS以及
级的求两个输入最小值的电路MIN,
表示向上取整运算。
在dc为偶数时,最后一级有dc+1个MIN,其它级有dc/2个MIN,如8输入的电路可分为4级,前三级有4个MIN,最后一级有9个MIN。第一级MIN的两个输入连接到两个ABS的输出,第一级和最后一级之间各级的MIN的两个输入分别取自前一级的两个MIN的输出且互不相同,在最后一级,dc以两个MIN为一组分别与其前一级的一个MIN对应,同组的两个MIN的一个输入均连接到该组对应的前一级MIN,同组两个MIN的另一个输入分别连接到一个ABS,该两个ABS的输出没有输出或通过中间的MIN输出到与该组对应的前一级MIN。
在dc为奇数时,最后一级有dc+1个MIN,第一级有(d+1)c/2-1个MIN,其它级有(d+1)c/2个MIN,即在对应的dc+1路电路的基础上减少了一个第一级的MIN,并把一个ABS的输出直接连接到该MIN所连接的第二级MIN,其它的连接关系与dcm+1路电路都是相同的,当然也可以完全采用dcm+1路电路的结构,只是将一路输入不用,并去掉相应的输出也可以。
第二部分用于求第m行所有输入数值的绝对值的最小值Sm及该路输入的索引IDXm′,包括1个MIN,该MIN的两个输入连接到所述第一部分倒数第二级的两个MIN的输出。上述求绝对值电路ABS和MIN的输入和输出除数值外,均包括索引部分。
因此,对于任意dc个输入,改进后的基本单元电路也仅增加一个MIN。其输出为Sm及其索引IDXm′,以及与输入Vmn对应的Umn′,有:
当然本发明并不局限以上的基本单元电路结构,也可以采用不同的方法来实现基本单元电路,我们可以从第一部分前几级的MIN的输出中选择两个MIN的输出作为增加的MIN单元的输入,只要与该两个MIN相连或通过中间MIN与该两个MIN相连的输入包括了所有输入即可,这样即能求得Sm及其索引IDXm′,以及与输入Vmn对应的Umn′的电路都可以应用到以下的行更新电路中。以6输入电路为例,对比图10,我们可以以第二级的另外一个输出作为增加的MIN单元的其中一个输入。
图11给出了一个行重量为4,具有网状拓扑的行更新电路图,图12给出了一个基本的行重量为6,具有网状拓扑的行更新电路图。其中ENHANCED UNIT(4)和ENHANCED UNIT(6)为图9和图10中的基本单元电路。除基本单元电路外,行更新电路中还包括译码电路,第二小值计算电路、乘法电路、选择电路、符号运算电路和比特拆分/合并电路。
请参照图11中的4输入行更新电路和图12中的6输入行更新电路,图中,SF为加权衰减因子α,Vm1、Vm2、Vm3、Vm4、Vm5、Vm6为输入,Um1、Um2、Um3、Um4、Um5、Um6为输出。
译码电路用于对基本单元电路输出的索引IDXm′译码,对于4路输入电路,如图11所示,由一个2-4译码器(2-4DEC)组成,得到4个1位的译码信号。对于6路输入电路,如图12所示,由一个3-8译码器组成,得到6个1位的译码信号。同样,对于dc路输入的行更新电路,令
(
表示向上取整),设置一个k-2k译码器。其中k表示输入路数,2k表示输出路数,需要说明的是当dc不是2的幂次时,我们仅选择译码器中的低位或高位的dc路译码信号输出去驱动dcm个2MUX和输入dcm个与运算单元,每路译码信号对应一路输入,其中只有索引为IDXm′的那路输入对应的译码信号有效,如置“1”,其它路的译码信号均无效,如置“0”。
第二小值计算电路,对于4路输入电路,如图11所示,由4个与运算单元和一个4输入的或运算单元组成,其原理为4选一的电路。对于6路输入电路,如图12中所示,由6个与运算单元和一个6输入的或运算单元组成,其原理为6选一的电路。同理,在任意dcm路输入的行更新电路中,由dcm个与运算单元和一个dcm路输入的或运算单元组成一个dcm选1电路。在第二小值计算电路中,第n个与运算单元接收基本单元电路的第n路输出Umn′以及第n路译码信号Yn,然后将所有与运算单元的输出送入或运算单元,即可得到所有输入数值的绝对值的第二小值Sm′。当然,在别的实施方式中,也可以用其它方式的电路来实现dc选1的功能。即计算:
乘法电路包括两个乘法器,用于完成最小值Sm和第二小值Sm′与SF的乘法运算,其中SF为加权衰减因子α,这对于任意dc路输入的行更新电路中都是一样的。
选择电路,对于4路输入电路,如图11所示,由4个二选一的多路选择器(2MUX)组成,对于6输入电路,如图12所示,由6个二选一的多路选择器(2MUX)组成。同理,在任意dc路输入的行更新电路中,可设置dc个多路选择器(2MUX)。每个多路选择器对应于一路输入,均接收乘法电路输出的最小值Sm和第二小值Sm′,并根据该路对应的译码信号进行选择,如译码信号有效,则输出第二小值Sm′,如译码信号无效,则输出最小值Sm,文中把根据第n路译码信号进行选择的多路选择器的输出称为该选择电路的第n路输出。
符号运算电路与现有技术是相同的,接收每路输入的符号位,进行符号运算后输出更新后的每路的符号位。比特拆分/合并电路将第n路的符号位和选择电路第n路的输出合并输出Umn。
可以看出,对于4输入,图11与图4相比去掉了两个乘法单元,对于6输入则去掉了四个乘法单元。同时,对于任意dc输入,和原电路相比减少了dc-2个乘法单元。
第二实施例
该实施例是在现有匹配行重量的最小和算法基础上所做的改进。
匹配行重量的最小和算法要实现以下运算:
如果:|Vmn′|≥3ln(dcm-1)/8则:
否则:λmn=0
令:
本实施例实现以上运算的方法中,步骤一、步骤二和步骤四分别与第一实施例的步骤一、步骤二和步骤四相同,不再重复。下面只描述不相同的部分,即步骤三。
步骤三:计算出S
mf和S
ms,当S
m′大于3ln(d
c-1)/8时,S
mf等于S
m′减去
否则,S
mf等于S
m′;当S
m大于3ln(d
c-1)/8时,S
ms等于S
m减去
否则,S
ms等于S
m;
本实施例的行更新电路包括基本单元电路、译码电路,第二小值计算电路、比较及减法电路、选择电路、符号运算电路和比特拆分/合并电路。其中,用比较及减法电路代替了第一实施例中的乘法器电路,具体地,用两个比较及减法器C/S代替了第一实施例中的两个乘法器,其它的电路都是一样的。
该两个比较及减法器C/S均接收CON信号和DF信号。此外,其中一个C/S还接收最小值Sm,用于比较该Sm是否大于CON,如果大于,则输出为Sm减去DF,否则直接输出Sm,另一个C/S则还接收第二小值Sm′,并比较该Sm′是否大于CON,如果大于,则输出Sm′减去DF,否则直接输出Sm′。其中:
CON=3ln(dc-1)/8;
图13给出了本实施例一个基本的行重量为4、具有网状拓扑的行更新电路图,图14给出了本实施例一个基本的行重量为6、具有网状拓扑的行更新电路图。其中基本单元电路ENHANCED UNIT(4)和ENHANCEDUNIT(6)分别采用图9和图10中的电路。
图中:
CON=3ln(dcm-1)/8;
其它的信号与第一实施例的含义是相同的,这里不再重复。
下面从以下两点来分析本发明对现有技术的改进:
1)基本单元电路部分,对于任意n个输入,我们仅增加了一个MIN便可求得输入的最小值Sm及其索引。这对于更多输入的电路而言,这个代价是可以忽略的。
2)CFU部分,虽然在单元的数量上比原电路多了。但是就复杂程度来说电路却简化了。一方面由于原电路的乘法器和C/S单元是做浮点操作,实现的复杂度非常高;而我们的改进电路中增加的单元都是做定点处理。译码器DEC和多路选择器2MUX的实现非常简单,增加的与运算单元电路则更是简单,实现的复杂度非常的低。随着输入的增加,电路的复杂度基本上不会增加,我们可以得知若有dc个输入时,采用原电路,则需要dc个浮点乘法器或C/S单元,其实现的复杂度非常高。而在本发明的电路中仅需要二个浮点乘法器或C/S单元,其数量并不会随着输入的增加而增加,相应的代价仅增加了dc-2个二选一的多路选择器、一个译码器、dc个与运算单元和一个或运算单元。其电路被大大简化。而且带来的延迟也非常小。
因此,本发明涉及了低密度奇偶校验码的核心运算-校验节点更新运算中的行更新运算,提出了一种延迟小复杂度低的实现方法。本发明的解决方案使得低密度奇偶校验码译码器复杂度和延迟达到了最佳,从而保证了低密度奇偶校验码具有比turbo码更低的复杂度和更好性能。其中匹配行重量的最小和算法的性能可以达到最优算法的性能。
但是,本发明方法并不局限于以上两种修正的最小和算法,而是可以适用于任何可能的修正算法,其差别只在于与修正相关的步骤或电路有所不同,从整个行更新的算法或电路来看,因为可以去掉难以实现的乘法、选择比较、减法等运算单元,因此同样可以达到上述降低复杂度和减少延迟的技术效果。