一种基于DNN模型分析的汉明码译码方法及系统

文档序号:26746155发布日期:2021-09-24 07:08阅读:135来源:国知局
一种基于DNN模型分析的汉明码译码方法及系统

本发明属于无线通信编码技术领域,涉及一种在通信编译码中提高译码性能的简易技术方案,具体是点对点通信中基于DNN模型分析的汉明码译码方法及系统。

背景技术

通信编码中,通常在信息序列中增加一些具有线性关系的冗余序列,抵抗噪声,提高通信的可靠性。在计算机系统中,汉明码主要应用于内存(RAM)的校验和纠错。汉明码的传统译码方法为硬判决,但是误码率相对较高。神经网络译码不仅能降低误码率,而且算法简单。因神经网络具有运行速度快、信息处理能力强等优点。但是,在神经网络中,传统的浅层学习模型处理大规模数据的能力较弱,因此,有必要对现有技术进行改进和创新。



技术实现要素:

针对现有技术存在的上述问题,本发明利用DNN模型对汉明码译码,选择合适的激活函数,损失函数和优化函数,迭代更新权重和偏置,降低DNN译码的误码率,恢复出信息序列。

本发明应用场景:

通信系统中,信源随机产生长度为k的信息序列T={t1,…,tk},乘以汉明码的生成矩阵Gk×n,

C=TG (1)

得到编码后的码字C={c1,…,cn},其中,n为码长。经过BPSK调制,得到已调信号X={x1,…,xn}。随后,把X传输到高斯信道,接收端接收信号Y={y1,…,yn}

yi=μ·xi+zi,i=1,…,n (2)

其中zi~N(0,σ2),代表服从均值为0,方差为σ2的高斯噪声。

分析DNN模型,对接收信号Y进行深度神经网络译码。首先,建立输入层、输出层和隐藏层。其次,根据汉明码,调整输入和输出层神经元个数以及初始隐藏层参数。然后,令非线性的sigmod函数为隐藏层间的激活函数,其输出范围在(0,1)区间。令均方最小误差函数为损失函数,用来度量预测信息序列和原信息序列T之间的误差。接着,设损失值为10-5,运用GD优化算法对隐藏层的权重和偏置进行迭代更新,使得深度神经网络译码成功,恢复出信息序列。最后,通过仿真验证该方法的正确性。

本发明采取如下技术方案:

一种基于DNN模型分析的汉明码译码方法,其按如下步骤进行:

步骤1,进行汉明码编码;

步骤2,分析DNN模型;

步骤3,对DNN进行译码;

步骤4,通过仿真验证正确性。

优选的,步骤1,汉明码编码:

信源随机生成长度为k的信息序列T={t1,…,tk},其中ti∈{0,1},i=1,…,k。然后,将序列T乘以汉明码的生成矩阵G4×7,

得到编码后的码字C={c1,…,cn}。经过BPSK调制,得到已调序列X={x1,…,xn},其中码字和已调序列满足如下关系,

然后,把X传输到高斯信道,得到接收信号Y={y1,…,yn},

yi=μ·xi+zi,i=1,…,n (5)

其中,zi~N(0,σ2)。

优选的,步骤2,分析DNN模型:

DNN是一种全连接的前馈神经网络,由若干隐藏层和输入、输出层之间的神经元组成。DNN与传统神经网络的区别在于它的深度,即隐含层的数目和神经元的数目。隐含层和神经元数目越多,从神经网络的数据中提取的特征和模式越有意义。

在DNN模型下,令第l层第i个神经元的输入为输出为其偏置为连接着第l+1层第j个神经元的权重为第l层所具有的神经元个数为nl。在第l层和第l+1层的神经元之间,满足如下线性关系:

为了增强神经网络输出的非线性表达能力,在第l+1层的神经元上,进行非线性操作,输出为

其中,非线性函数h就是激活函数。在神经网络的数学理论中,假设选择合适的激活函数,那么含有有限个神经元的神经网络输出的预测值会逼近理论值。

为了优化神经网络,DNN使用损失函数计算误差得到损失值,把梯度下降值反馈给神经网络,根据合适的优化函数,迭代更新偏置和权重,使得预测值和理论值之间的误差最小化。在处理大量数据时,优化函数可以降低学习时间,提高学习效率。在优化函数中,通过设置参数学习速率η,控制梯度下降值。在迭代次数有限的条件下,如果学习速率过小,损失值能控制在误差范围,但其变化太慢,导致收敛时间太长。如果学习速率过大,收敛时间降低,但无法最小化损失值。

所以,选择合适的激活函数、损失函数、优化函数对神经网络至关重要。

优选的,步骤3,DNN译码原理:

与传统的硬判决译码相比,本发明利用DNN模型对汉明码进行译码。

根据(7,4)汉明码,设置输入和输出层神经元个数以及初始隐藏层参数。将接收信号Y={y1,…,yn}划分为多组序列进行DNN译码,每组接收序列的长度为7。将每组长度为7的接收序列作为DNN模型输入层,因此输入层的神经元有7个。从每组长度为7的接收序列中译出4个信息序列,所以DNN模型输出层的神经元有4个。设置三层的隐藏层,提取每组接收序列的特征信息,进行译码。

译码步骤:

3.1对长度为7的接收序列进行线性操作,得到第一层隐藏层的输入

3.2在隐藏层的神经元上,对输入信息进行非线性操作,选择非线性函数sigmod作为激活函数,即

因为sigmod激活函数分布在(0,1)范围内,且具有对称性,从而得到隐藏层神经元的输出信息

3.3在隐藏层中,经过神经元上的非线性操作和神经元间的线性操作后,得到DNN的输出信息。

其中,是输出层神经元的输入信息,就是DNN输出的预测序列

3.4计算预测序列与信息序列ti的误差,因为汉明码译码一般是比较汉明距离,因此选择均方误差(MSE)作为损失函数,度量预测序列和信息序列之间的误差,

其中,E为损失值。

3.5为了最小化LMSE,选择梯度下降(GD)算法作为优化函数,迭代更新权重和偏置

其中学习速率η=0.08。

3.6重复上述步骤3.1-3.5,使得误差E最小化,从而恢复信息序列。

本发明还公开了一种基于DNN模型分析的汉明码译码系统,包括如下模块:

汉明码编码模块,进行汉明码编码;

DNN模块分析模块,分析DNN模型;

DNN译码模块,对DNN进行译码;

仿真模块,通过仿真验证正确性。

优选的,汉明码编码模块具体如下:信源随机生成长度为k的信息序列T={t1,…,tk},其中ti∈{0,1},i=1,…,k;将序列T乘以汉明码的生成矩阵G4×7,

得到编码后的码字C={c1,…,cn};经过BPSK调制,得到已调序列X={x1,…,xn},其中码字和已调序列满足如下关系,

把X传输到高斯信道,得到接收信号Y={y1,…,yn},

yi=μ·xi+zi, i=1,…,n (5)

其中,zi~N(0,σ2)。

优选的,DNN模型分析模块具体如下:在DNN模型下,令第l层第i个神经元的输入为输出为偏置为连接着第l+1层第j个神经元的权重为第l层所具有的神经元个数为n l;在第l层和第l+1层的神经元之间,满足如下线性关系:

在第l+1层的神经元上,进行非线性操作,输出为

其中,非线性函数h是激活函数。

优选的,DNN译码模块具体如下:根据(7,4)汉明码,设置输入和输出层神经元个数以及初始隐藏层参数;将接收信号Y={y1,…,yn}划分为多组序列进行DNN译码,每组接收序列的长度为7;将每组长度为7的接收序列作为DNN模型输入层,因此输入层的神经元有7个;从每组长度为7的接收序列中译出4个信息序列,所以DNN模型输出层的神经元有4个;设置三层的隐藏层,提取每组接收序列的特征信息,进行译码;

译码步骤如下:

3.1对长度为7的接收序列进行线性操作,得到第一层隐藏层的输入

3.2在隐藏层的神经元上,对输入信息进行非线性操作,选择非线性函数sigmod作为激活函数,即

因为sigmod激活函数分布在(0,1)范围内,且具有对称性,从而得到隐藏层神经元的输出信息

3.3在隐藏层中,经过神经元上的非线性操作和神经元间的线性操作后,得到DNN的输出信息;

其中,是输出层神经元的输入信息,就是DNN输出的预测序列

3.4计算预测序列与信息序列ti的误差,因为汉明码译码一般是比较汉明距离,因此选择均方误差作为损失函数,度量预测序列和信息序列之间的误差,

其中,E为损失值;

3.5为了最小化LMSE,选择梯度下降算法作为优化函数,迭代更新权重和偏置

其中学习速率η=0.08;

3.6重复上述步骤3.1-3.5,使得误差E最小化,从而恢复信息序列。

本发明基于DNN模型的分析,选择合适的激活函数,损失函数和优化函数,迭代更新权重和偏置,对汉明码编码后的接收序列进行DNN译码,降低误码率,恢复信息序列。

附图说明

图1为(7,4)汉明码的DNN译码模型图。输入层和输出层的神经元个数分别为7和4,隐藏层层数为3,每层隐藏层的神经元数为140个。激活函数为sigmod函数,优化函数为随机梯度下降法,损失函数为最小均方误差函数,学习速率η为0.08,学习次数在2000000次左右。

图2为不同学习速率下(7,4)汉明码DNN译码的误码率。

图3为(7,4)汉明码的DNN译码与传统的硬判决译码的对比图。仿真表明,DNN译码的性能优于传统硬判决译码。

图4是本发明基于DNN模型分析的汉明码译码方法流程图。

图5是本发明基于DNN模型分析的汉明码译码系统框图。

具体实施方式

下面结合附图对本发明优选实施例作详细说明。

如图4所示,本实施例一种基于DNN模型分析的汉明码译码方法,其按如下步骤进行:

步骤1,汉明码编码:

信源随机生成长度为k的信息序列T={t1,…,tk},其中ti∈{0,1},i=1,…,k。然后,将序列T乘以汉明码的生成矩阵G4×7,

得到编码后的码字C={c1,…,cn}。经过BPSK调制,得到已调序列X={x1,…,xn},其中码字和已调序列满足如下关系,

然后,把X传输到高斯信道,得到接收信号Y={y1,…,yn},

yi=μ·xi+zi,i=1,…,n (5)

其中,zi~N(0,σ2)。

步骤2,分析DNN模型:

DNN是一种全连接的前馈神经网络,由若干隐藏层和输入、输出层之间的神经元组成。DNN与传统神经网络的区别在于它的深度,即隐含层的数目和神经元的数目。隐含层和神经元数目越多,从神经网络的数据中提取的特征和模式越有意义。

在DNN模型下,令第l层第i个神经元的输入为输出为其偏置为连接着第l+1层第j个神经元的权重为第l层所具有的神经元个数为nl。在第l层和第l+1层的神经元之间,满足如下线性关系:

为了增强神经网络输出的非线性表达能力,在第l+1层的神经元上,进行非线性操作,输出为

其中,非线性函数h就是激活函数。在神经网络的数学理论中,假设选择合适的激活函数,那么含有有限个神经元的神经网络输出的预测值会逼近理论值。

为了优化神经网络,DNN使用损失函数计算误差得到损失值,把梯度下降值反馈给神经网络,根据合适的优化函数,迭代更新偏置和权重,使得预测值和理论值之间的误差最小化。在处理大量数据时,优化函数可以降低学习时间,提高学习效率。在优化函数中,通过设置参数学习速率η,控制梯度下降值。在迭代次数有限的条件下,如果学习速率过小,损失值能控制在误差范围,但其变化太慢,导致收敛时间太长。如果学习速率过大,收敛时间降低,但无法最小化损失值。

所以,选择合适的激活函数、损失函数、优化函数对神经网络至关重要。

步骤3,DNN译码原理:

与传统的硬判决译码相比,本发明利用DNN模型对汉明码进行译码。

根据(7,4)汉明码,设置输入和输出层神经元个数以及初始隐藏层参数。将接收信号Y={y1,…,yn}划分为多组序列进行DNN译码,每组接收序列的长度为7。将每组长度为7的接收序列作为DNN模型输入层,因此输入层的神经元有7个。从每组长度为7的接收序列中译出4个信息序列,所以DNN模型输出层的神经元有4个。设置三层的隐藏层,提取每组接收序列的特征信息,进行译码。

译码步骤:

3.1对长度为7的接收序列进行线性操作,得到第一层隐藏层的输入

3.2在隐藏层的神经元上,对输入信息进行非线性操作,选择非线性函数sigmod作为激活函数,即

因为sigmod激活函数分布在(0,1)范围内,且具有对称性,从而得到隐藏层神经元的输出信息

3.3在隐藏层中,经过神经元上的非线性操作和神经元间的线性操作后,得到DNN的输出信息。

其中,是输出层神经元的输入信息,就是DNN输出的预测序列

3.4计算预测序列与信息序列ti的误差,因为汉明码译码一般是比较汉明距离,因此选择均方误差(MSE)作为损失函数,度量预测序列和信息序列之间的误差,

其中,E为损失值。

3.5为了最小化LMSE,选择梯度下降(GD)算法作为优化函数,迭代更新权重和偏置

其中学习速率η=0.08。

3.6重复上述步骤3.1-3.5,使得误差E最小化,从而恢复信息序列。

步骤4,通过仿真验证正确性。

如图5所示,本实施例一种基于DNN模型分析的汉明码译码系统,包括如下模块:

汉明码编码模块、DNN模块分析模块、DNN译码模块、仿真模块。

汉明码编码模块具体如下:信源随机生成长度为k的信息序列T={t1,…,tk},其中ti∈{0,1},i=1,…,k;将序列T乘以汉明码的生成矩阵G4×7,

得到编码后的码字C={c1,…,cn};经过BPSK调制,得到已调序列X={x1,…,xn},其中码字和已调序列满足如下关系,

把X传输到高斯信道,得到接收信号Y={y1,…,yn},

yi=μ·xi+zi,i=1,…,n (5)

其中,zi~N(0,σ2)。

DNN模型分析模块具体如下:在DNN模型下,令第l层第i个神经元的输入为输出为偏置为连接着第l+1层第j个神经元的权重为第l层所具有的神经元个数为n l;在第l层和第l+1层的神经元之间,满足如下线性关系:

在第l+1层的神经元上,进行非线性操作,输出为

其中,非线性函数h是激活函数。

DNN译码模块具体如下:根据(7,4)汉明码,设置输入和输出层神经元个数以及初始隐藏层参数;将接收信号Y={y1,…,yn}划分为多组序列进行DNN译码,每组接收序列的长度为7;将每组长度为7的接收序列作为DNN模型输入层,因此输入层的神经元有7个;从每组长度为7的接收序列中译出4个信息序列,所以DNN模型输出层的神经元有4个;设置三层的隐藏层,提取每组接收序列的特征信息,进行译码;

译码步骤如下:

3.1对长度为7的接收序列进行线性操作,得到第一层隐藏层的输入

3.2在隐藏层的神经元上,对输入信息进行非线性操作,选择非线性函数sigmod作为激活函数,即

因为sigmod激活函数分布在(0,1)范围内,且具有对称性,从而得到隐藏层神经元的输出信息

3.3在隐藏层中,经过神经元上的非线性操作和神经元间的线性操作后,得到DNN的输出信息;

其中,是输出层神经元的输入信息,就是DNN输出的预测序列

3.4计算预测序列与信息序列ti的误差,因为汉明码译码一般是比较汉明距离,因此选择均方误差作为损失函数,度量预测序列和信息序列之间的误差,

其中,E为损失值;

3.5为了最小化LMSE,选择梯度下降算法作为优化函数,迭代更新权重和偏置

其中学习速率η=0.08;

3.6重复上述步骤3.1-3.5,使得误差E最小化,从而恢复信息序列。

仿真模块,通过仿真验证正确性。

本发明并不局限于上述特定的(7,4)汉明码,本领域技术人员可以在权利要求的范围内调整编码参数或更换信道码,这不影响本发明的实质内容。

由于DNN模型能用更多的神经元处理海量的数据,本发明利用DNN模型对汉明码译码,选择合适的激活函数,损失函数和优化函数,迭代更新权重和偏执,最小化误码率,并通过仿真该方法的正确性。

本领域的技术人员应该理解,本发明的具体实施方式仅用于解释本发明的原理,而不限制本发明。凡是根据本发明中的设计精神所做出的等效变化或修饰,均落入本发明的保护范围。

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