自动调制识别(AMR)是无线通信中的关键任务,旨在通过分析无线电信号来识别其调制方式。随着无线通信技术的快速发展,传统的信号处理方法已无法满足高效识别的需求,因此深度学习技术逐渐成为AMR领域的研究热点。本项目实现了一个基于深度学习的自动调制识别模型,使用卷积神经网络(CNN)、长短时记忆网络(LSTM)和注意力机制(Attention)相结合的方法,通过对输入的无线信号进行多层次特征提取、时间序列建模和重要特征聚焦,准确地对不同的调制方式进行分类。我们使用了RML2016.10a数据集进行实验,探索模型在不同信噪比(SNR)条件下的表现。
使用的是RML2016.10a数据集,包含11种不同调制类型的信号样本,适用于自动调制识别研究。信号以复数形式存储,包含不同信噪比(SNR)条件下的样本。
本项目的模型结构包括:
- 特征提取器:特征提取部分使用多个残差块(Residual Blocks),每个残差块包含卷积层、批归一化、激活函数和SE模块(Squeeze-and-Excitation),通过卷积操作提取信号的局部特征,同时通过 SE 模块提升通道间的特征表示能力。逐步增加通道数,并通过最大池化层进行降采样,从而提取出更高层次的空间特征。
- 序列建模器:双向 LSTM(Long Short-Term Memory) 用于捕获信号序列中的时间依赖性。在该模型中,使用了双向 LSTM,使得网络能够同时从前向和反向捕获序列中的信息。
- 多头注意力机制:多头注意力机制(Multihead Attention)用于进一步增强模型对输入序列中重要特征的聚焦能力。通过计算序列中各个时间步之间的加权关系,选择性地关注对分类任务最重要的时刻或特征。
实验结果表明,在高信噪比条件下,模型的分类准确率可稳定90%以上,而在低信噪比下,尽管准确率较低,但相较于目前他人已有的结果,仍然实现了低信噪比下的一个大幅度提升。实验数据已保存在results.json文件,您可以直接运行data_processor.py文件得到可视化结果。
- Python 3.x
- PyTorch