本发明涉及电子通信技术领域,更具体地说,涉及一种用于mcu的ldpc码纠错方法及纠错模块。
背景技术:
微控制单元(microcontrollerunit;mcu),又称单片微型计算机(singlechipmicrocomputer)或者单片机,是把中央处理器(centralprocessunit;cpu)的频率与规格做适当缩减,并将内存(memory)、计数器(timer)、usb、a/d转换等周边接口,甚至lcd驱动电路都整合在单一芯片上,形成芯片级的计算机。为了提高通信的可靠性,mcu内部配备了误码校正(ecc)模块,传统的ecc模块使用的是汉明码和bch码来纠正错误。随着mcu的不断发展,人们正在将mcu用于各种各样的新型和更加复杂的计算任务;但是汉明码和bch码的纠错能力有限,无法满足更加复杂的计算任务和更加庞大的数据通讯量。
低密度奇偶检验码(lowdensityparitycheckcode;ldpc)是一类性能逼近香农限的好码,由于它具有纠错能力强、译码复杂度低等诸多优点,是取代汉明码和bch码的理想方案,但是ldpc码在mcu技术领域上的应用仍然空白。
技术实现要素:
为克服现有技术中的缺点与不足,本发明的一个目的在于提供一种用于mcu的ldpc码纠错方法;该方法具有更强的纠错能力,使mcu具有更高的可靠性,降低了译码的迭代次数和复杂度。本发明的另一个目的在于提供一种实现上述ldpc码纠错方法、纠错能力强、可靠性高、可降低译码迭代次数和复杂度的ldpc码纠错模块。
为了达到上述目的,本发明通过下述技术方案予以实现:一种用于mcu的ldpc码纠错方法,其特征在于:包括如下步骤:
s1步,根据设定ldpc码长和码率构造ldpc的校验矩阵h,由校验矩阵h转换得到生成矩阵g,并将校验矩阵h和生成矩阵g进行储存;
s2步,输入长度为k的信息序列x;基于生成矩阵g,将信息序列x进行编码得到码字y;将码字y编制成码字信息并向外传输;
s3步,接收码字信息,得到带噪码字y′;使用深度学习译码法将带噪码字y′直接译码成码字x。
优选地,所述s1步中,校验矩阵h的构造方法是:设定ldpc码长为n,校验位长度为m,码率为r=k/n;利用maykay构造法,构造出校验矩阵h。
优选地,所述s1步中,由校验矩阵h转换得到生成矩阵g,是指:将校验矩阵h的右半部分h2求逆,再乘校验矩阵h的左半部分h1,得到生成矩阵g的右半部分g2;生成矩阵g的左半部分g1设定为大小为k×k的单位矩阵i:
其中,生成矩阵g的大小为k×n。
优选地,所述s2步中,基于生成矩阵g,将信息序列x与生成矩阵g相乘得到长度为n的码字y:
y=x×g。
优选地,所述s3步中,使用深度学习译码法将带噪码字y′直接译码成码字x,是指:包括以下分步骤:
s31步,构建深度学习模型:采用dnn模型,设定模型输入层维度、隐藏层层数以及各层网络的神经元个数、输出层神经元个数,在隐藏层的输出部分添加激活函数,设定模型的损失函数;
s32步,训练模型:构建数据集,数据集为多组的带噪码字y′,标签为原始码字的信息序列x;将数据集按设定比例分为训练集和验证集;将训练集输入到dnn模型,通过反向传播算法来更新模型的参数使损失函数收敛,当验证集的准确率和损失函数趋于稳定时停止训练,保存模型;
s33步,将保存的模型作为纠错模型,带噪码字y′通过纠错模型后译码为码字x。
一种实现上述用于mcu的ldpc码纠错方法的ldpc码纠错模块,其特征在于:包括:
ldpc矩阵储存模块,用于根据设定ldpc码长和码率构造ldpc的校验矩阵h,由校验矩阵h转换得到生成矩阵g,并将校验矩阵h和生成矩阵g进行储存;
ldpc编码模块,用于基于生成矩阵g,将长度为k的信息序列x进行编码得到码字y;
以及ldpc译码模块,用于接收带噪码字y′,使用深度学习译码法将带噪码字y′直接译码成码字x。
优选地,所述ldpc矩阵储存模块中,设定ldpc码长为n,校验位长度为m,码率为r=k/n;利用maykay构造法,构造出校验矩阵h。
优选地,所述ldpc矩阵储存模块中,由校验矩阵h转换得到生成矩阵g,是指:将校验矩阵h的右半部分h2求逆,再乘校验矩阵h的左半部分h1,得到生成矩阵g的右半部分g2;生成矩阵g的左半部分g1设定为大小为k×k的单位矩阵i:
其中,生成矩阵g的大小为k×n。
优选地,所述ldpc编码模块中,基于生成矩阵g,将信息序列x与生成矩阵g相乘得到长度为n的码字y:
y=x×g。
与现有技术相比,本发明具有如下优点与有益效果:
1、相比于传统方式采用汉明码和bch码,本发明使用ldpc码作为差错控制码,在相同码长和码率的条件下具有更强的纠错能力,使mcu具有更高的可靠性;
2、本发明使用深度神经网络译码,相比传统的bp迭代译码进一步提升了ldpc的性能,并且降低了译码的迭代次数和复杂度。
附图说明
图1是本发明用于mcu的ldpc码纠错方法的流程图;
图2是本发明用于mcu的ldpc码纠错模块的结构图;
图3是实施例中ldpc码的深度神经网络结构图;
图4是实施例中ldpc码与传统bch码的性能比较图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细的描述。
实施例一
本实施例一种用于mcu的ldpc码纠错方法,其流程如图1所示,包括如下步骤:
s1步,根据设定ldpc码长和码率构造ldpc的校验矩阵h,由校验矩阵h转换得到生成矩阵g,并将校验矩阵h和生成矩阵g进行储存。
具体地说,设定ldpc码长为n,待输入信息序列x的长度为k,校验位长度为m,码率为r=k/n;利用maykay构造法,构造出校验矩阵h。
由校验矩阵h转换得到生成矩阵g,是指:将校验矩阵h的右半部分h2求逆,再乘校验矩阵h的左半部分h1,得到生成矩阵g的右半部分g2;生成矩阵g的左半部分g1设定为大小为k×k的单位矩阵i:
其中,生成矩阵g的大小为k×n。
s2步,输入长度为k的信息序列x;基于生成矩阵g,将信息序列x进行编码得到码字y;将码字y编制成码字信息并向外传输。
具体地说,基于生成矩阵g,将信息序列x与生成矩阵g相乘得到长度为n的码字y:
y=x×g。
s3步,接收码字信息,得到带噪码字y′;使用深度学习译码法将带噪码字y′直接译码成码字x。
具体地说,使用深度学习译码法将带噪码字y′直接译码成码字x,是指:包括以下分步骤:
s31步,构建深度学习模型:采用dnn模型,设定模型输入层维度、隐藏层层数以及各层网络的神经元个数、输出层神经元个数,在隐藏层的输出部分添加激活函数,设定模型的损失函数;
s32步,训练模型:构建数据集,数据集为多组的带噪码字y′,标签为原始码字的信息序列x;将数据集按设定比例分为训练集和验证集;将训练集输入到dnn模型,通过反向传播算法来更新模型的参数使损失函数收敛,当验证集的准确率和损失函数趋于稳定时停止训练,保存模型;
s33步,将保存的模型作为纠错模型,带噪码字y′通过纠错模型后译码为码字x。
相比于传统方式采用汉明码和bch码,本发明使用ldpc码作为差错控制码,在相同码长和码率的条件下具有更强的纠错能力,使mcu具有更高的可靠性;本发明使用深度神经网络译码,相比传统的bp迭代译码进一步提升了ldpc的性能,并且降低了译码的迭代次数和复杂度。
为实现上述ldpc码纠错方法,本实施例提供一种ldpc码纠错模块,其结构如图2所示,包括:
ldpc矩阵储存模块,用于根据设定ldpc码长和码率构造ldpc的校验矩阵h,由校验矩阵h转换得到生成矩阵g,并将校验矩阵h和生成矩阵g进行储存;
ldpc编码模块,用于基于生成矩阵g,将长度为k的信息序列x进行编码得到码字y;
以及ldpc译码模块,用于接收带噪码字y′,使用深度学习译码法将带噪码字y′直接译码成码字x。
具体地说,所述ldpc矩阵储存模块中,设定ldpc码长为n,校验位长度为m,码率为r=k/n;利用maykay构造法,构造出校验矩阵h。
所述ldpc矩阵储存模块中,由校验矩阵h转换得到生成矩阵g,是指:将校验矩阵h的右半部分h2求逆,再乘校验矩阵h的左半部分h1,得到生成矩阵g的右半部分g2;生成矩阵g的左半部分g1设定为大小为k×k的单位矩阵i:
其中,生成矩阵g的大小为k×n。
所述ldpc编码模块中,基于生成矩阵g,将信息序列x与生成矩阵g相乘得到长度为n的码字y:
y=x×g。
实施例二
本实施例以码率为7/15的ldpc码为例进行来说明。一种用于mcu的ldpc码纠错方法,包括如下步骤:
s1步,设定ldpc码长n为15bit,待输入信息序列x的长度k为7bit,校验位长度m为8bit,码率r=7/15;根据码长和码率使用maykay构造法构造ldpc的校验矩阵h,维度为8×15。
将校验矩阵h转换为对应的生成矩阵g,生成矩阵g维度7×15。
s2步,通过编码前长度为7的信息序列x与ldpc码生成矩阵g相乘得到编码后长度为15的码字y;将码字y编制成码字信息并向外传输。
s3步,接收码字信息,得到带噪码字y′;使用深度学习译码法将码字y′直接译码成码字x。是指包括以下步骤:
s31步,构建深度学习模型:采用dnn模型,设定模型输入层维度为15,隐藏层层数为3以及各层网络的神经元个数分为别2048、1024、1024,输出层神经元个数为128,模型结构如图3所示。在隐藏层的输出部分添加激活函数为relu函数,设定模型的损失函数为交叉熵;
s32步,训练模型:构建数据集,数据集为多组的带噪码字y′,标签为原始码字的信息序列x;将数据集按7:3的比例分为训练集和验证集;将训练集输入到dnn模型,通过反向传播算法来更新模型的参数使损失函数收敛,当验证集的准确率和损失函数趋于稳定时停止训练,保存模型;
s33步,将保存的模型作为纠错模型,带噪码字y′通过纠错模型后译码为码字x,完成译码。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。