孙田亮,代华建,洪居亭
(四川大学电子信息学院,成都610065)
随着通信信号复杂度的逐步增加,数字信号的调制方式也开始逐渐复杂,而信号的调制方式识别是信号盲解调中至关重要的一部分,所以对信号调制方式识别技术的研究具有重要意义。在军用以及民用方面,调制识别都具有广泛的应用,在军用方面,调制识别是电子对抗战中重要的一环,利用它可实现对截获信号的盲解调,在民用方面,调制识别能够实现空闲频谱监测。目前信号调制识别方式有很多,文献[1]通过计算5 个瞬时特征参数,实现了6 种信号的调制识别。文献[2]利用高阶累积量与支持向量机相结合的方式来进行调制识别。本文推导计算了几类常用数字调制信号的二、四、六阶高阶累积量,并提出了两个基于高阶累积量的特征参数T1、T2。此外,为了更好地挖掘提出的两个特征参数的分类能力,利用BP 神经网络作为分类器,对这五类信号进行调制识别,最后通过MATLAB 仿真实验表明本文提出的方法能够有效的进行调制识别,在信噪比大于5dB 的情况下对BPSK、QPSK、8PSK、16QAM、32QAM 这五种数字调制信号的正确识别率高于98%,并且在低信噪比下识别效果依然很好。
假设一个零均值的K 阶平稳随机过程x(t),它的K 阶累积量的定义为式(1)。
其中Cum 代表的意思就是对x(t)求累积量,x(t)的p 阶混合矩为公式(2),其中*代表对信号求共轭。
通过式(1)、式(2)可以得到x(t)的常用高阶累积量的表达式为式(3)。
因为对于任何的零均值的高斯随机过程,这个高斯过程中高于二阶的累积量将会恒为0,而信号一般不是一个零均值的高斯随机过程。因此高阶累积量具有良好的抑制高斯噪声的特点[4],这也是信号的高阶累积量不受高斯白噪声影响的原因。将常用的几类调制信号的高阶累积量[5]计算出来,结果如表1 所示。
表1 常用高阶累积量理论值
从表1 中我们可以得知,如果想要利用一个特征量将五种调制方式分别开是不可能的,所以构建联合特征是十分必要的。基于以上的表格,我们首先构造出了两个特征参数T1和T2,它们的定义式为T1=abs(C40)/abs(C21)2、T2=C42,可以由表2、表3 中看到T1、T2的理论值,但是由于噪声的影响,计算值并不是百分百接近理论值,可以由图1 中看到,T1以及T2在仿真数据中的计算值。
图1 T1、T2仿真值
表2 T1理论值
表3 T2理论值
如果只单纯利用这两个特征参数对这五类信号进行分离,在低信噪比下,可以从图1 中看出高阶累积量受到噪声的干扰分类效果在快速下降,而且32QAM 和8PSK 的特征值随着信噪比的下降在快速接近,所以需要利用神经网络更好地挖掘两个参数的分类潜力,实现非线性分类。
在本文中选择了BP 神经网络作为分类器,神经网络是一种仿照人脑设计的简化的计算模型,模型当中包含了大量的用于计算的神经元,这些神经元之间会通过带有权重的边以一种层次化的形式组织在一起,每一层神经元之间可以进行大规模的并行计算,并且层与层之间能够进行数据的传递,神经网络的最上层的权重是很容易通过梯度下降算法得到结果,但是对于隐藏层的参数是无法高效快捷的获得的,所以本文采用BP 算法来进行网络权重训练,BP 算法的思路是通过利用隐藏层对于误差的梯度来更新隐藏层到其他层之间的权重,并且BP 算法可以对同层节点的梯度和权重更新两者同时并行计算,综上所述,我们选择BP神经网络作为我们的分类器,BP 算法的伪代码如图2所示。
图2 BP算法流程
本文选择两个隐藏层的BP 神经网络作为调制识别算法分类器。网络结构如图3 所示。BP 网络进行调制识别分为两个步骤,第一步是进行训练,第二步是识别过程。第一步将训练样本输入神经网络当中,两个特征参数通过2 个神经单元的输入层、4 个神经单元的第一层隐藏层、5 个神经单元的第二层隐藏层,将最后的结果通过5 个神经单元的输出层表示出来,然后将理论输出值与实际结果进行对比,将误差反向传播回去,通过修改输入层、隐藏层的权重达到减小误差的目的,这样不断的进行循环,直到误差最小或者说达到最大迭代次数,此时训练过程结束。识别过程只需要将计算好的特征参数送入已经训练好的神经网络中进行计算,即可得到最后的识别结果。
图3 神经网络结构
每个神经元都存在一个激活函数f(x),f(x)通常有sigmoid(x)、tanh(x)、relu(x)、Leaky ReLU(x)、PReLU(x)这几种。其中sigmod(x)是一种适合于二分类的激活函数,relu(x)、Leaky ReLU(x)、PReLU(x)则是计算速度快,它只需要将输入的数据和0 进行对比大小即可得到结果,而sigmod 中还需要进行除法等运算。但是上述的几个激活函数有一个问题就是不是零中心输出,如果不是零中心输出,那么神经网络的训练过程耗时就会比较长,而tanh(x)函数就是一个零中心输出的函数,所以在图3 的神经网络中选择tanh(x)作为激活函数,公式(4)就是tanh(x)的表达式。
为了检验在不同的信噪比下算法的识别能力,本文在Intel i7 处理器,Windows 10 系统电脑下使用MATLAB 软件对提出的算法进行仿真实验,首先产生7 种信噪比(-10dB,-5dB,0dB,5dB,10dB,15dB,20dB)下的五种调制信号的仿真数据,然后用仿真数据进行实验,识别结果如表4 所示。
表4 算法识别结果
由表4 可以看出,识别准确率在信噪比大于0dB的时候均大于96%,而且当信噪比大于5dB 时,识别准确率接近100%,本文提出的算法对相位调制信号的分类能力很优秀,后续可以针对不同特点的调制信号加入其他高阶累积量或者不是高阶累积量的特征量,例如信号的幅度特征、频率特征、双谱等,这样可以提高对于QAM、MFSK 类信号的识别正确率。
本算法能够实现对五种调制方式的信号进行有效识别,对比于其他文献中提出的算法有一定的优势,文献[6]采用了结合高阶累积量以及循环谱的混合识别算法,但是在SNR>5dB 的情况下,本文提出的算法的识别效果优于该文献,所以在算法复杂度相近的情况下,本文提出的算法的识别率更高一些,文献[7]提出了利用高阶累积量以及时域的瞬时信息结合星座图特征进行调制识别,结果表明在SNR>0dB 的情况下,它的识别率在98%以上,但是文献[7]提出的算法需要的特征数是本文特征数的5 倍,从复杂度上来说,本文提出的算法有效的降低了识别算法的复杂度。文献[8]提出了利用4 个特征参数进行识别的算法,结果表明在信噪比为8dB 以上时,该算法才能达到100%的识别率,并且该算法需要先对8PSK 和MFSK 信号进行求微分运算。文献[9]提出了利用4 个特征参数进行五种信号的调制识别算法,结果表明在0dB 时,效果接近本文算法,但是该算法构建的4 个特征参数需要计算八阶累积量,计算复杂度远高于本算法,图4 为本文的方法与其他方法的对比图。
图4 不同识别算法效果图
实验结果证明了运用神经网络加上传统的特征量可以得到的优秀的分类效果,但是深度学习是一个比较新的领域,并且深度学习在信号处理方法使用的并不是很多,并且深度学习比较依靠训练数据以及提出的分类特征,本文的实验用的数据是使用MATLAB 仿真产生的,并且只是添加了高斯白噪声,与实际存在的通信信号可能存在差异,特别是实际中信号的频偏、相偏、多径干扰、多普勒效应等等,都会对实验结果产生巨大的影响。后续的工作可以考虑从两个方面入手,第一个是选择更优秀的神经网络,例如目前在分类领域比较优秀的RNN、CNN、LSTM,等等。第二个就是改变输入特征的形式,可以考虑提取二维特征,例如从一维的特征转换成二维的图片,或者转换到其他多维域进行训练和分类,这里面都还有许多的工作需要继续做。