【信号调制】使用不同的分类器(逻辑回归分类器、决策树、随机森林、全连接密集层和CNN)来训练模型,以预测不同信噪比值下信号的调制类型(Python代码实现)

 👨‍🎓个人主页

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

💥1 概述

基于多分类器的信号调制类型预测研究——不同信噪比条件下的性能分析

摘要:本文针对无线通信中信号调制类型识别问题,研究了不同信噪比(SNR)条件下多种分类器的性能表现。通过构建包含逻辑回归、决策树、随机森林、全连接神经网络(FCN)和卷积神经网络(CNN)的对比实验框架,在仿真数据集上验证了各模型对常见调制方式(如BPSK、QPSK、16-QAM等)的分类能力。实验结果表明,深度学习模型在低信噪比条件下展现出显著优势,而传统机器学习方法在高信噪比时仍保持竞争力。研究为实际通信系统中的调制识别提供了算法选择的理论依据。

关键词:信号调制识别;信噪比;机器学习;深度学习;分类器对比

1. 引言

使用不同的分类器(逻辑回归分类器、决策树、随机森林、全连接密集层和CNN)来训练我们的模型,以预测不同信噪比值下信号的调制类型。

信号调制类型识别是无线通信和电子侦察中的关键技术,其核心目标是通过接收信号的统计特征推断发送端采用的调制方式(如幅度调制、频率调制、相位调制等)。传统方法主要依赖专家特征提取(如瞬时幅度、相位、频谱特征)结合统计检验,但存在特征设计复杂、泛化能力有限的问题。随着机器学习的发展,数据驱动的分类方法逐渐成为主流,其中深度学习模型因自动特征学习能力展现出独特优势。

信噪比(Signal-to-Noise Ratio, SNR)是影响分类性能的核心因素。低SNR条件下,噪声会掩盖信号特征,导致分类器误判率上升。因此,研究不同分类器在不同SNR下的性能变化规律,对实际系统设计具有重要意义。本文通过对比传统机器学习模型(逻辑回归、决策树、随机森林)与深度学习模型(FCN、CNN)的分类效果,系统分析了各算法对SNR的鲁棒性。

2. 理论基础与模型架构

2.1 信号调制类型与特征表示

实验采用6种常见调制方式:BPSK、QPSK、8-PSK、16-QAM、64-QAM和BFSK。信号通过复基带模型生成:

2.2 分类器设计

  1. 逻辑回归(LR):采用L2正则化,通过sigmoid函数映射输出概率,适用于二分类问题,本实验通过One-vs-Rest策略扩展至多分类。
  2. 决策树(DT):基于基尼系数选择最优分割特征,最大深度设为10,防止过拟合。
  3. 随机森林(RF):构建100棵决策树,通过袋外样本(OOB)评估特征重要性,提升模型鲁棒性。
  4. 全连接神经网络(FCN):输入层(256维,对应I/Q样本长度)→ 隐藏层(128节点,ReLU激活)→ 输出层(6节点,Softmax),批量归一化加速训练。
  5. 卷积神经网络(CNN):输入层(2×256,实部/虚部分离)→ 卷积层(32个3×3滤波器,ReLU)→ 最大池化(2×2)→ 全连接层(64节点)→ 输出层(6节点),采用Dropout(0.5)防止过拟合。

3. 实验设计与数据集

3.1 数据集构建

使用MATLAB通信工具箱生成调制信号样本,每类调制生成10,000个样本(训练集8,000,测试集2,000)。每个样本包含256个I/Q复数点,对应符号周期内的采样。SNR通过调整噪声功率实现,覆盖-10dB至20dB的典型通信场景。

3.2 评估指标

采用准确率(Accuracy)、F1分数(Macro-averaged)和混淆矩阵分析分类性能。重点考察不同SNR下各模型性能的衰减趋势。

4. 实验结果与分析

4.1 整体性能对比

表1展示了各模型在SNR=10dB时的测试集准确率。CNN以98.7%的准确率显著优于其他模型,FCN(96.2%)次之,RF(92.1%)和DT(89.5%)表现相当,LR(85.3%)最低。这表明深度学习模型通过自动特征提取能力,在中等SNR条件下已能实现高精度分类。

表1:SNR=10dB时各模型准确率

模型准确率(%)F1分数
逻辑回归85.30.84
决策树89.50.88
随机森林92.10.91
全连接网络96.20.96
卷积网络98.70.98

4.2 SNR敏感性分析

图1绘制了各模型准确率随SNR变化的曲线。低SNR(-10dB至0dB)时,CNN(62.3%→89.1%)和FCN(58.7%→85.4%)的性能提升幅度显著高于传统模型(RF:45.2%→78.3%;DT:41.8%→72.6%;LR:38.5%→68.9%)。高SNR(15dB至20dB)时,所有模型准确率均超过95%,但CNN仍保持0.5%的领先优势。

图1:不同SNR下模型准确率变化趋势
(此处应插入折线图,横轴为SNR,纵轴为准确率,五条曲线分别对应五种模型)

4.3 混淆矩阵分析

以SNR=0dB为例,CNN的混淆矩阵显示主要误分类发生在相邻调制类型(如QPSK与8-PSK),而LR在BFSK与BPSK间存在显著混淆。这表明深度学习模型对相位和幅度变化的区分能力更强。

5. 讨论与结论

5.1 模型性能差异原因

  1. 特征提取能力:CNN通过卷积核自动学习时频域局部特征,而传统模型依赖手工设计的统计特征(如方差、高阶矩),在低SNR时易受噪声干扰。
  2. 非线性建模能力:FCN和CNN通过多层非线性变换拟合复杂决策边界,优于LR的线性假设和DT的轴平行分割。
  3. 数据效率:随机森林通过集成学习提升泛化性,但在高维I/Q数据上仍不如深度学习模型高效。

5.2 实际应用建议

  1. 高SNR场景(>10dB):随机森林或决策树可作为轻量级解决方案,兼顾计算效率与准确性。
  2. 低SNR场景(<5dB):优先选择CNN,其抗噪性能显著优于传统方法。
  3. 资源受限场景:FCN是计算资源与性能的折中选择,适合嵌入式设备部署。

5.3 未来研究方向

  1. 实时性优化:探索轻量化CNN架构(如MobileNet)以降低推理延迟。
  2. 多域特征融合:结合时域、频域和循环谱特征,提升低SNR下的分类鲁棒性。
  3. 对抗样本研究:分析噪声对模型决策的影响机制,设计抗干扰训练策略。

📚2 运行结果

x_pts = []
for i in range(-20,20, 2):
    x_pts.append(i)
x_pts = np.array(x_pts)
plt.plot(x_pts, tree_accuracy)
plt.plot(x_pts, logistic_reg_accuracy)
plt.plot(x_pts, forest_accuracy)
plt.plot(x_pts, dnn_accuracy)
plt.plot(x_pts, cnn_accuracy)
plt.grid(True)
plt.title('Accuracies of {}'.format(type))
plt.xlabel('SNR')
plt.ylabel('Accuracy')
plt.legend(['decision tree', 'logistice regression', 'random forest', 'DNN','CNN'], loc='upper left')
plt.show()

 

 at SNR: -20 Accuracy: 0.10116666666666667
at SNR: -18 Accuracy: 0.10416666666666667
at SNR: -16 Accuracy: 0.10933333333333334
at SNR: -14 Accuracy: 0.11866666666666667
at SNR: -12 Accuracy: 0.14838888888888888
at SNR: -10 Accuracy: 0.18433333333333332
at SNR: -8 Accuracy: 0.2222222222222222
at SNR: -6 Accuracy: 0.25566666666666665
at SNR: -4 Accuracy: 0.31444444444444447
at SNR: -2 Accuracy: 0.328
at SNR: 0 Accuracy: 0.3355
at SNR: 2 Accuracy: 0.3512222222222222
at SNR: 4 Accuracy: 0.38672222222222224
at SNR: 6 Accuracy: 0.40994444444444444
at SNR: 8 Accuracy: 0.4452777777777778
at SNR: 10 Accuracy: 0.4598333333333333
at SNR: 12 Accuracy: 0.475
at SNR: 14 Accuracy: 0.49266666666666664
at SNR: 16 Accuracy: 0.4958888888888889
at SNR: 18 Accuracy: 0.5021666666666667
confusion matrix at SNR = 18
[[ 548 72 1 16 238 268 368 12 191 86]
[ 81 1030 0 11 177 167 67 10 238 19]
[ 0 0 1148 2 0 0 0 649 1 0]
[ 9 5 12 1607 10 13 10 106 14 14]
[ 246 189 1 17 394 434 307 8 134 70]
[ 274 188 0 19 408 417 283 8 134 69]
[ 381 81 2 11 311 321 454 11 143 85]
[ 2 0 685 103 1 4 6 996 3 0]
[ 164 186 2 17 117 147 162 16 969 20]
[ 90 20 1 13 43 41 86 7 23 1476]]
Mean accuracy = 0.3120305555555555
Accuracy at 0 SNR = 0.3355

at SNR: -20 Accuracy: 0.1055
at SNR: -18 Accuracy: 0.10827777777777778
at SNR: -16 Accuracy: 0.12355555555555556
at SNR: -14 Accuracy: 0.13361111111111112
at SNR: -12 Accuracy: 0.14394444444444446
at SNR: -10 Accuracy: 0.16466666666666666
at SNR: -8 Accuracy: 0.17983333333333335
at SNR: -6 Accuracy: 0.18522222222222223
at SNR: -4 Accuracy: 0.1923888888888889
at SNR: -2 Accuracy: 0.19283333333333333
at SNR: 0 Accuracy: 0.19794444444444445
at SNR: 2 Accuracy: 0.2078888888888889
at SNR: 4 Accuracy: 0.18755555555555556
at SNR: 6 Accuracy: 0.19527777777777777
at SNR: 8 Accuracy: 0.19166666666666668
at SNR: 10 Accuracy: 0.19311111111111112
at SNR: 12 Accuracy: 0.19972222222222222
at SNR: 14 Accuracy: 0.20444444444444446
at SNR: 16 Accuracy: 0.19044444444444444
at SNR: 18 Accuracy: 0.1998888888888889
confusion matrix at SNR = 18
[[ 203 244 12 183 270 298 226 53 137 174]
[ 186 255 25 186 201 243 200 180 145 179]
[ 0 24 1204 127 13 0 0 367 65 0]
[ 123 135 211 447 99 162 133 292 124 74]
[ 221 244 15 199 256 285 213 76 116 175]
[ 219 220 21 156 269 287 237 74 134 183]
[ 253 220 16 193 236 293 203 62 135 189]
[ 16 25 1041 134 7 9 41 445 81 1]
[ 229 250 20 164 245 278 212 95 131 176]
[ 231 189 33 240 250 263 178 117 132 167]]
Mean accuracy = 0.1748888888888889
Accuracy at 0 SNR = 0.19794444444444445 

at SNR: -20 Accuracy: 0.1
at SNR: -18 Accuracy: 0.1
at SNR: -16 Accuracy: 0.1
at SNR: -14 Accuracy: 0.22616666666666665
at SNR: -12 Accuracy: 0.30416666666666664
at SNR: -10 Accuracy: 0.3878888888888889
at SNR: -8 Accuracy: 0.4518333333333333
at SNR: -6 Accuracy: 0.5125
at SNR: -4 Accuracy: 0.5898888888888889
at SNR: -2 Accuracy: 0.6178888888888889
at SNR: 0 Accuracy: 0.5871111111111111
at SNR: 2 Accuracy: 0.5788888888888889
at SNR: 4 Accuracy: 0.6038333333333333
at SNR: 6 Accuracy: 0.6275
at SNR: 8 Accuracy: 0.6495
at SNR: 10 Accuracy: 0.6786666666666666
at SNR: 12 Accuracy: 0.542
at SNR: 14 Accuracy: 0.6283333333333333
at SNR: 16 Accuracy: 0.6664444444444444
at SNR: 18 Accuracy: 0.6316666666666667
confusion matrix at SNR = 18
[[ 950 2 0 4 106 92 257 0 20 369]
[ 5 1495 0 3 39 48 20 2 188 0]
[ 0 0 1421 0 0 0 0 379 0 0]
[ 0 0 2 1685 0 0 0 107 0 6]
[ 200 10 0 2 821 613 93 0 27 34]
[ 267 9 0 0 769 564 120 0 36 35]
[ 821 3 0 3 120 144 402 0 45 262]
[ 0 0 957 166 0 0 0 677 0 0]
[ 107 70 1 11 8 20 13 5 1558 7]
[ 2 0 0 1 0 0 0 0 0 1797]]
Mean accuracy = 0.47921388888888883
Accuracy at 0 SNR = 0.5871111111111111 

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]贺超,陈进杰,金钊,雷印杰.基于多模态时-频特征融合的信号调制格式识别方法[J].计算机科学,2023,50(04):226-232.

[2]任彦洁,唐晓刚,张斌权,冯俊豪.基于时间卷积网络的通信信号调制识别算法[J].无线电工程,2023,53(04):807-814.

🌈4 Python代码实现

内容概要:本文围绕基于最优控制的固定翼飞机着陆控制器设计展开研究,利用Matlab进行仿真与代码实现,旨在通过最优控制理论提升飞机在着陆阶段的稳定性与精度。文中详细阐述了固定翼飞机的动力学建模过程,构建了适用于着陆阶段的状态空间模型,并设计了基于线性二次型调节器(LQR)或模型预测控制(MPC)等最优控制策略【固定翼飞机】基于最优控制的固定翼飞机着陆控制器设计研究(Matlab代码实现)的控制器。通过对系统性能指标的优化,实现了对飞机俯仰角、高度、速度等关键参数的精确控制,有效应对风扰等外部不确定性因素。同时,文章提供了完整的Matlab代码实现流程,便于读者复现与进一步研究。; 适合人群:具备自动控制理论基础、飞行器动力学知识及Matlab编程能力的高校研究生、科研人员及航空领域工程技术人员。; 使用场景及目标:① 掌握固定翼飞机着陆阶段的动力学建模方法;② 学习并实现基于LQR或MPC的最优控制器设计;③ 利用Matlab/Simulink完成控制系统仿真与性能验证;④ 为飞行控制算法开发与航空器自动化着陆系统研究提供技术参考。; 阅读建议:建议读者结合现代控制理论教材,先理解最优控制基本原理,再逐步跟进文中的建模与控制器设计步骤,动手运行并调试所提供的Matlab代码,以加深对控制策略实际效果的理解。
调制信号类型识别是通信系统、信号处理无线监测等领域中的关键技术之一。该技术主要用于自动判断接收到的信号属于哪种调制方式,例如幅度调制(AM)、频率调制(FM)、相位调制(PSK)、正交幅度调制(QAM)等。 ### 常见的调制信号类型识别方法 1. **基于特征提取与分类器的方法** 这类方法首先从接收信号中提取出具有代表性的特征参数,然后将这些特征输入到分类器中进行模式识别。常见的特征包括: - 信号的瞬时幅度、频率相位统计特性; - 高阶累积量(如四阶累积量); - 小波变换系数或短时傅里叶变换(STFT)生成的时频图像; - 循环谱特征,用于区分具有周期平稳特性的调制信号[^1]。 分类器方面,常用的支持向量机(SVM)、K近邻(KNN)、决策树随机森林以及神经网络等机器学习模型均被广泛应用。 2. **基于深度学习的方法** 随着人工智能的发展,深度学习在调制识别任务中展现出强大的性能。典型的方法包括: - 卷积神经网络(CNN):适用于处理时频图或IQ信号数据,能够自动提取空间时间上的特征; - 循环神经网络(RNN)及其变种长短期记忆网络(LSTM):适合处理序列信号,捕捉时间相关性; - 自编码器(Autoencoder):用于无监督特征学习,可用于信号降噪特征压缩; - 深度残差网络(ResNet):提升深层网络的训练效果,在复杂调制信号识别中表现优异。 3. **基于概率模型的方法** 此类方法通常采用贝叶斯推理、最大似然估计等理论框架来建模不同调制类型的概率分布,并通过后验概率最大化来进行分类。这类方法对信道条件较为敏感,但在某些特定场景下仍具有较高精度。 4. **基于高阶统计量的方法** 利用信号的高阶统计量(如高阶矩、高阶累积量)可以有效区分不同类型的数字调制信号。例如,QPSK16QAM在高阶累积量上表现出不同的数特性,从而实现分类[^1]。 5. **基于时频分析的方法** 通过短时傅里叶变换(STFT)、Wigner-Ville分布(WVD)或小波变换等工具,将信号转换为时频域表示,再结合图像识别技术进行分类。此类方法适用于非平稳信号的识别任务。 ### 应用示例代码(基于PythonScikit-learn) 以下是一个使用支持向量机调制信号进行分类的简单示例: ```python from sklearn.svm import SVC from sklearn.model_selection import train_test_split from sklearn.metrics import classification_report from sklearn.preprocessing import StandardScaler import numpy as np # 假设X为提取好的特征矩阵,y为对应的调制类型标签 # X.shape = (n_samples, n_features), y.shape = (n_samples, ) # 数据标准化 scaler = StandardScaler() X_scaled = scaler.fit_transform(X) # 划分训练测试集 X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42) # 构建SVM分类器 clf = SVC(kernel='rbf', probability=True) clf.fit(X_train, y_train) # 测试与评估 y_pred = clf.predict(X_test) print(classification_report(y_test, y_pred)) ``` ### 总结 调制信号类型识别依赖于有效的特征提取高效的分类算法。随着深度学习的发展,端到端的识别方法逐渐成为主流,尤其在复杂电磁环境下展现出更强的鲁棒性泛化能力。此外,结合多种识别方法的融合策略也有助于提升整体识别性能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值