CN109921803B - 基于神经网络的高密度线性分组码译码方法 - Google Patents
基于神经网络的高密度线性分组码译码方法 Download PDFInfo
- Publication number
- CN109921803B CN109921803B CN201910169555.1A CN201910169555A CN109921803B CN 109921803 B CN109921803 B CN 109921803B CN 201910169555 A CN201910169555 A CN 201910169555A CN 109921803 B CN109921803 B CN 109921803B
- Authority
- CN
- China
- Prior art keywords
- neural network
- code
- error correction
- code word
- setting
- 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
Images
Abstract
本发明公开了一种基于神经网络的高密度线性分组码的译码方法,具体步骤:(1)构建降噪神经网络;(2)构建纠错神经网络;(3)构建码字重排乘法器;(4)生成训练集;(5)训练降噪神经网络和纠错神经网络;(6)获得神经网络译码器;(7)译码器输出最终译码结果。本发明构建了一种译码神经网络,在接收到的高密度线性分组码字在进行纠错处理之前,先进行降噪处理,从而进一步提高了译码准确率,采用码字重排乘法器,使得循环神经网络可以学习到多进制码字中码元序列之间的关系,使得译码神经网络可以很好的对多进制RS码进行译码,提高了本发明的适用性。
Description
技术领域
本发明属于通信技术领域,更进一步涉及无线通信技术领域中的一种基于神经网络的高密度线性分组码译码方法。本发明可用于蜂窝通信、卫星通信和军事系统中对于高密度线性分组码进行译码。
背景技术
高密度线性分组码,以某种方式加入一定的控制误差用的码位从而纠正若干随机错误位,在短码和中等码长时,其纠错性能接近于理论值。接收端则按照对应的规则进行译码,但是译码过程中易出现错误。为了提高信息传输系统的整体性能,需要一种适用于高密度线性分组码的译码方法。目前,高密度线性分组码的第一种译码方法为BP译码方法。第二种译码方法为基于深度学习译码方法。
华为技术有限公司在其申请的专利文献“译码的方法和译码器”(专利申请号201310081844,公开号104052502B)中公开了一种译码的方法和译码器。该方法首先对接受码字进行二元比特映射,再确定接受码的伴随式,再根据伴随式计算错误位置多项式和错误值多项式,开始搜索错误位置和错误值,最终对接受码字进行纠错,得到译码结果。该方法存在的不足之处是,由于对码字进行二元比特映射,忽略了大量的信道软信息,导致高密度线性分组码译码性能下降的结果。
中山大学在其申请的专利文献“一种动态异步BP译码方法”(专利申请号201210050650,公开号102594365A)中公开了一种动态异步BP译码方法。该方法根据校验方程和可靠性阈值,对Tanner图中所有校验节点进行分类,再进行不同形式的消息更新译码;对Tanner图中所有变量节点进行消息更新译码,计算所有变量节点的硬判决信息,直至所有的校验方程都满足时,得到最终译码结果。该方法存在的不足之处是,由于在进行变量节点消息更新译码时,多进制RS码的Tanner图存在大量短环,使得同一消息在Tanner图中反复传递,导致BP译码方法不适用于RS码译码的结果。
发明内容
本发明的目的是针对上述现有技术存在的不足,提供一种基于神经网络的高密度线性分组码译码方法,可以有效的提高译码正确率,并适用于多进制RS码的译码。
实现本发明目的的思路是,首先搭建用于降噪的循环神经网络和用于纠错的残差神经网络,再利用加噪码字和错误码字分别来训练循环神经网络和残差神经网络,然后将两个网络级联作为神经网络译码器,有效的学习信道信息和二进制码字序列之间的关系,从而提高译码准确率。
本发明实现的具体步骤如下:
(1)构建降噪神经网络:
(1a)搭建一个至少五层循环层且最后一层为全连接层的降噪神经网络,该神经网络中循环层的层数与线性分组码的长度呈正相关;
(1b)设置降噪神经网络的各层参数;
(2)构建纠错神经网络:
(2a)搭建一个至少五层残差模块且最后一层为全连接层的纠错神经网络,该神经网络中残差模块的层数与线性分组码的长度呈正相关;
(2b)设置纠错神经网络的各层参数;
(3)构建码字重排乘法器:
搭建一个码字重排乘法器,将该乘法器的输入位数设置为n×q,乘数设置为矩阵A,输出位数设置为(k+1)×(n-k)×q,其中A为n×q行(k+1)×(n-k)×q列的0-1矩阵,k表示线性分组码的信息位长度;
(4)生成训练集:
(4a)对编码序列集通过加性高斯白噪声信道,得到加噪码字序列集,将加噪码字序列集中的每一个码字分别输入到码字重排乘法器中,将码字重排乘法器输出的所有码字组成降噪神经网络的训练集;
(4b)对编码序列集中的每一个码字分别随机生成e个错误,得到错误序列集,其中0≤e≤t,t表示线性分组码的可纠错能力;
(4c)将错误序列集中的每一个码字分别输入码字重排乘法器,将码字重排乘法器输出的所有码字组成纠错神经网络的训练集;
(5)训练降噪神经网络和纠错神经网络:
(5a)将降噪神经网络训练集中的每一个码字分别输入到降噪神经网络中,输出降噪码字,利用交叉熵函数,计算每个降噪码字与其对应的二进制编码序列的损失值,采用随机梯度下降算法,最小化所有降噪码字与编码序列集中对应的二进制编码序列的总损失值,得到训练好的降噪神经网络;
(5b)将纠错神经网络训练集中的每个码字分别输入到纠错神经网络中,输出纠错码字,利用交叉熵函数,计算每个纠错码字与其对应的二进制编码序列的损失值,采用随机梯度下降算法,最小化所有纠错码字与编码序列集中对应的二进制编码序列的总损失值,得到训练好的纠错神经网络;
(6)获得神经网络译码器:
将训练好的降噪神经网络、搭建好的码字重排乘法器、训练好的纠错神经网络依次级联,组成高密度线性分组码的神经网络译码器;
(7)输出最终译码结果:
将带有噪声的高密度线性分组码输入到神经网络译码器中,将输出的码字作为最终译码结果。
本发明与现有技术相比具有以下优点:
第一,由于本发明构建了一个降噪神经网络和纠错神经网络,充分利用了信道的软信息进行高密度线性分组码的译码,克服了现有技术中对码字进行二元比特映射时,忽略大量的信道软信息,而导致高密度线性分组码译码性能下降的不足,使得本发明提升了高密度线性分组码的译码性能。
第二,由于本发明构建了一个降噪神经网络、码字重排乘法器、纠错神经网络级联的译码器,利用高密度线性分组码中比特位的代数关系,对多进制码字进行重新排序,使得神经网络可以学习到多进制码字中码元之间的关系,克服了在进行变量节点消息更新译码时,由于多进制RS码的Tanner图存在大量短环,使同一消息在Tanner图中反复传递,导致BP译码方法不适用于RS码的不足,使得本发明可以很好的对多进制RS码进行译码。
附图说明
图1为本发明的流程图。
图2为本发明的仿真图。
具体实施方式
下面结合附图,对本发明的做进一步的描述。
参照附图1,对本发明的具体步骤做进一步的描述。
步骤1,构建降噪神经网络。
搭建一个至少五层循环层且最后一层为全连接层的降噪神经网络,该神经网络中循环层的层数与线性分组码的长度呈正相关。
所述的线性分组码的长度为n,n<1023码元。
设置降噪神经网络的各层参数如下:
将第一个循环层的神经元设置为长短期记忆神经元,输入长度设置为q,输出长度设置为30×q,其中q表示线性分组码中的每个二进制码元的比特位长度。
将第二层至倒数第二层循环层的神经元设置为长短期记忆神经元,输入长度和输出长度均设置为30×q。
将最后一层循环层的神经元设置为长短期记忆神经元,输入长度设置为30×q,输出长度设置为q。
将全连接层的神经元个数设置为n×q,其中n为线性分组码的长度。
步骤2,构建纠错神经网络。
搭建一个至少五层残差模块且最后一层为全连接层的纠错神经网络,该神经网络中残差模块的层数与线性分组码的长度呈正相关。
所述的线性分组码的长度为n,n<1023码元。
设置纠错神经网络的各层参数如下:
将第一层残差模块的输入神经元个数设置为n×q,输出神经元个数设置为3×n×q。
将第二层残差模块至最后一层残差模块的神经元个数均设置为3×n×q。
将全连接层的神经元个数设置为n×q。
步骤3,构建码字重排乘法器。
搭建一个码字重排乘法器,将该乘法器的输入位数设置为n×q,乘数设置为矩阵A,输出位数设置为(k+1)×(n-k)×q,其中A为n×q行(k+1)×(n-k)×q列的0-1矩阵,k表示线性分组码的信息位长度,形如:
其中Ik表示k×q行k×q列的单位阵,In-k表示q行q列的单位阵。输入该乘法器的码字中码元顺序表示为:
[a1,a2,...,ak,c1,c2,...,cn-k]
其中ai表示为信息位,1≤i≤k,cj表示为校验位,1≤j≤n-k,输入码字与矩阵A相乘得到的输出码字中码元顺序表示为:
[a1,a2,...,ak,c1,a1,a2,...,ak,c2,...,a1,a2,...,ak,cn-k]。
步骤4,生成训练集。
对编码序列集通过加性高斯白噪声信道,得到加噪码字序列集,将加噪码字序列集中的每一个码字分别输入到码字重排乘法器中,将序列集中的所有码字输出组成降噪神经网络的训练集。
所述的编码序列集为随机产生的2q进制线性分组码的编码序列集。
对编码序列集中的每一个码字分别随机生成e个错误,得到错误序列集,其中0≤e≤t,t表示线性分组码的可纠错能力。
将错误序列集中的每一个码字分别输入码字重排乘法器,将码字重排乘法器输出的所有码字组成纠错神经网络的训练集。
所述的编码序列集为随机产生的2q进制线性分组码的编码序列集。
步骤5,训练降噪神经网络和纠错神经网络。
将降噪神经网络训练集中的每一个码字分别输入到降噪神经网络中,输出降噪码字,利用交叉熵函数,计算每个降噪码字与其对应的二进制编码序列的损失值,采用随机梯度下降算法,最小化所有降噪码字与编码序列集中对应的二进制编码序列的总损失值,得到训练好的降噪神经网络。
将纠错神经网络训练集中的每个码字分别输入到纠错神经网络中,输出纠错码字,利用交叉熵函数,计算每个纠错码字与其对应的二进制编码序列的损失值,采用随机梯度下降算法,最小化所有纠错码字与编码序列集中对应的二进制编码序列的总损失值,得到训练好的纠错神经网络。
步骤6,获得神经网络译码器。
将训练完成的降噪神经网络、码字重排乘法器与纠错神经网络依次级联,得到高密度线性分组码的神经网络译码器。
步骤7,输出最终译码结果。
将带有噪声的高密度线性分组码输入到神经网络译码器中,将输出的码字作为最终译码结果。
下面结合仿真实验对本发明的效果做进一步的描述。
1、仿真实验条件:
本发明的仿真实验硬件平台为Intel酷睿i5-8300H 3.30GHz CPU、8GB RAM、NVIDIA Geforce RTX2060 GPU。本发明的仿真实验软件平台为Python 3.6和Tensorflow1.12。
2、仿真实验内容与结果分析:
本发明的仿真实验是在加性高斯白噪声信道下,用本发明和现有技术的硬判决译码方法分别对码率为0.428,码字长度为7的八进制里德-索罗门RS码进行高密度线性分组码译码。在1.5分贝,2分贝,2.5分贝,3分贝,3.5分贝,4分贝,4.5分贝,5分贝,5.5分贝,6分贝和6.5分贝的信噪比条件下,分别将本发明仿真实验得到的每个码字与其输入的码字,按照如下公式,分别计算误帧率:
其中,正确码字总数为同一信噪比条件下输出码字与输入相同的码字总数。将得到的所有误帧率,绘制误帧率曲线,如图2所示。
图2中纵坐标表示误帧率,横坐标表示比特信噪比,单位是分贝。图2中以菱形标示的曲线表示采用现有技术的硬判决译码方法对码率为0.428,码字长度为7的八进制里德-索罗门RS码进行高密度线性分组码译码仿真结果的误帧率曲线。图2中以圆形标示的曲线表示采用本发明译码方法对码率为0.428,码字长度为7的八进制里德-索罗门RS码的译码仿真结果的误帧率曲线。
从图2中的圆形曲线与菱形曲线对比可知,在比特信噪比相等的情况下,圆形曲线的误帧率低于菱形曲线的误帧率,由此可见,本发明的译码方法相比于硬判决译码方法在性能上有所提升,并且本发明的译码方法适用于多进制里德-索罗门RS码的译码。
Claims (5)
1.一种基于神经网络的高密度线性分组码译码方法,其特征在于,分别构建并训练降噪神经网络和纠错神经网络,将降噪神经网络、码字重排乘法器、纠错神经网络级联组成译码器,该方法的具体步骤包括如下:
(1)构建降噪神经网络:
(1a)搭建一个至少五层循环层且最后一层为全连接层的降噪神经网络,该神经网络中循环层的层数与线性分组码的长度呈正相关;
(1b)设置降噪神经网络的各层参数;
(2)构建纠错神经网络:
(2a)搭建一个至少五层残差模块且最后一层为全连接层的纠错神经网络,该神经网络中残差模块的层数与线性分组码的长度呈正相关;
(2b)设置纠错神经网络的各层参数;
(3)构建码字重排乘法器:
搭建一个码字重排乘法器,将该乘法器的输入位数设置为n×q,乘数设置为矩阵A,输出位数设置为(k+1)×(n-k)×q,其中A为n×q行(k+1)×(n-k)×q列的0-1矩阵,k表示线性分组码的信息位长度;
(4)生成训练集:
(4a)对编码序列集通过加性高斯白噪声信道,得到加噪码字序列集,将加噪码字序列集中的每一个码字分别输入到码字重排乘法器中,将码字重排乘法器输出的所有码字组成降噪神经网络的训练集;
(4b)对编码序列集中的每一个码字分别随机生成e个错误,得到错误序列集,其中0≤e≤t,t表示线性分组码的可纠错能力;
(4c)将错误序列集中的每一个码字分别输入码字重排乘法器,将码字重排乘法器输出的所有码字组成纠错神经网络的训练集;
(5)训练降噪神经网络和纠错神经网络:
(5a)将降噪神经网络训练集中的每一个码字分别输入到降噪神经网络中,输出降噪码字,利用交叉熵函数,计算每个降噪码字与其对应的二进制编码序列的损失值,采用随机梯度下降算法,最小化所有降噪码字与编码序列集中对应的二进制编码序列的总损失值,得到训练好的降噪神经网络;
(5b)将纠错神经网络训练集中的每个码字分别输入到纠错神经网络中,输出纠错码字,利用交叉熵函数,计算每个纠错码字与其对应的二进制编码序列的损失值,采用随机梯度下降算法,最小化所有纠错码字与编码序列集中对应的二进制编码序列的总损失值,得到训练好的纠错神经网络;
(6)获得神经网络译码器:
将训练好的降噪神经网络、搭建好的码字重排乘法器、训练好的纠错神经网络依次级联,组成高密度线性分组码的神经网络译码器;
(7)输出最终译码结果:
将带有噪声的高密度线性分组码输入到神经网络译码器中,将输出的码字作为最终译码结果。
2.根据权利要求1所述的基于神经网络的高密度线性分组码译码方法,其特征在于,步骤(1a)、步骤(2a)中所述的线性分组码的长度为n,n<1023码元。
3.根据权利要求1所述的基于神经网络的高密度线性分组码译码方法,其特征在于,步骤(1b)中所述设置降噪神经网络的各层参数如下:
将第一个循环层的神经元设置为长短期记忆神经元,输入长度设置为q,输出长度设置为30×q,其中q表示线性分组码中的每个二进制码元的比特位长度;
将第二层至倒数第二层循环层的神经元设置为长短期记忆神经元,输入长度和输出长度均设置为30×q;
将最后一层循环层的神经元设置为长短期记忆神经元,输入长度设置为30×q,输出长度设置为q;
将全连接层的神经元个数设置为n×q,其中n为线性分组码的长度。
4.根据权利要求1所述的基于神经网络的高密度线性分组码译码方法,其特征在于,步骤(2b)中所述设置纠错神经网络的各层参数如下:
将第一层残差模块的输入神经元个数设置为n×q,输出神经元个数设置为3×n×q;
将第二层残差模块至最后一层残差模块的神经元个数均设置为3×n×q;
将全连接层的神经元个数设置为n×q。
5.根据权利要求1所述的基于神经网络的高密度线性分组码译码方法,其特征在于,步骤(4a)、步骤(4b)中所述的编码序列集为随机产生的2q进制线性分组码的编码序列集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910169555.1A CN109921803B (zh) | 2019-03-06 | 2019-03-06 | 基于神经网络的高密度线性分组码译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910169555.1A CN109921803B (zh) | 2019-03-06 | 2019-03-06 | 基于神经网络的高密度线性分组码译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109921803A CN109921803A (zh) | 2019-06-21 |
CN109921803B true CN109921803B (zh) | 2021-06-25 |
Family
ID=66963548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910169555.1A Active CN109921803B (zh) | 2019-03-06 | 2019-03-06 | 基于神经网络的高密度线性分组码译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109921803B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110730009B (zh) * | 2019-09-12 | 2023-04-18 | 天津大学 | 一种基于深度学习的校验子输入rs码译码方法 |
CN112803951A (zh) * | 2019-11-14 | 2021-05-14 | 北京大学 | 一种降低通信系统接收信号的噪声的方法及接收端和通信系统 |
CN112085744B (zh) * | 2020-09-04 | 2023-11-24 | 厦门大学 | 一种基于多尺度特征学习的肾肿瘤分割方法 |
CN114389620A (zh) * | 2020-10-20 | 2022-04-22 | 华为技术有限公司 | 一种译码方法和装置 |
CN112994840B (zh) * | 2021-02-03 | 2021-11-02 | 白盒子(上海)微电子科技有限公司 | 一种基于神经网络的译码器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201218614A (en) * | 2010-03-25 | 2012-05-01 | Rohm Co Ltd | Motor driving circuit |
CN108933602A (zh) * | 2017-05-26 | 2018-12-04 | 爱思开海力士有限公司 | 用于低密度奇偶校验解码的深度学习 |
CN109215671A (zh) * | 2018-11-08 | 2019-01-15 | 西安电子科技大学 | 基于MFrSRRPCA算法的语音增强系统及方法 |
WO2019038693A1 (en) * | 2017-08-23 | 2019-02-28 | Telefonaktiebolaget Lm Ericsson (Publ) | NEURAL NETWORKS FOR DECODING |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180357530A1 (en) * | 2017-06-13 | 2018-12-13 | Ramot At Tel-Aviv University Ltd. | Deep learning decoding of error correcting codes |
-
2019
- 2019-03-06 CN CN201910169555.1A patent/CN109921803B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201218614A (en) * | 2010-03-25 | 2012-05-01 | Rohm Co Ltd | Motor driving circuit |
CN108933602A (zh) * | 2017-05-26 | 2018-12-04 | 爱思开海力士有限公司 | 用于低密度奇偶校验解码的深度学习 |
WO2019038693A1 (en) * | 2017-08-23 | 2019-02-28 | Telefonaktiebolaget Lm Ericsson (Publ) | NEURAL NETWORKS FOR DECODING |
CN109215671A (zh) * | 2018-11-08 | 2019-01-15 | 西安电子科技大学 | 基于MFrSRRPCA算法的语音增强系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109921803A (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109921803B (zh) | 基于神经网络的高密度线性分组码译码方法 | |
EP3400675B1 (en) | Concatenated and sliding-window polar coding | |
JP3727938B2 (ja) | Ldpc復号化装置及びその方法 | |
US7539920B2 (en) | LDPC decoding apparatus and method with low computational complexity algorithm | |
WO2017194013A1 (zh) | 纠错编码方法及装置 | |
CN110233628B (zh) | 极化码的自适应置信传播列表译码方法 | |
CN108809518B (zh) | 用于降低错误性能的级联Spinal码构建方法 | |
CN110278001B (zh) | 基于深度学习的极化码分区译码方法 | |
WO2019197043A1 (en) | Multi-composition coding for signal shaping | |
CN110061803B (zh) | 一种低复杂度的极化码比特交织编码调制方法 | |
CN106209305A (zh) | 一种多址信道下的喷泉码译码方法 | |
CN113890543B (zh) | 基于多层感知神经网络的多进制ldpc码的译码方法 | |
Abbasi et al. | Hybrid non-binary repeated polar codes | |
CN111835364B (zh) | 一种极化码的低复杂度神经bp译码方法 | |
CN110739977B (zh) | 一种基于深度学习的bch码译码方法 | |
CN111130567B (zh) | 添加噪声扰动和比特翻转的极化码置信传播列表译码方法 | |
CN109639290B (zh) | 一种半随机分组叠加编码及译码方法 | |
CN108880748B (zh) | 基于拉丁方阵的无速率Spinal码的编译码方法 | |
CN112104379B (zh) | 一种基于关键集的极化码置信度传播动态翻转译码方法 | |
CN110958025B (zh) | 一种基于叠加的短帧长编码及译码方法 | |
CN104993905B (zh) | 删除信道下系统lt码的度分布优化方法及编译码方法 | |
CN107612559A (zh) | 基于乘性重复的多元极化码的生成方法 | |
CN112332866A (zh) | 一种基于dvb-s与dvb-s2信号的级联码参数识别方法 | |
Li et al. | A rate-compatible punctured Polar code decoding scheme based on deep learning | |
CN104410428A (zh) | 一种基于分时的分组马尔可夫叠加编码的多码率码编码方法 |
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 |