本发明涉及信道编码技术领域,特别是涉及一种基于动态调度的bp迭代译码方法及系统。
背景技术:
ldpc码(ldpc是lowdensityparitycheckcode英文缩写,意思是低密度奇偶校验码)是一类纠错能力很强的纠错编码,有逼近shannon限的良好性能,其bp译码算法以其优越的性能和较低的复杂度得到广泛的应用。bp译码算法是一种消息迭代算法,每次迭代中所有校验节点从相连的变量节点处接收消息,处理后再传回相连的变量节点,然后所有的变量节点进行同样的过程,最后变量节点收集所有可以利用的消息进行判决。在译码过程中,变量节点与校验节点之间消息更新的次序称为调度。所传递更新节点的概率消息用似然比表示,得到对数似然比值(log-likelihoodratio,llr)。标准bp译码算法最大的劣势在于其相对较慢的收敛速度,通常需要30次以上的迭代次数才能达到比较好的性能。2005年p.radosavljevic(“optimizedmessagepassingschedulesforldpcdecoding”,signalssystemsandcomputers,2005:591-595)提出一种基于行消息传递(rmp)的译码方法。将原bp方法中并行的消息传递调度方式串行化,按照校验节点的升序次序串行进行消息处理和传递,在每次迭代中后续更新的节点可以利用先前更新的节点信息,其收敛速度明显优于原bp译码方法。
但由于基于rmp调度的译码方法是一种静态调度,在整个译码过程中始终按照校验节点排列,升序进行更新。而校验节点更新的先后次序直接影响着校验节点的置信度,越后更新的校验节点相对应的置信度越高,静态调度造成了校验节点的置信度不均衡性的累计,降低了译码性能。
技术实现要素:
本发明的目的是提供一种基于动态调度的bp迭代译码方法及系统,可提高译码性能。
为实现上述目的,本发明提供了如下方案:
一种基于动态调度的bp迭代译码方法,所述基于动态调度的bp迭代译码方法包括:
获取校验矩阵、待译码向量以及最大迭代次数;
根据所述校验矩阵对所述待译码向量进行初始化,得到初始概率消息的对数似然比值;所述校验矩阵包括多个校验节点和变量节点,各所述校验节点分别连接至少一个变量节点;
根据初始概率消息的对数似然比值,确定重新排序的校验节点集合;
根据所述重新排序的校验节点集合对所述待译码向量进行迭代计算,确定当前迭代次数中的当前译码向量;
判断所述校验矩阵与所述当前译码向量的乘积向量是否为零向量,若是,则结束译码操作;否则继续迭代计算;
或者判断所述当前迭代次数是否达到最大迭代次数,若是,则结束译码操作;否则继续迭代计算。
可选的,所述根据所述校验矩阵对所述待译码向量进行初始化,得到初始概率消息的对数似然比值,具体包括:
根据所述待译码向量r=(r1,r2,...rn),计算信道传递给变量节点n的初始概率消息的对数似然比值l(pn);
对满足校验矩阵h(m,n)=1的(m,n),根据l(0)(qnm)=l(pn),迭代次数l=1,计算初始概率消息的对数似然比值l(0)(qnm);
其中,m表示校验矩阵中的校验节点,m表示为校验矩阵中的校验节点的个数,m=1,2,...,m,n表示为校验矩阵中的变量节点,n表示为校验矩阵中的变量节点的个数,n=1,2,...,n,l(pn)表示信道传递给变量节点n的概率消息的对数似然比值;l(0)(qnm)表示变量节点n传向校验节点m的初始概率消息的对数似然比值。
可选的,所述根据初始概率消息的对数似然比值,确定重新排序的校验节点集合,具体包括:
针对每个校验节点,计算该校验节点所连接的所有变量节点的初始概率消息的对数似然比值之和;各所述校验节点对应初始概率消息的对数似然比值之和组成权重向量;
对所述权重向量中的各元素进行降序排序,得到校验节点的动态调度向量,各元素分别为校验节点对应初始概率消息的对数似然比值之和;
按照动态调度向量中元素的顺序,确定相对应的校验节点的更新次序,得到重排序的校验节点集合θ={j1,j2,j3..jm};
其中,ji(i=1,2...m)表示第i次更新的校验节点j,ji∈{1,2,3...m},m表示为校验矩阵中的校验节点的个数。
可选的,所述根据所述重新排序的校验节点集合对所述待译码向量进行迭代计算,获得当前译码向量,具体包括:
根据以下公式,确定当前迭代次数中所述重新排序的校验节点集合中的各校验节点传向变量节点的概率消息的对数似然比值
其中,n表示校验矩阵中的变量节点,ji表示重新排序的校验节点集合校验节点,n表示变量节点的个数,m表示校验节点的个数;n(ji)\n表示除变量节点n外与校验节点ji相连的变量节点的集合;n(jl)表示与校验节点jl相连的变量节点的集合;
根据以下公式,确定当前迭代次数中变量节点传向所述重新排序的校验节点集合中的各校验节点的概率消息的对数似然比值
对于n∈n(ji)且n∈{1,2,3..n},有
其中,n表示变量节点,ji表示校验节点,n表示变量节点的个数,m表示校验节点的个数;l(pn)表示信道传递给变量节点n的初始概率消息的对数似然比值;m(n)表示与变量节点n相连的所有校验节点ji的集合,m(n)\ji表示集合m(n)去掉校验节点ji;
根据以下公式确定当前迭代得到的当前译码向量:
对于1≤n≤n,有:
设待译码向量r经过译码后的序列为
为实现上述目的,本发明提供了如下方案:
一种基于动态调度的bp迭代译码系统,其特征在于,所述基于动态调度的bp迭代译码系统包括:
获取单元,用于获取校验矩阵、待译码向量以及最大迭代次数;
初始化单元,用于根据所述校验矩阵对所述待译码向量进行初始化,得到初始概率消息的对数似然比值;所述校验矩阵包括多个校验节点和变量节点,各所述校验节点分别连接至少一个变量节点;
排序单元,用于根据初始概率消息的对数似然比值,确定重新排序的校验节点集合;
计算单元,用于根据所述重新排序的校验节点集合对所述待译码向量进行迭代计算,确定当前迭代次数中的当前译码向量;
判断单元,用于判断所述校验矩阵与所述当前译码向量的乘积向量是否为零向量;或者判断所述当前迭代次数是否达到最大迭代次数;若所述判断单元的判断结果为是,则结束译码操作;
所述计算单元还与所述判断单元连接,所述计算单元用于在所述判断单元的判断结果为否时,继续迭代计算。
可选的,所述初始化单元包括:
初始化模块,用于根据所述待译码向量r=(r1,r2,...rn),计算信道传递给变量节点n的初始概率消息的对数似然比值;
初始值计算模块,用于对满足校验矩阵h(m,n)=1的(m,n),根据l(0)(qnm)=l(pn),迭代次数l=1,计算初始概率消息的对数似然比值l(0)(qnm);
其中,m表示校验矩阵中的校验节点,m表示为校验矩阵中的校验节点的个数,m=1,2,...,m,n表示为校验矩阵中的变量节点,n表示为校验矩阵中的变量节点的个数,n=1,2,...,n,l(pn)表示信道传递给变量节点n的概率消息的对数似然比值;l(0)(qnm)表示变量节点n传向校验节点m的初始概率消息的对数似然比值。
可选的,所述排序单元包括:
求和模块,用于针对每个校验节点,计算该校验节点所连接的所有变量节点的初始概率消息的对数似然比值之和;各所述校验节点对应初始概率消息的对数似然比值之和组成权重向量;
排序模块,用于对所述权重向量中的各元素进行降序排序,得到校验节点的动态调度向量,各元素分别为校验节点对应初始概率消息的对数似然比值之和;
更新模块,用于按照动态调度向量中元素的顺序,确定相对应的校验节点的更新次序,得到重排序的校验节点集合θ={j1,j2,j3..jm};
其中,ji(i=1,2...m)表示第i次更新的校验节点j,ji∈{1,2,3...m},m表示为校验矩阵中的校验节点的个数。
可选的,所述计算单元包括:
校验节点计算模块,用于根据以下公式,确定当前迭代次数中所述重新排序的校验节点集合中的各校验节点传向变量节点的概率消息的对数似然比值
其中,n表示校验矩阵中的变量节点,ji表示重新排序的校验节点集合校验节点,n表示变量节点的个数,m表示校验节点的个数;n(ji)\n表示除变量节点n外与校验节点ji相连的变量节点的集合;n(jl)表示与校验节点jl相连的变量节点的集合;
变量节点计算模块,用于根据以下公式,确定当前迭代次数中变量节点传向所述重新排序的校验节点集合中的各校验节点的概率消息的对数似然比值
对于n∈n(ji)且n∈{1,2,3..n},有
其中,n表示变量节点,ji表示校验节点,n表示变量节点的个数,m表示校验节点的个数;l(pn)表示信道传递给变量节点n的初始概率消息的对数似然比值;m(n)表示与变量节点n相连的所有校验节点ji的集合,m(n)\ji表示集合m(n)去掉校验节点ji;
译码计算模块,用于根据以下公式确定当前迭代得到的当前译码向量:
对于1≤n≤n,有:
设待译码向量r经过译码后的序列为
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明基于动态调度的bp迭代译码方法及系统根据校验矩阵对待译码向量进行初始化,进而根据初始概率消息的对数似然比值,重新排序的校验节点集合,以确定译码向量,从而可加速译码算法的收敛,在降低迭代次数的同时,可降低误码率,提升译码性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例基于动态调度的bp迭代译码方法的流程图;
图2为本发明实施例码长2304准循环码,5次迭代的两种方法误比特率比较;
图3为本发明实施例码长2304准循环码,5次迭代的两种方法误码块率比较;
图4为本发明实施例码长2304准循环码,5次迭代的两种方法平均迭代次数的对比图;
图5为本发明实施例码长2304准循环码,10次迭代的两种方法误比特率的对比图;
图6为本发明实施例码长2304准循环码,10次迭代的两种方法误码块率的对比图;
图7为本发明实施例码长2304准循环码,10次迭代的两种方法平均迭代次数的对比图;
图8为本发明实施例基于动态调度的bp迭代译码系统的模块结构图。
符号说明:
获取单元—1,初始化单元—2,排序单元—3,计算单元—4,判断单元—5。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于动态调度的bp迭代译码方法,根据校验矩阵对待译码向量进行初始化,进而根据初始概率消息的对数似然比值,重新排序的校验节点集合,以确定译码向量,从而可加速译码算法的收敛,在降低迭代次数的同时,可降低误码率,提升译码性能。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本发明基于动态调度的bp迭代译码方法包括:
步骤100:获取校验矩阵、待译码向量以及最大迭代次数。
步骤200:根据所述校验矩阵对所述待译码向量进行初始化,得到初始概率消息的对数似然比值;所述校验矩阵包括多个校验节点和变量节点,各所述校验节点分别连接至少一个变量节点。
步骤300:根据初始概率消息的对数似然比值,确定重新排序的校验节点集合。
步骤400:根据所述重新排序的校验节点集合对所述待译码向量进行迭代计算,确定当前迭代次数中的当前译码向量。
步骤500:判断所述校验矩阵与所述当前译码向量的乘积向量是否为零向量,若是,则结束译码操作;否则执行步骤400,继续迭代计算;
或者判断所述当前迭代次数是否达到最大迭代次数,若是,则结束译码操作;否则执行步骤400,继续迭代计算。
其中,在步骤200中,所述根据所述校验矩阵对所述待译码向量进行初始化,得到初始概率消息的对数似然比值,具体包括:
步骤201:根据所述待译码向量r=(r1,r2,...rn),计算信道传递给变量节点n的初始概率消息的对数似然比值;
步骤202:对满足校验矩阵h(m,n)=1的(m,n),根据l(0)(qnm)=l(pn),迭代次数l=1,计算初始概率消息的对数似然比值l(0)(qnm);
其中,pr{}表示的是概率函数,
其中,m表示校验矩阵中的校验节点,m表示为校验矩阵中的校验节点的个数,m=1,2,...,m,n表示为校验矩阵中的变量节点,n表示为校验矩阵中的变量节点的个数,n=1,2,...,n,l(pn)表示信道传递给变量节点n的概率消息的对数似然比值;l(0)(qnm)表示变量节点n传向校验节点m的初始概率消息的对数似然比值。
在步骤300中,所述根据初始概率消息的对数似然比值,确定重新排序的校验节点集合,具体包括:
步骤301:针对每个校验节点,计算该校验节点所连接的所有变量节点的初始概率消息的对数似然比值之和;各所述校验节点对应初始概率消息的对数似然比值之和组成权重向量;
步骤302:对所述权重向量中的各元素进行降序排序,得到校验节点的动态调度向量,各元素分别为校验节点对应初始概率消息的对数似然比值之和;
步骤303:按照动态调度向量中元素的顺序,确定相对应的校验节点的更新次序,得到重排序的校验节点集合θ={j1,j2,j3..jm};
其中,ji(i=1,2...m)表示第i次更新的校验节点j,ji∈{1,2,3...m},m表示为校验矩阵中的校验节点的个数。
在步骤400中,所述根据所述重新排序的校验节点集合对所述待译码向量进行迭代计算,获得当前译码向量,具体包括:
步骤401:根据公式(2),确定当前迭代次数中所述重新排序的校验节点集合中的各校验节点传向变量节点的概率消息的对数似然比值
其中,n表示校验矩阵中的变量节点,ji表示重新排序的校验节点集合校验节点,n表示变量节点的个数,m表示校验节点的个数;n(ji)\n表示除变量节点n外与校验节点ji相连的变量节点的集合;n(jl)表示与校验节点jl相连的变量节点的集合;
步骤402:根据公式(3),确定当前迭代次数中变量节点传向所述重新排序的校验节点集合中的各校验节点的概率消息的对数似然比值
对于n∈n(ji)且n∈{1,2,3..n},有
其中,n表示变量节点,ji表示校验节点,n表示变量节点的个数,m表示校验节点的个数;l(pn)表示信道传递给变量节点n的初始概率消息的对数似然比值;m(n)表示与变量节点n相连的所有校验节点ji的集合,m(n)\ji表示集合m(n)去掉校验节点ji;
步骤403:根据公式(4),确定当前迭代得到的当前译码向量:
对于1≤n≤n,有:
设待译码向量r经过译码后的序列为
在步骤500中,当
与现有技术相比,本发明的有益效果是:本发明的bp译码方法采用获取的待译码向量消息的概率消息的对数似然比值,动态优化校验节点更新次序,在译码复杂度相近的情况下降低了译码所需的平均迭代次数,加速bp译码算法的收敛,同时还获得了误码率性能的有效提升。
从译码复杂度分析,本发明基于动态调度的bp迭代译码由于采用了动态调度权重的排序方式,只需要额外的m(dv-1)+mlog2m次加法运算,其中m表示校验矩阵中校验节点的个数,dv表示校验矩阵中变量节点的度,其余的运算量与基于rmp调度的译码方法运算量保持一致。
从性能仿真的角度,在仿真中采用(n,k)=(2304,1152)的准循环ldpc码,ldpc码的校验矩阵的最大行重和最大列重分别为7和6;设信道为awgn,调制方式为bpsk,对比译码方法分别为bp-rmp和本发明中提出的vs-rmp调度方法。
从仿真图2、图3、图5、图6中可以看出,基于vs-rmp调度的译码方法在不同译码次数下均具有更低的误码块率,尤其是迭代次数受限时,优越性更加明显,与基于rmp调度的方法相比,性能可以提高约0.2db。
从仿真图4、图7中可以看出,基于vs-rmp调度的方法在不同译码迭代次数所需平均迭代次数最少,其所需平均迭代次数对比基于rmp的bp译码,减少了约10%。
此外,本发明提供一种基于动态调度的bp迭代译码系统。如图8所示,本发明基于动态调度的bp迭代译码系统包括获取单元1、初始化单元2、排序单元3、计算单元4及判断单元5。
其中,所述获取单元1用于获取校验矩阵、待译码向量以及最大迭代次数。
所述初始化单元2用于根据所述校验矩阵对所述待译码向量进行初始化,得到初始概率消息的对数似然比值;所述校验矩阵包括多个校验节点和变量节点,各所述校验节点分别连接至少一个变量节点。
所述排序单元3用于根据初始概率消息的对数似然比值,确定重新排序的校验节点集合。
所述计算单元4用于根据所述重新排序的校验节点集合对所述待译码向量进行迭代计算,确定当前迭代次数中的当前译码向量。
所述判断单元5用于判断所述校验矩阵与所述当前译码向量的乘积向量是否为零向量;或者判断所述当前迭代次数是否达到最大迭代次数;若所述判断单元的判断结果为是,则结束译码操作;
所述计算单元4还与所述判断单元5连接,所述计算单元4用于在所述判断单元的判断结果为否时,继续迭代计算。
进一步地,所述初始化单元2包括初始化模块及初始值计算模块。
其中,所述初始化模块用于根据所述待译码向量r=(r1,r2,...rn),计算信道传递给变量节点n的初始概率消息的对数似然比值;
所述初始值计算模块用于对满足校验矩阵h(m,n)=1的(m,n),根据l(0)(qnm)=l(pn),迭代次数l=1,计算初始概率消息的对数似然比值l(0)(qnm);
其中,m表示校验矩阵中的校验节点,m表示为校验矩阵中的校验节点的个数,m=1,2,...,m,n表示为校验矩阵中的变量节点,n表示为校验矩阵中的变量节点的个数,n=1,2,...,n,l(pn)表示信道传递给变量节点n的概率消息的对数似然比值;l(0)(qnm)表示变量节点n传向校验节点m的初始概率消息的对数似然比值。
其中,pr{}表示的是概率函数,
所述排序单元3包括求和模块、排序模块及更新模块。
所述求和模块用于针对每个校验节点,计算该校验节点所连接的所有变量节点的初始概率消息的对数似然比值之和;各所述校验节点对应初始概率消息的对数似然比值之和组成权重向量;
所述排序模块用于对所述权重向量中的各元素进行降序排序,得到校验节点的动态调度向量,各元素分别为校验节点对应初始概率消息的对数似然比值之和;
所述更新模块用于按照动态调度向量中元素的顺序,确定相对应的校验节点的更新次序,得到重排序的校验节点集合θ={j1,j2,j3..jm};
其中,ji(i=1,2...m)表示第i次更新的校验节点j,ji∈{1,2,3...m},m表示为校验矩阵中的校验节点的个数。
所述计算单元包括校验节点计算模块、变量节点计算模块及译码计算模块。
所述校验节点计算模块用于根据公式(2),确定当前迭代次数中所述重新排序的校验节点集合中的各校验节点传向变量节点的概率消息的对数似然比值
其中,n表示校验矩阵中的变量节点,ji表示重新排序的校验节点集合校验节点,n表示变量节点的个数,m表示校验节点的个数;n(ji)\n表示除变量节点n外与校验节点ji相连的变量节点的集合;n(jl)表示与校验节点jl相连的变量节点的集合;
所述变量节点计算模块用于根据公式(3),确定当前迭代次数中变量节点传向所述重新排序的校验节点集合中的各校验节点的概率消息的对数似然比值l(l)(qnji):
对于n∈n(ji)且n∈{1,2,3..n},有
其中,n表示变量节点,ji表示校验节点,n表示变量节点的个数,m表示校验节点的个数;l(pn)表示信道传递给变量节点n的初始概率消息的对数似然比值;m(n)表示与变量节点n相连的所有校验节点ji的集合,m(n)\ji表示集合m(n)去掉校验节点ji;
所述译码计算模块用于根据公式(4)确定当前迭代得到的当前译码向量:
对于1≤n≤n,有:
设待译码向量r经过译码后的序列为
所述判断单元5在判断当
相对于现有技术,本发明基于动态调度的bp迭代译码系统与上述基于动态调度的bp迭代译码方法的有益效果相同,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。