可提前结束迭代的归一化最小和译码方法
技术领域
本发明涉及通信领域的自适应信道编码技术领域,尤其涉及一种可提前结束迭代的归一化最小和译码方法。
背景技术
在无线通信***中,由于传输信道存在噪声、衰落、多径,必然会对传输数据引入失真和信号判决错误。信道编码技术通过在信息序列中加入冗余码元,来发现、纠正传输中发生的信号错误,从而提高***的可靠性。
低密度奇偶校验码(LDPC)码是一种能够逼近香农(Shannon)限的性能优异的信道编解码方法。LDPC码的标准软判决译码采用一种置信传播算法,称之为和积算法(SPA)。和积算法使LDPC码得到最优的解码性能,但校验节点计算中的双曲余切函数算法的硬件实现复杂度很高。最小和算法(MS)用最小值函数代替了复杂的双曲余切函数,大大降低了解码算法复杂度,但性能有较大的损失。归一化最小和算法(NMS)在MS算法的基础上,在校验节点计算中引入归一化因子补偿了MS算法的性能损失。它仅增加了很小的实现复杂度而获得与BP算法接近的性能。
假设接收信号为yi,对数域NMS算法实现步骤如下:
(1)初始化:
迭代次数k=1,并且:
L(Pi)=yi
其中,L(Pi)是对数域上初始信道信息,L(qij k)是对数域上从变量节点到校验节点的软信息。
(2)计算校验节点传递给变量节点的软信息:
其中,L(rij k)是对数域上从校验节点到变量节点的软信息,η是归一化因子。
(3)计算变量节点传递给校验节点的软信息:
(4)计算对数域上后验概率:
(5)硬判决解码:
若 若
其中,
是解码结果序列,将
乘以校验矩阵,获得各个校验式的校验结果
(6)重复2~5,k=k+1。直到校验结果为0或到达最大的迭代次数。
NMS算法实质是一种迭代算法,消息在变量节点和校验节点之间来回传递,从而不断更新。目前的NMS译码算法中迭代停止条件为:当迭代次数达到最大迭代次数,或者通过判断知道译码已经正确时,结束迭代译码,并输出译码结果。但是在有些译码过程中,即使译码迭代次数达到最大迭代次数也不能正确译码,反而需要很多无用的译码运算,导致硬件功耗增加。
发明内容
有鉴于此,本发明的主要目的在于提供一种可提前结束迭代的归一化最小和译码方法,在迭代早期可以预测不能正确译码的情况,并提前结束迭代。该方法复杂度低,易于硬件实现。在基本不影响性能的前提下,减少了译码器运算量,降低了译码器硬件的功耗,并且减小了译码延迟。
为达到上述目的,本发明提供了一种可提前结束迭代的归一化最小和译码方法,该方法包括:
初始化:迭代次数k=0,设置最大迭代次数N(0<N<500)以及用来衡量收敛程度的门限参数D1,D2,D3。
迭代译码:迭代次数k=k+1,进行NMS校验节点运算、NMS变量节点运算、硬判决译码,并用硬判决译码结果乘以校验矩阵,获得各个校验式的校验结果。统计所有变量节点中不满足校验结果的个数,作为校验位错误的总个数C(k)。
正常结束迭代判决:当迭代次数达到动态调整后的最大迭代次数,或者通过判断知道译码已经正确时,结束迭代译码,否则进行提前结束迭代判决。
提前结束迭代判决:当k>2时,如果校验位错误的个数C(k)满足一定的条件,则提前结束迭代,否则继续迭代译码。
上述方案中所述的提前结束迭代判决:当k>2时,如果第k次校验位错误的个数C(k)满足一定的条件,则提前结束迭代。其所述的C(k)满足所述的条件包括其与第k-1次校验位错误的个数C(k-1)及第k-2次校验位错误的个数C(k-2)之间满足如下关系:
A1、C(k)>C(k-1)+D1(1≤k≤N);
A2、C(k)>C(k-2)+D2(1≤k≤N);
A3、C(k)>D3(1≤k≤N)
本发明的再一目的是提供一种可提前结束迭代的归一化最小和译码方法的硬件实现结构。其中运算单元包括变量节点运算单元和校验节点运算单元,二者通过交换网络相连接。译码过程中的迭代次数由迭代结束控制单元控制。
从上述技术方案可以看出,本发明具有以下有益效果:
1、本发明提供的可提前结束迭代的归一化最小和译码方法,改进了目前归一化最小和译码算法的迭代结束方法。该方法利用校验位错误的总个数,在迭代早期预测不能正确译码的情况,并可以提前结束迭代。
2、本发明提供的可提前结束迭代的归一化最小和译码方法,计算复杂度低,易于硬件实现。在基本不影响性能的前提下,减少了译码运算量,降低了译码器硬件的功耗,并且减小了译码延迟。
附图说明
图1是本发明提供的可提前结束迭代的归一化最小和译码方法实现的流程图;
图2是采用本发明提供的可提前结束迭代的归一化最小和译码方法的LDPC译码器硬件结构;
图3是本发明提供的可提前结束迭代的归一化最小和译码方法的一个实施例的误码率曲线,图中同时给出了采用已有迭代结束方法的误码率曲线;
图4是本发明提供的可提前结束迭代的归一化最小和译码方法的一个实施例的迭代次数曲线,图中同时给出了采用已有迭代结束方法的迭代次数曲线。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明的目的在于提供一种可提前结束迭代的归一化最小和译码方法,在迭代早期可以预测不能正确译码的情况,并提前结束迭代。该方法复杂度低,易于硬件实现。在基本不影响性能的前提下,减少了译码运算量,降低了译码器硬件的功耗,并且减小了译码延迟。
如图1所示,图1是本发明提供的归一化最小和译码算法的迭代结束方法实现的流程图。该方法包括:
步骤101:初始化:迭代次数k=0,设置最大迭代次数N为30以及用来衡量收敛程度的门限参数D1,D2,D3。
步骤102:迭代译码:迭代次数k=k+1,进行NMS校验节点运算、NMS变量节点运算、硬判决译码,并用硬判决译码结果乘以校验矩阵,获得各个校验式的校验结果,同时记录校验位错误的总个数C(k)。
步骤103:正常结束迭代判决:当迭代次数达到动态调整后的最大迭代次数,或者通过判断知道译码已经正确时,结束迭代译码,否则进行提前结束迭代判决。
步骤104:提前结束迭代判决:当k>2时,如果校验位错误的个数C(k)满足一定的条件,则提前结束迭代,否则继续迭代译码。
在上述步骤104中,所述的当k>2时,校验位错误的个数C(k)需满足的条件同时包括:
A1、C(k)>C(k-1)+D1(1≤k≤N);
A2、C(k)>C(k-2)+D2(1≤k≤N);
A3、C(k)>D3(1≤k≤N)
图2是采用本发明提供的可提前结束迭代的归一化最小和译码方法的LDPC译码器硬件结构;
图中变量节点运算单元完成译码算法中的变量节点更新,而校验节点运算单元完成译码算法中的校验节点更新。二者的更新结果通过交换网络相互交换。译码过程中的迭代次数由迭代结束控制单元控制。其实现了正常结束迭代判决以及提前结束迭代判决。
图3是本发明提供的可提前结束迭代的归一化最小和译码方法的一个实施例的误码率曲线,图中同时给出了采用已有迭代结束方法的误码率曲线。在该实施例中,LDPC码的码长为2304,采用NMS算法译码,NMS算法的归一化因子为0.8,最大迭代译码次数设定为30次。
从图3可以看出,本发明提供的可提前结束迭代的归一化最小和译码方法基本没有影响译码性能。
图4是图3中实施例的平均迭代次数曲线,图中同时给出了采用已有迭代结束方法的平均迭代次数曲线。
从图4可以看出,本发明提供的可提前结束迭代的归一化最小和译码方法有效减少了迭代运算次数,降低了译码运算量。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。