本发明涉及信号处理技术领域,特别是涉及一种基于马尔可夫蒙特卡罗方法的ldpc译码器构造方法。
背景技术:
低密度奇偶校验码(lowdensityparitycheckcode,ldpc),由gallagar在1962年提出,是线性分组码(linearblockcode,lbc)的一种。随着ldpc有效译码算法的提出,它逐渐普及并被认为具有接近shannon极限的良好性能和并行友好的特点。由于这些优点,从2g时代以来(如ieee802.11,ieee802.20),ldpc码被包括在多种协议中。如今,ldpc码被采纳为5g增强移动宽带(enhancedmobilebroadband,embb)场景下的数据信道长码块的编码方案。
作为ldpc码的重要组成部分,译码器模块不可小觑。ldpc码译码器的译码方法大致可分为两类:基于硬判决的译码方法和基于软判决的译码方法。第一类译码方案计算复杂度低,易于实现,但纠错能力有限。第二类方法包括采用后验概率信息的置信传播(beliefpropagation,bp)算法。它计算复杂度高,但由于性能接近香农极限而被广泛研究。可是,当ldpc码的因子图中包含小的循环时,bp译码算法只能提供次优解,特别是码长较短时,结果很不理想。因此,如何提高bp算法在短码中的性能,同时维持可以接受的复杂度成为研究的关键。
技术实现要素:
发明目的:本发明的目的是提供一种基于马尔可夫蒙特卡罗方法的ldpc译码器构造方法,能够提高bp算法在短码中的性能,同时维持可以接受的复杂度。
技术方案:为达到此目的,本发明采用以下技术方案:
本发明所述的基于马尔可夫蒙特卡罗方法的ldpc译码器构造方法,包括以下步骤:
s1:通过生成矩阵g、接收信号y和事先给定的最大迭代次数max构造ldpc的mcmc译码算法;
s2:在ldpc的mcmc译码算法的基础上构造ldpc的mcmc-s译码算法;
s3:通过生成矩阵g、接收信号y和事先给定的扩展路径数l构造ldpc的mcmc-l译码算法。
进一步,所述步骤s1包括以下步骤:
s1.1:通过硬判决结果初始化二进制信息向量x,得到初始化后的二进制信息向量x(0);
s1.2:设置第一迭代计数器的总次数为max,令第一迭代计数器迭代变量j=1;
s1.3:设置第二迭代计数器的总次数为k,令第二迭代计数器迭代变量i=1;k为二进制信息向量x的长度;
s1.4:按照式(1)-(3)进行计算:
其中,xi表示二进制信息向量x的第i个比特,xi=0表示二进制信息向量x的第i个比特为0,xi=1表示二进制信息向量x的第i个比特为1,σ表示信号在空间传播过程中加入的高斯白噪声的标准差,li表示xi的对数似然比,p(xi=0)表示xi为0的概率,r是0-1间均匀分布的随机数;
s1.5:令i=i+1,并返回至步骤s1.4,直至迭代到预设次数k为止,获得第j次的迭代结果x(j),然后进入下一步操作;
s1.6:令j=j+1,并返回至步骤s1.3,直至迭代到预设次数max为止,则第max次的迭代结果x(max)为发射信息的估计。
进一步,所述步骤s2包括以下步骤:
s2.1:通过硬判决结果初始化二进制信息向量x,得到初始化后的二进制信息向量x(0);
s2.2:设置第一迭代计数器的总次数为k,令第一迭代计数器迭代变量i=1;
s2.3:按照式(4)进行计算:
式(4)中,
s2.4:令i=i+1,并返回至步骤s2.3,直至迭代到预设次数k为止,然后进入下一步操作;
s2.5:对得到的di(i=1,2,...,k)按升序排序,将排序结果存储在向量s中,以此作为后续更新比特的顺序;s中的第p个元素sp存储的是在di升序中排第p位的元素的下标;
s2.6:设置第二迭代计数器的总次数为max,令第二迭代计数器迭代变量j=1;
s2.7:设置第三迭代计数器的总次数为k,令第三迭代计数器迭代变量p=1;
s2.8:按照式(5)-(8)进行计算:
其中,n表示接收信号y的长度,σ*表示对信道中加入噪声的标准差修正后的结果,
s2.9:令p=p+1,并返回至步骤s2.8,直至迭代到预设次数k为止,获得第j次的迭代结果x(j),然后进入下一步操作;
s2.10:令j=j+1,并返回至步骤s2.7,直至迭代到预设次数max为止,则第max次的迭代结果x(max)为发射信息的估计。
进一步,所述步骤s3包括以下步骤:
s3.1:用全零向量初始化x1=x2=...=xl;其中,xu为第u条路径上的二进制信息向量,1≤u≤l,l为事先给定的扩展路径数;
s3.2:设置第一迭代计数器的总次数为k,令第一迭代计数器迭代变量i=1;
s3.3:设置第二迭代计数器的总次数为l,令第二迭代计数器迭代变量p=1;
s3.4:按照式(9)赋值:
式(9)中,
s3.5:设置第三迭代计数器的总次数为2l,令第三迭代计数器迭代变量j=1;
s3.6:按照式(10)进行计算:
dj'=||y-gxj||22(10)
式(10)中,dj'是对各路径上的二进制信息向量的一种度量,用于得到最终需要保留的路径;xj表示第j条路径上的二进制信息向量;
s3.7:对得到的dj'(i=1,2,...,k)按升序排序,将排序结果存储在向量s中,用于得到最终需要保留的l条路径;
s3.8:令j=j+1,并返回至步骤s3.6,直至迭代到预设次数2l为止,然后进入下一步操作;
s3.9:按照式(11)赋值:
式(11)中,
s3.10:令p=p+1,并返回至步骤s3.4,直至迭代到预设次数l为止,然后进入下一步操作;
s3.11:令i=i+1,并返回至步骤s2.3,直至迭代到预设次数k为止,则第1条路径上的二进制信息向量x1为发射信息的估计。
进一步,所述ldpc译码器的传输公式为:
y=gx+n(12)
式(12)中,向量n∈cn是每一项服从均值为0、方差为σ2的加性高斯白噪声,x是k×1维的二进制信息向量,y是n×1维的接收向量,n表示码长,k表示信息比特长度。
有益效果:本发明公开了一种基于马尔可夫蒙特卡罗方法的ldpc译码器构造方法,与经典的ldpc的bp译码算法相比,本发明在短码上具有一定优势。实验结果显示,本发明提出的优化译码方法较bp译码在信噪比约为10-3时,有超过1db的性能增益。解决了bp中存在的码长较短时性能不好的问题,可以用于下一代移动通信以满足其对于ldpc译码的要求。
附图说明
图1是ldpc-mcmc算法的详细算法图;
图2是ldpc-mcmc-s算法的详细算法图;
图3是ldpc-mcmc-l算法的详细算法图;
图4是接收信号向量长度和信息向量长度分别为20和10时,本发明方法(mcmc、mcmc-s、mcmc-l)与传统bp译码方法译码结果的误码率表现比较图;
图5是接收信号向量长度和信息向量长度分别为32和16时,本发明方法(mcmc、mcmc-s、mcmc-l)与传统bp译码方法译码结果的误码率表现比较图;
图6是mcmc-l的硬件架构图;
图7是mcmc-l的硬件架构图中计算模块的细节图。
具体实施方式
下面结合具体实施方式和附图对本发明的技术方案作进一步的介绍。
本具体实施方式公开了一种基于马尔可夫蒙特卡罗方法的ldpc译码器构造方法,包括以下步骤:
s1:通过生成矩阵g、接收信号y和事先给定的最大迭代次数max构造ldpc的mcmc译码算法,称作ldpc-mcmc算法,ldpc-mcmc算法如图1所示;
s2:在ldpc的mcmc译码算法的基础上构造ldpc的mcmc-s译码算法,称作ldpc-mcmc-s算法,ldpc-mcmc-s算法如图2所示;
s3:通过生成矩阵g、接收信号y和事先给定的扩展路径数l构造ldpc的mcmc-l译码算法,称作ldpc-mcmc-l算法,ldpc-mcmc-l算法如图3所示。
步骤s1包括以下步骤:
s1.1:通过硬判决结果初始化二进制信息向量x,得到初始化后的二进制信息向量x(0);
s1.2:设置第一迭代计数器的总次数为max,令第一迭代计数器迭代变量j=1;
s1.3:设置第二迭代计数器的总次数为k,令第二迭代计数器迭代变量i=1;k为二进制信息向量x的长度;
s1.4:按照式(1)-(3)进行计算:
其中,xi表示二进制信息向量x的第i个比特,xi=0表示二进制信息向量x的第i个比特为0,xi=1表示二进制信息向量x的第i个比特为1,σ表示信号在空间传播过程中加入的高斯白噪声的标准差,li表示xi的对数似然比,p(xi=0)表示xi为0的概率,r是0-1间均匀分布的随机数;
s1.5:令i=i+1,并返回至步骤s1.4,直至迭代到预设次数k为止,获得第j次的迭代结果x(j),然后进入下一步操作;
s1.6:令j=j+1,并返回至步骤s1.3,直至迭代到预设次数max为止,则第max次的迭代结果x(max)为发射信息的估计。
步骤s2包括以下步骤:
s2.1:通过硬判决结果初始化二进制信息向量x,得到初始化后的二进制信息向量x(0);
s2.2:设置第一迭代计数器的总次数为k,令第一迭代计数器迭代变量i=1;
s2.3:按照式(4)进行计算:
式(4)中,
s2.4:令i=i+1,并返回至步骤s2.3,直至迭代到预设次数k为止,然后进入下一步操作;
s2.5:对得到的di(i=1,2,...,k)按升序排序,将排序结果存储在向量s中,以此作为后续更新比特的顺序;s中的第p个元素sp存储的是在di升序中排第p位的元素的下标;
s2.6:设置第二迭代计数器的总次数为max,令第二迭代计数器迭代变量j=1;
s2.7:设置第三迭代计数器的总次数为k,令第三迭代计数器迭代变量p=1;
s2.8:按照式(5)-(8)进行计算:
其中,n表示接收信号y的长度,σ*表示对信道中加入噪声的标准差修正后的结果,
s2.9:令p=p+1,并返回至步骤s2.8,直至迭代到预设次数k为止,获得第j次的迭代结果x(j),然后进入下一步操作;
s2.10:令j=j+1,并返回至步骤s2.7,直至迭代到预设次数max为止,则第max次的迭代结果x(max)为发射信息的估计。
步骤s3包括以下步骤:
s3.1:用全零向量初始化x1=x2=...=xl;其中,xu为第u条路径上的二进制信息向量,1≤u≤l,l为事先给定的扩展路径数;
s3.2:设置第一迭代计数器的总次数为k,令第一迭代计数器迭代变量i=1;
s3.3:设置第二迭代计数器的总次数为l,令第二迭代计数器迭代变量p=1;
s3.4:按照式(9)赋值:
式(9)中,
s3.5:设置第三迭代计数器的总次数为2l,令第三迭代计数器迭代变量j=1;
s3.6:按照式(10)进行计算:
dj'=||y-gxj||22(10)
式(10)中,dj'是对各路径上的二进制信息向量的一种度量,用于得到最终需要保留的路径;xj表示第j条路径上的二进制信息向量;
s3.7:对得到的dj'(i=1,2,...,k)按升序排序,将排序结果存储在向量s中,用于得到最终需要保留的l条路径;
s3.8:令j=j+1,并返回至步骤s3.6,直至迭代到预设次数2l为止,然后进入下一步操作;
s3.9:按照式(11)赋值:
式(11)中,
s3.10:令p=p+1,并返回至步骤s3.4,直至迭代到预设次数l为止,然后进入下一步操作;
s3.11:令i=i+1,并返回至步骤s2.3,直至迭代到预设次数k为止,则第1条路径上的二进制信息向量x1为发射信息的估计。
ldpc译码器的传输公式为:
y=gx+n(12)
式(12)中,向量n∈cn是每一项服从均值为0、方差为σ2的加性高斯白噪声,x是k×1维的二进制信息向量,y是n×1维的接收向量,n表示码长,k表示信息比特长度。
对本具体实施方式的方法与经典bp译码算法进行对比,结果如图4、5所示。
从图4、5中可以看出,本发明在码长较短时:(20,10)和(32,16)情境下,较传统bp算法有明显的性能提升。本发明提出的优化译码方法较bp译码在信噪比约为10-3时,有超过1db的性能增益。解决了bp中存在的码长较短时性能不好的问题,可以用于下一代移动通信以满足其对于ldpc译码的要求。
就计算复杂度而言,由于本发明的算法均包含乘、加、比较和排序的操作,计算复杂度较传统bp算法有所提高。然而,由于这些方法均是为短码设计,所需的复杂度还是相对较低,结合使用本方案所获得的性能提升,付出的计算量代价可以被接受。
最后,本发明给出了本发明之一实例mcmc-l的硬件架构图,图6,和具体的计算模块细节图,图7,以供参考。
图6显示的mcmc-l硬件架构图,先进行初始化操作,接着分别计算dj'和dj+l'(j=1,2,…,l),然后再进行排序和重新迭代直到到达最大迭代次数max。
图7是对dj'和dj+l'计算模块的具体展示。其中,⊕和⊕中含‘2’表示的分别是加法和二进制加法。假设g是以列向量形式存储,且gi表示g矩阵的第i个列向量。用图7的运算过程可以用较低的复杂度实现dj'和dj+l'的计算。