CN113890543B - 基于多层感知神经网络的多进制ldpc码的译码方法 - Google Patents
基于多层感知神经网络的多进制ldpc码的译码方法 Download PDFInfo
- Publication number
- CN113890543B CN113890543B CN202111175302.9A CN202111175302A CN113890543B CN 113890543 B CN113890543 B CN 113890543B CN 202111175302 A CN202111175302 A CN 202111175302A CN 113890543 B CN113890543 B CN 113890543B
- Authority
- CN
- China
- Prior art keywords
- bit
- decoding
- error
- neural network
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000008447 perception Effects 0.000 title claims abstract description 12
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 71
- 230000005540 biological transmission Effects 0.000 claims abstract description 17
- 239000011159 matrix material Substances 0.000 claims description 19
- 238000013507 mapping Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 10
- 238000004088 simulation Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 claims description 8
- 229910002056 binary alloy Inorganic materials 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 230000008054 signal transmission Effects 0.000 claims description 3
- 238000006467 substitution reaction Methods 0.000 claims description 3
- 238000012549 training Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 6
- 238000011160 research Methods 0.000 abstract description 5
- 229910002059 quaternary alloy Inorganic materials 0.000 abstract 1
- 238000012937 correction Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了基于多层感知神经网络的多进制LDPC码的译码方法,属于通信技术领域,具体包括接收符号数据信息、FHT‑BP译码算法、多层感知神经网络译码、判决条件、比特翻转及输出判定的比特流;其中,接收符号数据信息是由接收端直接从信道得到的数据,之后对信息进行FHT‑BP译码算法,译码得到的比特数据经过神经网络处理之后得到最可能出错的比特位置,将最可能出错的数据翻转过来继续下一步的算法译码,满足译码条件则判决输出比特从而进行误码判定。本发明对四进制下的LDPC码译码进行研究,提出多层感知器(MLP)神经网络级联比特翻转的方法进行译码,能够较大的提升译码性能,非常适合高精度传输的应用场景。
Description
技术领域
本发明属于通信技术领域,具体涉及基于多层感知神经网络的多进制LDPC码的译码方法。
背景技术
信道编码理论和高阶调制技术是目前通信系统的重要组成部分。信道编码通过增加冗余数据来实现检错和纠错功能,提高通信系统的可靠性,而调制技术能够获得系统功率的有效性和可靠性的折中。低密度奇偶校验(LDPC)码由稀疏矩阵定义具有非常接近香农极限的纠错性能,是信道编码领域中的一个重要研究方向。二进制的LDPC码已在多个领域得到应用,如深空通信、光纤通信、卫星数字视频和音频广播等领域,均具有不错的纠错和检错的性能。作为LDPC码的研究方向的一个重要延伸,多进制LDPC码(NB-LDPC)的出现对于纠错码理论具有十分重要的意义。对比于二进制LDPC码,NB-LDPC码具有更加优异的纠错性能,更加强大的抗突发错误能力以及更适合高速率传输等优点,因其更好的误码性能逐渐成为研究热点。
常见的多进制LDPC码译码算法,如置信传播(BP)译码算法、扩展最小和(EMS)译码算法、基于对数域的置信传播译码(Log-BP)算法、基于哈达码变换的置信传播(FHT-BP)算法等等,这些算法的译码均有一个译码上限,对于高精度传输的情况下效果可能不够理想。因此寻找到一种译码效果更佳的算法成为研究NB-LDPC码的一个重要方向。
发明内容
针对现有技术中存在的上述问题,本发明根据多进制LDPC码的码字结构,对GF(4)下的LDPC码译码进行研究,在FHT-BP算法的基础上提出一种基于多层感知神经网络的多进制LDPC码的译码方法,该译码方法能够提升误码性能,达到更好的传输效果。
为实现上述目的,本发明采用以下技术方案:
基于多层感知神经网络的多进制LDPC码的译码方法,具体包括接收符号数据信息、FHT-BP译码算法、多层感知神经网络译码、判决条件、比特翻转及输出判定的比特流;其中,接收符号数据信息是由接收端直接从信道得到的数据,之后对信息进行FHT-BP译码算法,译码得到的比特数据经过神经网络处理之后得到最可能出错的比特位置,将最可能出错的数据翻转过来继续下一步的算法译码,满足译码条件则判决输出比特从而进行误码判定。
基于多层感知神经网络的多进制LDPC码的译码方法,具体包括如下步骤:
步骤S1:接收符号数据信息;
利用MATLAB软件仿真实际信号传输的传输过程,在发送端随机生成二进制序列并将其映射为QPSK信号,通过公式(1)在接收端计算出QPSK信号的概率值fn(α),即为信道的初始消息;
其中,n为码长,α取值{0,1,2,3}为4进制下的点,为接收的符号,Xm为星座图上每一个点的位置,δ2为加入噪声的方差;
步骤S2:FHT-BP译码算法,具体包括如下步骤:
步骤S201:初始化;
利用步骤S1计算出的fn(α)初始化变量节点消息,定义变量节点消息为
步骤S202:经过置换节点;
译码消息经过置换节点进行重新排列,实质上是输出消息与置换节点的权重hAB(校验矩阵A行B列的值)进行有限域上的除法;
步骤S203:校验节点更新;
通过置换节点的信息传递给校验节点:
步骤S204:消息逆置换;
与之前的步骤S202中置换过程互逆,乘法在有限域中进行;
步骤S205:变量节点更新;
通过置换节点的信息传递给变量节点;
αmn为归一化因子;
步骤S206:判决;
找到每一个变量节点的最大值,作为输出结果;
αn为归一化因子,之后判定是否满足判决条件之一,否则继续执行步骤S2;
其中,m:校验节点;n:变量节点;M(n):与n相连的所有m集合;M(n)\m与n相连的m中去除m的M(n)集合;N(m)与m相连的所有n集合;N(m)\n与m相连的n中去除n的N(m)集合;m传递给n的消息;/>经过置换节点传递给n的消息;/>n传给码m的消息;经过置换节点传递给m的消息;fn(α)信道初始消息,第n个码元cn取值为α的概率;
步骤S3:多层感知神经网络(MLP)译码;
将步骤S2中输出的判决符号转化成2进制比特流,将其输入到MLP译码器中可以得到一组输出值,通过输出的值来判断可能出现错误的比特位置;其判断依据如下:找到输出值中前5个最大的值,同时参考Tanner图以及加法乘法模拟运算规则,可以判断出出现错误的位置,利用错误位置进行步骤S5比特翻转。
步骤S4:判决条件,具体如下:
(1)、达到初始时设定的最大的迭代次数,其中LDPC(10,5)的迭代次数设定50次,LDPC(128,64)和LDPC(256,128)选择100次。
(2)、根据接收到的符号数据信息,得到满足式公式(12)的码字向量c;
H·c′=0 (12)
其中,H为校验矩阵,c为接收到的码字向量,c′表示c的转置;
步骤S5:比特翻转;
由步骤S3中MLP译码可得到出现错误的比特位置,即译码器的输出不为0的位置,依据错误比特位置对相应符号的概率值进行翻转;首先根据这些错误位置构建出错误组合,将错误组合再输入到MLP译码器中,得到误差E最小的7个组合作为之后翻转的位置下标;将数据信息的概率值按照大小进行排序,翻转的方法是最大的概率值与第二大的概率值进行交换,比较是否满足判决条件,若满足则结束,反之与第三大的值进行交换,直到达到判决条件;
步骤S6:输出判定的比特流;
若满足步骤S4的判定条件时此刻算法终止,输出步骤S2中的判决符号,并将4进制符号转化成2进制比特流,对比输入的2比特流来判断此时的误码率情况。
优选地,步骤S1具体如下:将2进制的(0,0)、(0,1)、(1,0)和(1,1)映射成0、1、2和3符号,再通过LDPC编码加入冗余码构成发送端的信号,分别将{0,1,2,3}这4个星座点转化成IQ两路信号,其中I路信号表示实部映射用i表示,J路信号表示虚部映射用j表示;对应IQ两路信号具体的值为{0.707i+0.707j,-0.707i+0.707j,0.707i-0.707j,-0.707i-0.707j},通过加入高斯白噪声模拟实际的传输噪声,在接受端接收到QPSK信号的IQ两路的数值,利用公式(1)来计算出{0,1,2,3}这4个符号的概率值;
其中,n为码长,α取值{0,1,2,3}为4进制下的点,为接收的符号,Xm为星座图上每一个点的位置,δ2为加入噪声的方差。
优选地,步骤S3中所述的神经网络译码器是基于Tanner图或奇偶校验矩阵构造;如果码字为二进制,校验节点之间运算关系实际上是亦或函数,该函数用公式(8)进行仿真;
其中,x,y分别为二进制数,为亦或符号;
具体操作如下,将0、1、2和3符号转换成2进制下的(0,0)、(0,1)、(1,0)和(1,1),利用比特之间运算使其模拟GF(4)下的符号运算规则如下表1所示,表中行代表着不同的校验位;(a1,b1)、(a2,b2)分别代表校验位和信息位的转化,(o1,o2)代表信息位与校验位计算之后输出的结果,实际校验位输出O用下式(9)表示;
o=2*o1+o2 (9)
其中,(o1,o2)代表信息位与校验位计算之后输出的结果,实际校验位输出为0;
该译码器结构与现有其他算法译码不同,网络的输入实际上是从步骤S2中得到的得到二进制码流,而现有的译码器均输入的为符号概率值;
表1:加法乘法模拟运算表格
其中,(a1,b1)、(a2,b2)分别代表校验位以及信息位转化为二进制下的状态,(o1,o2)代表二进制下信息位与校验位计算之后输出的结果;
采用梯度下降算法进行神经网络训练,网络输出0实际上与Tanner图的校验节点输出相同;因此,网络必须训练这些输出使其逐渐达到期望值0,神经网络译码器的平方和误差函数E表达式如下:
其中,k为校验节点数目,ei表示单个误差值,Oi为每个校验位输出的误差;
在MLP神经网络中,需要对接收到的变量节点信息进行更新处理,处理的依据就是使误差函数E达到最小,如公式(11)所示;表示变量节点c的变化情况,其中,η为学习率;
其中,E表示误差,ei表示单个误差值,η为学习率,k为校验节点的个数,ΔCj为码字的变化量,Oi为每个校验位输出的误差,Cj为第j个码字。
优选地,步骤S3中的神经网络译码器的参数选择如下,误差阈值E以及学习率分别选择0.1和0.05。
与现有技术相比,本发明的优点如下:
本发明针对四进制LDPC码进行译码,在原有FHT-BP算法的基础上提出了一种基于MLP神经网络级联比特翻转的译码算法,译码过程中通过神经网络能够挑选出接收码字中错误概率最大的比特,并将其翻转过来再次运行FHT-BP算法。该方法展现了一个不错的译码效果,在相同误码率的情况下相较于传统的FHT-BP算法增益有明显提升,虽然增加了一些复杂度,在今后的信道编码方面的应用中有较广阔的场景,尤其是应用在高精度传输的情形下。
附图说明
图1:本发明所述的算法级联译码流图;
图2:本发明所述的QPSK信号星座映射图;
图3:实例所述的LDPC(10,5)下码字校验矩阵H示意图;
图4:实例所述的LDPC(10,5)下H矩阵下的Tanner图;
图5:实例所述的LDPC(10,5)下GF(4)MLP神经网络译码器;
图6:LDPC(10,5)下FHT-BP算法以及FHT-BP-MLP-BF两种译码算法对比示意图。
图7:LDPC(128,64)下FHT-BP算法以及FHT-BP-MLP-BF两种译码算法对比示意图。
图8:LDPC(256,128)下FHT-BP算法以及FHT-BP-MLP-BF两种译码算法对比示意图。
具体实施方式
下面结合附图和具体实例方案对本发明进行详细说明。
实施例1
基于多层感知神经网络的多进制LDPC码的译码方法,具体包括如下步骤:
步骤S1:接收符号数据信息;
利用MATLAB软件仿真实际信号传输的传输过程,在发送端随机生成二进制序列并将其映射为QPSK信号,通过公式(1)在接收端计算出QPSK信号的概率值fn(α),即为信道的初始消息;
其中,n为码长,α取值{0,1,2,3}为4进制下的点,为接收的符号,Xm为星座图上每一个点的位置,δ2为加入噪声的方差;
具体如下:将2进制的(0,0)、(0,1)、(1,0)和(1,1)映射成0、1、2和3符号,星座图如图2所示。再通过LDPC编码加入冗余码构成发送端的信号,分别将{0,1,2,3}这4个星座点转化成IQ两路信号,其中I路信号表示实部映射用i表示,J路信号表示虚部用j表示;对应IQ两路信号具体的值为{0.707i+0.707j,-0.707i+0.707j,0.707i-0.707j,-0.707i-0.707j},通过加入高斯白噪声模拟实际的传输噪声,在接受端接收到QPSK信号的IQ两路的数值,利用公式(1)来计算出{0,1,2,3}这4个符号的概率值;
其中,n为码长,α取值{0,1,2,3}为4进制下的点,为接收的符号,Xm为星座图上每一个点的位置,δ2为加入噪声的方差。
步骤S2:FHT-BP译码算法,具体包括如下步骤:
步骤S201:初始化;
利用步骤S1计算出的fn(α)初始化变量节点消息,定义变量节点消息为
步骤S202:经过置换节点;
译码消息经过置换节点进行重新排列,实质上是输出消息与置换节点的权重hAB(校验矩阵A行B列的值)进行有限域上的除法;
步骤S203:校验节点更新;
通过置换节点的信息传递给校验节点:
步骤S204:消息逆置换;
与之前的步骤S202中置换过程互逆,乘法在有限域中进行;
步骤S205:变量节点更新;
通过置换节点的信息传递给变量节点;
αmn为归一化因子;
步骤S206:判决;
找到每一个变量节点的最大值,作为输出结果;
αn为归一化因子,之后判定是否满足判决条件之一,否则继续执行步骤S2;
其中,m:校验节点;n:变量节点;M(n):与n相连的所有m集合;M(n)\m与n相连的m中去除m的M(n)集合;N(m)与m相连的所有n集合;N(m)\n与m相连的n中去除n的N(m)集合;m传递给n的消息;/>经过置换节点传递给n的消息;/>n传给码m的消息;经过置换节点传递给m的消息;fn(α)信道初始消息,第n个码元cn取值为α的概率;
步骤S3:多层感知神经网络(MLP)译码;
将步骤S2中输出的判决符号转化成2进制比特流,将其输入到MLP译码器中可以得到一组输出值,通过输出的值来判断可能出现错误的比特位置;其判断依据如下:找到输出值中前5个最大的值,同时参考Tanner图以及加法乘法模拟运算规则,可以判断出出现错误的位置,利用错误位置进行步骤S5比特翻转。
步骤S3中所述的神经网络译码器是基于Tanner图或奇偶校验矩阵构造;如果码字为二进制,校验节点之间运算关系实际上是亦或函数,该函数用公式(8)进行仿真;
其中,x,y分别为二进制数,为亦或符号;
具体操作如下,将0、1、2和3符号转换成2进制下的(0,0)、(0,1)、(1,0)和(1,1),利用比特之间运算使其模拟GF(4)下的符号运算规则如下表1所示,表中行代表着不同的校验位;(a1,b1)、(a2,b2)分别代表校验位和信息位的转化,(o1,o2)代表信息位与校验位计算之后输出的结果,实际校验位输出0可用下式(9)表示;
o=2*o1+o2 (9)
其中(o1,o2)代表信息位与校验位计算之后输出的结果,实际校验位输出为0;该译码器结构与现有其他算法译码不同,网络的输入实际上是从步骤S2中得到的得到二进制码流,而现有的译码器均输入的为符号概率值;
表1:加法乘法模拟运算表格
其中,(a1,b1)、(a2,b2)分别代表校验位以及信息位转化为二进制下的状态,(o1,o2)代表二进制下信息位与校验位计算之后输出的结果;
译码器的构建主要依据表1以及Tanner图,类似是将步骤S2的公式运算过程模拟出来,主要区别就是步骤S2运算的是符号概率值,而神经网络是输入的为比特。采用MLP译码器结构能够简化我们的运算过程,使我们更加快速地得到想要的结果。
本发明采用梯度下降算法进行神经网络训练,网络输出O实际上与Tanner图的校验节点输出相同;因此,网络必须训练这些输出使其逐渐达到期望值0。神经网络译码器的平方和误差函数E表达式如下:
其中,k为校验节点数目,ei表示单个误差值,Oi为每个校验位输出的误差;
在MLP神经网络中,需要对接收到的变量节点信息进行更新处理,处理的依据就是使误差函数E达到最小,如公式(11)所示;表示变量节点c的变化情况,其中,η为学习率;
其中,E表示误差,ei表示单个误差值,η为学习率,k为校验节点的个数,ΔCj为码字的变化量,Oi为每个校验位输出的误差,Cj为第j个码字。
步骤S4:判决条件,具体如下:
(1)、达到初始时设定的最大的迭代次数,其中LDPC(10,5)的迭代次数设定50次,LDPC(128,64)和LDPC(256,128)选择100次。
(2)、根据接收到的符号数据信息,得到满足式公式(12)的码字向量c;
H·c′=0 (12)
其中,H为校验矩阵,c为接收到的码字向量,c′表示c的转置;
步骤S5:比特翻转;
由步骤S3中MLP译码可得到出现错误的比特位置,即译码器的输出不为0的位置,依据错误比特位置对相应符号的概率值进行翻转;首先根据这些错误位置构建出错误组合,将错误组合再输入到MLP译码器中,得到误差E最小的7个组合作为之后翻转的位置下标;将数据信息的概率值按照大小进行排序,翻转的方法是最大的概率值与第二大的概率值进行交换,比较是否满足判决条件,若满足则结束,反之与第三大的值进行交换,直到达到判决条件;
步骤S6:输出判定的比特流;
若满足步骤S4的判定条件时此刻算法终止,输出步骤S2中的判决符号,并将4进制符号转化成2进制比特流,对比输入的2比特流来判断此时的误码率情况。
实施例2
本发明建立了一种基于FHT-BP算法的MLP神经网络级联比特翻转的译码算法,其译码算法流程图如图1所示。该算法流程由接收符号数据信息、FHT-BP译码算法、多层感知神经网络(MLP)译码、判决条件、比特翻转、输出判定的比特流共6部分组成。其中最关键的就是FHT-BP译码算法以及MLP译码,FHT-BP译码算法在本发明中主要用来降低误码,而MLP译码是对前一个算法的补充,防止其陷入一个译码误区从而导致译码出错。本实例中,采用图3的校验矩阵以及其对应的Tanner图,结合步骤S3构建出译码器结构如图5所示。一个标准的Tanner图通常由3个组成部分:变量节点、校验节点及表示二者有关系的连接边组成。其中每一个变量节点都表示校验矩阵的一列,每个校验节点都表示一个校验方程。图3和图4分别为4进制LDPC码的校验矩阵及Tanner图,通过对信号进行LDPC编码再经过信道传输,其传输流程如步骤S1前半部分,对接受端信号进行译码,对比传统的译码FHT-BP算法来验证本次发明的实际效果。
实例2中神经网络译码器结构如图5所示,整个系统传输比特约为10万个,信道选择为加性高斯白噪声(AWGN)信道,信号的调制方式为QPSK,整体的译码迭代次数为50次,第一次执行到步骤S1的译码次数为20次,其余的为5次,也就是说最多可以进行7次FHT-BP算法,最多翻转6次。
LDPC(10,5)下的两种算法译码效果如图6所示,通过图形可以得到,在相同信噪比的条件下本发明提出的算法误码低于传统的FHT-BP算法。当BER为10-7时也就是无误码传输的情况下,该算法约有1dB信噪比性能提升。同时该算法可以通过减少第一次FHT-BP算法的迭代次数来降低误码平层的影响,总体来说本发明中算法性能比较优异。
实施例3
实例3的总体流程和例2一致,仅改变了检验矩阵的大小变为64行128列,MLP神经网络的构建依旧采用与例2相同的方法。实例3中整个系统传输比特约为10万个,信道仍选择为AWGN信道,信号的调制方式为QPSK,整体的译码迭代次数为100次。第一次执行到步骤S1的译码次数为30次,其余的执行10次,就是说明最多进行8次FHT-BP算法,最多翻转7次。
LDPC(128,64)下两种算法译码结果如图7所示,由图形可以得到在相同信噪比的条件下本发明提出的算法误码低于传统的FHT-BP算法。当BER为10-7时也就是无误码传输的情况下,该算法较FHT-BP算法约有0.9dB信噪比的性能提升。这也进一步说明了本发明中提出算法的精确性。
实施例4
在例2与例3的基础之上仍只改变了检验矩阵的大小,新的矩阵变为行是128列为256,MLP神经网络的构建依旧不变。在实例4中整个系统传输比特约为10万个,信道选择为AWGN信道同时信号的调制方式为QPSK,整体的译码迭代次数为100次。第一次执行到步骤S1的译码次数为30次,其余的执行10次,就是说明最多进行8次FHT-BP算法,最多翻转7次。
LDPC(256,128)下两种算法译码结果如图8所示,从图形可以看出当BER为10-7时,本发明提出的算法误码低于传统的FHT-BP算法,该算约有0.75dB信噪比的性能提升。例2、例3和例4均验证了本发明提出的算法精确性,虽然增加了部分复杂度,但提升效果明显非常适合高精度传输。
对本发明所述的四进制LDPC码译码算法进行了详细的介绍,以上的介绍主要是为了用于对本发明的方法及其核心思想进一步的理解;同时,对于本领域的一般技术人员,根据本发明的思想,再具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制,在不背离本发明所述方法的精神和权利要求范围的情况下,对其进行的各种显而易见的改变(如校验矩阵的变化,比特翻转算法以及神经网络参数的数值大小等)都在本发明的保护范围之内。
Claims (3)
1.基于多层感知神经网络的多进制LDPC码的译码方法,其特征在于,具体包括如下步骤:接收符号数据信息、FHT-BP译码算法、多层感知神经网络译码、判决条件、比特翻转及输出判定的比特流;其中,接收符号数据信息是由接收端直接从信道得到的数据,之后对信息进行FHT-BP译码算法,译码得到的比特数据经过神经网络处理之后得到最可能出错的比特位置,将最可能出错的数据翻转过来继续下一步的算法译码,满足译码条件则判决输出比特从而进行误码判定;
所述译码方法具体包括如下步骤:
步骤S1:接收符号数据信息;
利用MATLAB软件仿真实际信号传输的传输过程,在发送端随机生成二进制序列并将其映射为QPSK信号,通过公式(1)在接收端计算出QPSK信号的概率值fn(α),即为信道的初始消息;
其中,n为码长,α取值{0,1,2,3}为4进制下的点,为接收的符号,Xm为星座图上每一个点的位置,δ2为加入噪声的方差;
步骤S2:FHT-BP译码算法,具体包括如下步骤:
步骤S201:初始化;
利用步骤S1计算出的fn(α)初始化变量节点消息,定义变量节点消息为
步骤S202:经过置换节点;
译码消息经过置换节点进行重新排列,实质上是输出消息与置换节点的权重hAB进行有限域上的除法;其中,hAB为校验矩阵A行B列的值;
步骤S203:校验节点更新;
通过置换节点的信息传递给校验节点:
步骤S204:消息逆置换;
与之前的步骤S202中置换过程互逆,乘法在有限域中进行;
步骤S205:变量节点更新;
通过置换节点的信息传递给变量节点;
αmn为归一化因子;
步骤S206:判决;
找到每一个变量节点的最大值,作为输出结果;
αn为归一化因子,之后判定是否满足判决条件之一,否则继续执行步骤S2;
其中,m:校验节点;n:变量节点;M(n):与n相连的所有m集合;M(n)\m与n相连的m中去除m的M(n)集合;N(m)与m相连的所有n集合;N(m)\n与m相连的n中去除n的N(m)集合;m传递给n的消息;/>经过置换节点传递给n的消息;/>n传给码m的消息;/>经过置换节点传递给m的消息;fn(α)信道初始消息,第n个码元cn取值为α的概率;
步骤S3:多层感知神经网络(MLP)译码;
将步骤S2中输出的判决符号转化成2进制比特流,将其输入到MLP译码器中得到一组输出值,通过输出的值来判断出现错误的比特位置;其判断依据如下:找到输出值中前5个最大的值,同时参考Tanner图以及加法乘法模拟运算规则,判断出出现错误的位置,利用错误位置进行步骤S5比特翻转;
步骤S4:判决条件,具体如下:
(1)、达到初始时设定的最大的迭代次数,其中LDPC(10,5)的迭代次数设定50次,LDPC(128,64)和LDPC(256,128)选择100次;
(2)、根据接收到的符号数据信息,得到满足式公式(12)的码字向量c;
H·c′=0 (12)
其中,H为校验矩阵,c为接收到的码字向量,c′表示c的转置;
步骤S5:比特翻转;
由步骤S3中MLP译码得到出现错误的比特位置,即译码器的输出不为0的位置,依据错误比特位置对相应符号的概率值进行翻转;首先根据这些错误位置构建出错误组合,将错误组合再输入到MLP译码器中,得到误差E最小的7个组合作为之后翻转的位置下标;将数据信息的概率值按照大小进行排序,翻转的方法是最大的概率值与第二大的概率值进行交换,比较是否满足判决条件,若满足则结束,反之与第三大的值进行交换,直到达到判决条件;
步骤S6:输出判定的比特流;
若满足步骤S4的判定条件时此刻算法终止,输出步骤S2中的判决符号,并将4进制符号转化成2进制比特流,对比输入的2比特流来判断此时的误码率情况;
步骤S1具体如下:将2进制的(0,0)、(0,1)、(1,0)和(1,1)映射成0、1、2和3符号,再通过LDPC编码加入冗余码构成发送端的信号,分别将{0,1,2,3}这4个星座点转化成IQ两路信号,其中I路信号表示实部映射用i表示,J路信号表示虚部用j表示;对应IQ两路信号具体的值为{0.707i+0.707j,-0.707i+0.707j,0.707i-0.707j,-0.707i-0.707j},通过加入高斯白噪声模拟实际的传输噪声,在接受端接收到QPSK信号的IQ两路的数值,利用公式(1)来计算出{0,1,2,3}这4个符号的概率值。
2.如权利要求1所述的基于多层感知神经网络的多进制LDPC码的译码方法,其特征在于,步骤S3中所述的神经网络译码器是基于Tanner图或奇偶校验矩阵构造;如果码字为二进制,校验节点之间运算关系实际上是异或函数,该函数用公式(8)进行仿真;
其中,x,y分别为二进制数,为异或符号;
具体操作如下,将0、1、2和3符号转换成2进制下的(0,0)、(0,1)、(1,0)和(1,1),利用比特之间运算使其模拟GF(4)下的符号运算规则如下表1所示,表中行代表着不同的校验位;(a1,b1)、(a2,b2)分别代表校验位和信息位的转化,(o1,o2)代表信息位与校验位计算之后输出的结果,实际校验位输出O用下式(9)表示;
o=2*o1+o2(9)
其中,(o1,o2)代表信息位与校验位计算之后输出的结果,实际校验位输出为O;
表1:加法乘法模拟运算表格
其中,(a1,b1)、(a2,b2)分别代表校验位以及信息位转化为二进制下的状态,(o1,o2)代表二进制下信息位与校验位计算之后输出的结果;
采用梯度下降算法进行神经网络训练,网络输出O实际上与Tanner图的校验节点输出相同;因此,网络必须训练这些输出使其逐渐达到期望值0,神经网络译码器的平方和误差函数E表达式如下:
其中,k为校验节点数目,ei表示单个误差值,Oi为每个校验位输出的误差;
在MLP神经网络中,需要对接收到的变量节点信息进行更新处理,处理的依据就是使误差函数E达到最小,如公式(11)所示;表示变量节点c的变化情况,其中,η为学习率;
其中,E表示误差,ΔCj为码字的变化量,Cj为第j个码字。
3.如权利要求2所述的基于多层感知神经网络的多进制LDPC码的译码方法,其特征在于,步骤S3中的神经网络译码器的参数选择如下,误差阈值E以及学习率分别选择0.1和0.05。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111175302.9A CN113890543B (zh) | 2021-10-09 | 2021-10-09 | 基于多层感知神经网络的多进制ldpc码的译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111175302.9A CN113890543B (zh) | 2021-10-09 | 2021-10-09 | 基于多层感知神经网络的多进制ldpc码的译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113890543A CN113890543A (zh) | 2022-01-04 |
CN113890543B true CN113890543B (zh) | 2024-04-26 |
Family
ID=79005770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111175302.9A Active CN113890543B (zh) | 2021-10-09 | 2021-10-09 | 基于多层感知神经网络的多进制ldpc码的译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113890543B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114421972B (zh) * | 2022-01-27 | 2022-11-22 | 石家庄市经纬度科技有限公司 | 一种多进制ldpc码译码方法 |
CN116192340B (zh) * | 2023-04-27 | 2023-06-30 | 济南安迅科技有限公司 | 光通信网络中的差错控制方法和装置 |
CN117220689A (zh) * | 2023-10-19 | 2023-12-12 | 澳门理工大学 | 一种基于模型驱动深度学习的非二进制ldpc译码方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2651256A1 (en) * | 2009-01-05 | 2009-04-24 | Yuri B. Boiko | Method to control error floor in analog neural ldpc decoder |
CN106571832A (zh) * | 2016-11-04 | 2017-04-19 | 华南理工大学 | 一种多进制ldpc码级联神经网络解码方法及装置 |
CN106921396A (zh) * | 2017-03-02 | 2017-07-04 | 电子科技大学 | 一种用于ldpc码的混合译码方法 |
WO2017113507A1 (zh) * | 2015-12-29 | 2017-07-06 | 北京航空航天大学 | 一种集合译码方法和集合译码器 |
-
2021
- 2021-10-09 CN CN202111175302.9A patent/CN113890543B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2651256A1 (en) * | 2009-01-05 | 2009-04-24 | Yuri B. Boiko | Method to control error floor in analog neural ldpc decoder |
WO2017113507A1 (zh) * | 2015-12-29 | 2017-07-06 | 北京航空航天大学 | 一种集合译码方法和集合译码器 |
CN106571832A (zh) * | 2016-11-04 | 2017-04-19 | 华南理工大学 | 一种多进制ldpc码级联神经网络解码方法及装置 |
CN106921396A (zh) * | 2017-03-02 | 2017-07-04 | 电子科技大学 | 一种用于ldpc码的混合译码方法 |
Non-Patent Citations (3)
Title |
---|
基于深度学习的低复杂度LDPC译码器;杨祯琳;;电脑与电信;20200310(第03期);全文 * |
硅材料的场致线性电光效应;陈占国;赵建勋;张玉红;贾刚;刘秀环;任策;武文卿;孙鉴波;曹昆;王爽;时宝;;光学学报;20090515(第05期);全文 * |
适用于LDPC码快速译码的加权比特翻转算法(英文);马克祥;李勇朝;张海林;;中国通信;20130915(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113890543A (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113890543B (zh) | 基于多层感知神经网络的多进制ldpc码的译码方法 | |
US7519898B2 (en) | Iterative decoding of linear block codes by adapting the parity check matrix | |
US8010869B2 (en) | Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords | |
JP5506878B2 (ja) | 低密度パリティ検査符号のパリティ検査行列生成方法 | |
CN107919874B (zh) | 校验子计算基本校验节点处理单元、方法及其计算机程序 | |
KR20000067966A (ko) | 비동일 에러 보호를 갖는 통신 신호를 검출하는 방법 및 장치 | |
CN109194443B (zh) | 基于apsk星座映射的编码调制方法、可读存储介质和终端 | |
CN107231158B (zh) | 一种极化码迭代接收机、系统和极化码迭代译码方法 | |
US20060156179A1 (en) | Construction of LDPC (Low Density Parity Check) codes using GRS (Generalized Reed-Solomon) code | |
CN109921803B (zh) | 基于神经网络的高密度线性分组码译码方法 | |
CN110233628B (zh) | 极化码的自适应置信传播列表译码方法 | |
Ramabadran et al. | Blind recognition of LDPC code parameters over erroneous channel conditions | |
Jayasooriya et al. | Analysis and design of Raptor codes using a multi-edge framework | |
Nachmani et al. | Autoregressive belief propagation for decoding block codes | |
Matsumine et al. | Geometric constellation shaping for concatenated two-level multi-level codes | |
CN111130567B (zh) | 添加噪声扰动和比特翻转的极化码置信传播列表译码方法 | |
CN111034055A (zh) | 在非二进制ldpc解码器中简化的校验节点处理 | |
Jamali et al. | Low-complexity decoding of a class of Reed-Muller subcodes for low-capacity channels | |
CN108900463B (zh) | 基于apsk星座映射的编码调制系统 | |
CN116760425A (zh) | 一种ldpc码的crc辅助osd译码方法 | |
Farkaš et al. | On Soft Decoding of Some Binary RLL-Transmission Codes in Systems with Coherent BPSK Modulation | |
CN113315526A (zh) | 级联极化码比特冻结置信传播译码方法 | |
Chen et al. | FPGA implementation and verification of LDPC minimum sum algorithm decoder with weight (3, 6) regular parity check matrix | |
Gao et al. | Learning to decode polar codes with quantized LLRs passing | |
CN106921396B (zh) | 一种用于ldpc码的混合译码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |