本文是记录我上半年仿真和复现干扰识别的过程,展示的主要是一些需要注意的点以及仿真的相关结果。
干扰信号的产生
见之前的博客。
干扰信号的预处理
干扰信号的预处理主要包括功率归一化、短时傅里叶变换(STFT)和RGB图灰度图化。处理过程如下图所示。
为什么需要进行功率归一化呢?我个人的理解是,干扰信号功率的不同会使得干扰信号的特征数值波动较大,导致神经网络训练速度较慢,并且还会影响干扰信号的识别准确率。功率归一化的公式如下:
然后,为了更方便神经网络处理,我需要将一维的时域信号转换为图像进行,因此需要用到短时傅里叶变换。公式如下:
其中,和分别代表时间和频率的离散参数,代表STFT的FFT点数,代表STFT的窗函数,代表STFT过程中接收信号的时域分段数。
通过STFT变换可以得到信号的RGB图,然后通过灰度化将RGB图转换为灰度图。在MATLAB工具箱中,可以直接调用rgb2gray函数。
完成上面这些功能后,就可以写一个循环,开始输出训练集和测试集。
神经网络的搭建
神经网络的搭建时只需要注意一点,就是我们的输入是单通道的图像,因此需要对常见的三通道神经网络进行修改。
个人仿真效果展示
时频图(以噪声调频干扰为例)
灰度图(以正弦调频干扰为例)
训练过程如图所示。
最终的识别结果如图所示(Resnet50),如图所示,共有八条曲线,分别代表八种干扰信号的识别准确率,横轴是干噪比(JNR),纵轴是识别准确率。
灰度化用到的MATLAB代码
garyImage=rgb2gray(rgbImage);
标签:干扰,干扰信号,归一化,神经网络,STFT,灰度,深度,识别
From: https://blog.csdn.net/qq_55218335/article/details/142300787