基于深度学习的LoRa调制信号检测方法转让专利

申请号 : CN201910331463.9

文献号 : CN110099019B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 易运晖王以苏李力

申请人 : 西安电子科技大学

摘要 :

本发明公开了一种基于深度学习的LoRa调制信号检测方法,通过对待检测信号进行傅里叶变换,提取信号的频率特征向量,构建一个调制识别卷积神经网络来检测LoRa调制信号,克服了现有LoRa信号被识别有效率低、误判率高,且需要使用特征工程的问题。本发明包括以下步骤:(1)采集无线通信信号;(2)标记被切割后的每个子信号;(3)生成训练特征集和测试特征集;(4)构建调制识别卷积神经网络;(5)采集无线通信信号;(6)对测试特征集进行检测。本发明具有在复杂的通信环境下,LoRa信号检出率高的优点,可用于检测LoRa信号的无线通信应用类型。

权利要求 :

1.一种基于深度学习的LoRa调制信号检测方法,其特征在于,利用实时采集的无线通信信号的频率特征向量生成训练特征集和测试特征集,采用深度学习中的卷积神经网络技术,构建并训练调制识别卷积神经网络,该方法的具体步骤包括如下:(1)采集无线通信信号:

(1a)利用软件无线电装置,在持续30秒到60秒的时间段内,实时采集含有LoRa调制信号的无线通信信号,将采集到的无线通信信号存储到本地数据库中;

(1b)从(255,12800)的范围内选取一个整数,作为子信号长度,将无线通信信号切割成多个子信号;

(2)标记被切割后的每个子信号:

(2a)利用终端中的LoRa解调器,对切割后的每个子信号进行解调操作;

(2b)按照下述数据码标记规则,将能够被LoRa解调器解调的每个子信号分别标记为相应的前导码、数据包、校验位三种数据类型中的一种:将能被LoRa解调器解调为前导码的每个子信号均标记为前导码数据类型;

将能被LoRa解调器解调为数据包的每个子信号均标记为数据包数据类型;

将能被LoRa解调器解调为校验位的每个子信号均标记为校验位数据类型;

当LoRa解调器对子信号的解调结果同时包含一个以上数据码类型时,则将具有最长序列长度的数据码类型作为该子信号的数据类型;

(2c)将不能被LoRa解调器解调为LoRa数据码的每个子信号,均标记为噪声信号;

(3)生成训练特征集和测试特征集:

(3a)对标记后的每个子信号任取前十六分之一到三分之一组数据以及剩余数据分别进行快速傅里叶变换FFT,将快速傅里叶变换后的信号,作为该子信号的频率特征向量,组成频率特征向量集合;

(3b)利用批量归一化方法,对每个特征向量进行归一化处理;

(3c)将归一化处理后的所有特征向量按7:3的比例,随机划分为训练特征集和测试特征集;

(4)构建调制识别卷积神经网络:

(4a)构建一个9层的调制识别卷积神经网络,其结构依次为:输入层→第一个卷积层→第一个池化层→第二个卷积层→第二个池化层→展平层→第一个全连接层→第二个全连接层→第三个全连接层;

(4b)利用二维信号改造方法,设置调制识别卷积神经网络的每层参数;

所述二维信号改造方法是指,将输入层后一层的卷积层的卷积核数目设置为输入层最大维度的三分之一,卷积核步长设置为卷积核尺寸的一半,池化窗口和补偿设置为2;

(5)训练调制识别卷积神经网络:

(5a)将训练特征集输入到调制识别卷积神经网络中;

(5b)采用限量迭代训练法,对调制识别卷积神经网络进行训练,直到调制识别卷积神经网络的所有参数收敛,得到训练好的调制识别卷积神经网络;

(6)检测LoRa调制信号:

(6a)将测试特征集中的每个样本输入到训练好的调制识别卷积神经网络中,得到测试特征集的检测结果;

(6b)将检测结果中包含前导码数据类型,数据包数据类型以及校验位数据类型的测试特征集,判定为包含LoRa调制信号。

2.根据权利要求1所述的基于深度学习的LoRa调制信号检测方法,其特征在于,步骤(3b)中所述的批量归一化方法是指,线性函数归一化方法、0均值标准化、自编码器归一化中的任意一种。

3.根据权利要求1所述的基于深度学习的LoRa调制信号检测方法,其特征在于,步骤(4b)中所述调制识别卷积神经网络的每层参数设置如下:将输入层的输入维度设置为2×L,L表示采样点间隔;

将第一个卷积层的输入维度设置为2×L,输出维度设置为340×128;

将第一个池化层的池化方式设置为最大池化,输入维度设置为340×128,输出维度设置为170×128;

将第二个卷积层的输入维度设置为170×128,输出维度设置为170×64;

将第二个池化层的输入维度设置为170×64,输出维度设置为85×64;

将展平层设置的输入维度设置为85×64,输出维度设置为5440;

将第一个、第二个、第三个全连接层的输入维度依次设置为5440、128、64,输出维度依次设置为128、64、11;

将三个全连接层的激活函数均设置为ReLu函数,损失函数采用交叉熵损失函数。

4.根据权利要求1所述的基于深度学习的LoRa调制信号检测方法,其特征在于,步骤(5b)中所述限量迭代训练法是指,梯度下降方法、逐层预训练方法、拟牛顿方法三种方法中的任意一种。

说明书 :

基于深度学习的LoRa调制信号检测方法

技术领域

[0001] 本发明属于通信技术领域,更进一步涉及无线通信技术领域中的一种基于深度学习的长距离广域LoRa(Long-Range)调制信号检测方法。本发明可用于在天线接收到无线信号的情况下,在软件无线电装置中,直接对输入信号的时间、频率信息进行检测,完成LoRa调制方式的识别。

背景技术

[0002] 无线通信信号的信号检测是指在不知道发送端发送何种调制模式的信号的情况下,判断接收的信号调制方式、对信号参数进行估计的过程。在电子侦察、电子对抗、信号监督等通信场景下,及时检测到接收到的通信信号的调制方式、对信号的速率及扩频因子进行估计,为接收端后续的信号解调过程提供信源信息和信道参数。LoRa信号的自动检测一是基于能量检测的信号检测,二是基于统计机器学习的信号检测。能量检测不需要信号的先验信息,这种方法根据观测信号的能量来确定被检测信号是否存在,它不涉及复杂的信号处理,且计算开销比较低。基于统计机器学习的信号检测具有完备的理论依据,并保证了在损失函数最小代价准则下调制识别效果最佳。然而前两种调制模式识别方法都需要人工提取接收信号的统计特征值,在实际工程中,随着通信的电磁环境日益复杂,尤其在低信噪比的条件下,这种基于特征工程的方法的识别性能会急剧下降。
[0003] 厦门四信通信科技有限公司在其申请的专利文献“LoRa多符号速率的接收处理方法”(申请号:201810163221.9,申请公布号:108390842A)中提出了一种对多符号速率的LoRa信号的检测方法。该方法首先初始化待接收数据的LoRa节点初始化扩频因子为7,通过持续监测输入信号的RSSI信号强度来评估信号的能量大小,一旦RSSI超过门限值,则认为空口有LoRa数据;若监测不到有效的LoRa数据,则切换到下一个扩频因子,继续检测此符号速率下的LoRa信号。该方法存在不足之处的是,由于这种方法通过检测信号的强度来判断空口是否存在LoRa信号,在存在其他调制方式的信号的环境下,该方法会将其他调制信号误判为LoRa信号。
[0004] 电子科技大学在其申请的专利文献“基于神经网络的LoRa终端最大发送速率动态预测方法”(专利申请号201810030502.7,公布号108199892A)中提出了一种基于神经网络的LoRa信号检测方法。该方法首先构建神经网络架构,并对神经网络进行训练,然后在保证正常通信情况下,通过将LoRa服务器解析到的信噪比、信号强度输入到训练好的神经网络,输出预测LoRa信号的最大发送速率,LoRa服务器再告知终端接收到的是何种最大发送速率的LoRa信号。这种信号检测方法存在的不足之处在于:在默认接收的信号是LoRa信号的情况下,判断是具有何种最大发送速率的LoRa信号,这种方法只能用于具有服务器的LoRa终端;且需要提前通过LoRa服务器提取信噪比、信号强度等参数,没有解决避免使用特征工程的问题。

发明内容

[0005] 本发明的目的在于针对上述现有技术存在的不足,提出的一种基于深度学习的LoRa调制信号检测方法,解决了目前LoRa调制信号检测方法都具有识别有效率低,且需要使用特征工程的问题,使得终端在复杂通信环境下,仍能具有良好的LoRa调制信号检出率。
[0006] 实现本发明目的的思路是,本发明通过对待检测信号进行傅里叶变换,提取信号的频率特征向量,然后构建一个调制识别卷积神经网络来检测LoRa调制信号。
[0007] 本发明的具体步骤如下:
[0008] (1)采集无线通信信号:
[0009] (1a)利用软件无线电装置,在持续30秒到60秒的时间段内,实时采集含有LoRa调制信号的无线通信信号,将采集到的无线通信信号存储到本地数据库中;
[0010] (1b)从(255,12800)的范围内选取一个整数,作为子信号长度,将无线通信信号切割成多个子信号;
[0011] (2)标记被切割后的每个子信号:
[0012] (2a)利用终端中的LoRa解调器,对切割后的每个子信号进行解调操作;
[0013] (2b)根据LoRa解调器对每个子信号的解调结果,按照数据码标记规则,将每个子信号分别标记为相应的前导码、数据包、校验位三种数据类型中的一种;
[0014] (2c)将不能被LoRa解调器解调为LoRa数据码的每个子信号,均标记为噪声信号;
[0015] (3)生成训练特征集和测试特征集:
[0016] (3a)对标记后的每个子信号任取前十六分之一到三分之一组数据以及剩余数据分别进行快速傅里叶变换FFT,将快速傅里叶变换后的信号,作为该子信号的频率特征向量,组成频率特征向量集合;
[0017] (3b)利用批量归一化方法,对每个特征向量进行归一化处理;
[0018] (3c)将归一化处理后的特征向量集合按7:3的比例,随机划分为训练特征集和测试特征集;
[0019] (4)构建调制识别卷积神经网络:
[0020] (4a)构建一个9层的调制识别卷积神经网络,其结构依次为:输入层→第一个卷积层→第一个池化层→第二个卷积层→第二个池化层→展平层→第一个全连接层→第二个全连接层→第三个全连接层;
[0021] (4b)利用二维信号改造方法,设置调制识别卷积神经网络的每层参数;
[0022] 所述二维信号改造方法是指,将输入层后一层的卷积层的卷积核数目设置为输入层最大维度的三分之一,卷积核步长设置为卷积核尺寸的一半,池化窗口和补偿设置为2;
[0023] (5)训练调制识别卷积神经网络:
[0024] (5a)将训练特征集输入到调制识别卷积神经网络中;
[0025] (5b)采用限量迭代训练法,对调制识别卷积神经网络进行训练,直到调制识别卷积神经网络的所有参数收敛,得到训练好的调制识别卷积神经网络;
[0026] (6)检测LoRa调制信号:
[0027] (6a)将测试特征集中的每个样本输入到训练好的调制识别卷积神经网络中,得到测试特征集的检测结果;
[0028] (6b)将检测结果中包含前导码数据类型,数据包数据类型以及校验位数据类型的测试特征集,判定为包含LoRa调制信号。
[0029] 与现有技术相比,本发明具有以下优点:
[0030] 第一,本发明引入数据码标记规则,将LoRa信号检测的问题转化为检测LoRa数据帧不同数据码的问题,克服了现有技术中在信号衰落情况下LoRa信号检测性能较差的缺陷,使得本发明可得到更高的LoRa信号的检出率。
[0031] 第二,本发明构建并训练了一个调制识别卷积神经网络,对输入信号的频率特征向量进行LoRa调制信号检测,克服了现有LoRa调制信号检测技术中无法区分其他信号调制方式和LoRa调制方式的缺陷,使得本发明可以在多种调制信号共存的电磁环境中,仍能得到LoRa调制信号良好的检测性能。

附图说明

[0032] 图1是本发明的流程图;
[0033] 图2是本发明仿真结果图;
[0034] 具体实施方法
[0035] 下面结合附图对本发明作进一步的描述。
[0036] 参照附图1,对本发明的具体实现步骤作进一步的描述。
[0037] 步骤1,采集无线通信信号。
[0038] 利用软件无线电装置,在持续30秒到60秒的时间段内,实时采集含有LoRa调制信号的无线通信信号,将采集到的无线通信信号存储到本地数据库中。
[0039] 从(255,12800)的范围内选取一个整数,作为子信号长度,将无线通信信号切割成多个子信号。
[0040] 步骤2,标记被切割后的每个子信号。
[0041] 利用终端中的LoRa解调器,对切割后的每个子信号进行解调操作。
[0042] 按照数据码标记规则,将能够被LoRa解调器解调的每个子信号分别标记为相应的前导码、数据包、校验位三种数据类型中的一种。
[0043] 所述的数据码标记规则是指,将能被LoRa解调器解调为前导码的每个子信号均标记为前导码数据类型,将能被LoRa解调器解调为数据包的每个子信号均标记为数据包数据类型,将能被LoRa解调器解调为校验位的每个子信号均标记为校验位数据类型,当LoRa解调器对子信号的解调结果同时包含多种数据码类型时,则统计每种数据码类型的序列长度,得到具有最大序列长度的数据码类型,将子信号标记为该种数据类型。
[0044] 将不能被LoRa解调器解调为LoRa数据码的每个子信号均标记为噪声信号。
[0045] 步骤3,生成训练特征集和测试特征集。
[0046] 对标记后的每个子信号任取前十六分之一到三分之一组数据以及剩余数据分别进行快速傅里叶变换FFT,将快速傅里叶变换后的信号,作为该子信号的频率特征向量,组成频率特征向量集合。
[0047] 利用批量归一化方法,对每个特征向量进行归一化处理。
[0048] 所述的批量归一化方法是指,线性函数归一化方法、0均值标准化、自编码器归一化中的任意一种。
[0049] 将归一化处理后的所有特征向量按7:3的比例,随机划分为训练特征集和测试特征集。
[0050] 步骤4,构建调制识别卷积神经网络。
[0051] 构建一个9层的调制识别卷积神经网络,其结构依次为:输入层→第一个卷积层→第一个池化层→第二个卷积层→第二个池化层→展平层→第一个全连接层→第二个全连接层→第三个全连接层。
[0052] 利用二维信号改造方法,设置调制识别卷积神经网络的每层参数。
[0053] 所述二维信号改造方法是指,将输入层后一层的卷积层的卷积核数目设置为输入层最大维度的三分之一,卷积核步长设置为卷积核尺寸的一半,池化窗口和补偿设置为2。
[0054] 将输入层的输入维度设置为2×L,L表示采样点间隔。
[0055] 将第一个卷积层的输入维度设置为2×L,输出维度设置为340×128。
[0056] 将第一个池化层的池化方式设置为最大池化,输入维度设置为340×128,输出维度设置为170×128。
[0057] 将第二个卷积层的输入维度设置为170×128,输出维度设置为170×64。
[0058] 将第二个池化层的输入维度设置为170×64,输出维度设置为85×64。
[0059] 将展平层设置的输入维度设置为85×64,输出维度设置为5440。
[0060] 将第一个、第二个、第三个全连接层的输入维度依次设置为5440、128、64,输出维度依次设置为128、64、11。
[0061] 将三个全连接层的激活函数均设置为ReLu函数,损失函数采用交叉熵损失函数。
[0062] 步骤5,训练调制识别卷积神经网络。
[0063] 将训练特征集输入到调制识别卷积神经网络中。
[0064] 采用限量迭代训练法,对调制识别卷积神经网络进行训练,直到调制识别卷积神经网络的所有参数收敛,得到训练好的调制识别卷积神经网络。
[0065] 所述限量迭代训练法是指,梯度下降方法、逐层预训练方法、拟牛顿方法三种方法中的任意一种。
[0066] 步骤6,检测LoRa调制信号。
[0067] 将测试特征集中的每个样本输入到训练好的调制识别卷积神经网络中,得到测试特征集的检测结果。
[0068] 将检测结果中包含前导码数据类型,数据包数据类型以及校验位数据类型的测试特征集,判定为包含LoRa调制信号。
[0069] 本发明的效果通过以下仿真实验进一步说明。
[0070] 1.仿真条件:
[0071] 本发明的仿真实验所用计算机配置如下:处理器为Intel Core i5-4430CPU,显卡为NVIDIA GeForce GTX 1080,显存存为8GB。计算机系统为Windows10,使用Keras深度学习网络框架实现仿真实验。
[0072] 2.仿真内容及其结果分析:
[0073] 本发明的仿真实验是采用本发明的方法,在在信噪比为20dB的条件下,在一款开源软件无线电平台limeSDR上,对采集到的LoRa及其噪声信号,进行预处理,对输入信号的频率信息进行检测,完成LoRa调制方式的识别。
[0074] 本发明采集的待检测LoRa频率信号长度N=1024,由5个扩频因子不同的LoRa信号混合而成。5种LoRa信号的扩频因子分别为7,8,9,10,11和12,中心频率为440MHz,带宽为150kHz,采样频率为8MHz。LoRa调制信号的频域波形图如图2(a)所示,其中,图2(a)的纵坐标表示LoRa调制信号的带宽,横坐标表示LoRa调制信号的持续时间,从左至右的五种线性波形分别为扩频因子为7,8,9,10,11和12的LoRa调制信号的频谱函数。
[0075] 采用卷积神经网络对训练信号集进行训练,得到的检测结果和统计信息如图2(b)所示,第一行第一列中的265表示测试信号集中有265个LoRa调制信号被判决为LoRa调制信号,48.1%表示265个被正确判决的LoRa调制信号在测试信号集中的百分比,同理,第一行第二列的1表示有1个LoRa调制信号被错误判决为噪声信号,0.2%表示1个被错误判决的LoRa调制信号在测试信号集中的百分比,第二行第一列的0表示没有噪声信号被错误判决为LoRa调制信号,0%表示被错误判决的噪声信号在测试信号集中的百分比,第二行第二列的285表示由285个噪声信号被判决为噪声信号,51.7%表示被正确判决的噪声信号在测试信号集中的百分比。
[0076] 为了评价调制识别卷积神经网络的LoRa信号检测性能,利用下式,计算LoRa信号的正确检出率:
[0077]
[0078] 其中,PC表示LoRa调制信号的正确检测率,TP表示LoRa调制信号中被正确判决为LoRa调制信号的百分比,TN表示噪声信号中被正确判决为噪声信号的百分比,FP表示LoRa调制信号中被错误判决为噪声信号的百分比,FN表示噪声信号中被错误判决为LoRa调制信号的百分比。
[0079] 在20dB的情况下,根据图2(b)中的检测结果,计算得到调制识别卷积神经网络的统计信息:TP,TN,FP,FN的结果分别为99.6%,100%,0.4%,0%。
[0080] 根据LoRa信号的正确检出率的计算公式,得到LoRa信号的正确检出率为99.8%,LoRa信号检测成功。