基于深度学习的干扰识别

本文是记录我上半年仿真和复现干扰识别的过程,展示的主要是一些需要注意的点以及仿真的相关结果。

干扰信号的产生

见之前的博客。

干扰信号的预处理

干扰信号的预处理主要包括功率归一化、短时傅里叶变换(STFT)和RGB图灰度图化。处理过程如下图所示。

为什么需要进行功率归一化呢?我个人的理解是,干扰信号功率的不同会使得干扰信号的特征数值波动较大,导致神经网络训练速度较慢,并且还会影响干扰信号的识别准确率。功率归一化的公式如下:

x_p(n)=\frac{x(n)}{\sqrt{\frac1N\sum_{n=1}^N\left|x(n)\right|^2}}

然后,为了更方便神经网络处理,我需要将一维的时域信号转换为图像进行,因此需要用到短时傅里叶变换。公式如下:

SP\begin{bmatrix}m,k\end{bmatrix}=\left|STFT\begin{bmatrix}m,k\end{bmatrix}\right|^2=\left|\sum_{n=0}^{N_\text{STFT}-1}r\begin{bmatrix}n\end{bmatrix}w^*\begin{bmatrix}n-mL_\text{STFT}\end{bmatrix}e^{-j\frac{2\pi kn}{N_\text{STFT}}}\right|^2

其中,mk分别代表时间和频率的离散参数,N_\text{STFT}代表STFT的FFT点数,w[n]代表STFT的窗函数,L_\text{STFT}代表STFT过程中接收信号r[n]的时域分段数。

通过STFT变换可以得到信号的RGB图,然后通过灰度化将RGB图转换为灰度图。在MATLAB工具箱中,可以直接调用rgb2gray函数。

完成上面这些功能后,就可以写一个循环,开始输出训练集和测试集。

神经网络的搭建

神经网络的搭建时只需要注意一点,就是我们的输入是单通道的图像,因此需要对常见的三通道神经网络进行修改。

个人仿真效果展示

时频图(以噪声调频干扰为例)

灰度图(以正弦调频干扰为例)

训练过程如图所示。

最终的识别结果如图所示(Resnet50),如图所示,共有八条曲线,分别代表八种干扰信号的识别准确率,横轴是干噪比(JNR),纵轴是识别准确率。

灰度化用到的MATLAB代码

garyImage=rgb2gray(rgbImage);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值