基于马尔可夫蒙特卡罗方法的LDPC译码器构造方法与流程

文档序号:17157449发布日期:2019-03-20 00:11阅读:180来源:国知局
基于马尔可夫蒙特卡罗方法的LDPC译码器构造方法与流程

本发明涉及信号处理技术领域,特别是涉及一种基于马尔可夫蒙特卡罗方法的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)中,表示将二进制信息向量x的第i个比特翻转后的结果,di是对翻转后结果的一种度量,用于得到对x中比特的更新顺序;

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的长度,σ*表示对信道中加入噪声的标准差修正后的结果,表示经过修正后的对数似然比,表示二进制信息向量x的第sp个比特,表示为0的概率,r是0-1间均匀分布的随机数;

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)中,表示将向量xp的第i个比特翻转后的结果,xp表示第p条路径上的二进制信息向量,xl+p表示第l+p条路径上的二进制信息向量;

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)中,表示第sp条路径上的二进制信息向量;

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)中,表示将二进制信息向量x的第i个比特翻转后的结果,di是对翻转后结果的一种度量,用于得到对x中比特的更新顺序;

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的长度,σ*表示对信道中加入噪声的标准差修正后的结果,表示经过修正后的对数似然比,表示二进制信息向量x的第sp个比特,表示为0的概率,r是0-1间均匀分布的随机数;

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)中,表示将向量xp的第i个比特翻转后的结果,xp表示第p条路径上的二进制信息向量,xl+p表示第l+p条路径上的二进制信息向量;

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)中,表示第sp条路径上的二进制信息向量;

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'的计算。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1