基于SVM的一维距离像飞机目标识别系统
项目介绍
本项目实现了一个完整的雷达自动目标识别(RATR)仿真系统,专注于对飞机的一维距离像(HRRP)进行分类识别。项目基于MATLAB平台开发,采用支持向量机(SVM)作为核心分类器。代码演示了从仿真数据生成、信号预处理、模型参数寻优到最终分类评估的完整机器学习流水线,是理解雷达信号处理与模式识别结合应用的理想参考示例。
功能特性
- 仿真数据生成:内置数据生成模块,能够模拟不同类型飞机(如An-26、Citation、Mig-21)的散射中心分布,并自动添加平移、幅度扰动和高斯白噪声(默认SNR 15dB)。
- HRRP预处理:实现了针对雷达信号特性的预处理算法,包括消除平移敏感性的最大峰值对齐和消除强度敏感性的L2范数归一化。
- 自动参数寻优:采用网格搜索(Grid Search)结合5折交叉验证(5-Fold CV),自动寻找SVM的最佳惩罚因子(C)和核函数参数(Gamma)。
- 多分类SVM模型:利用
fitcecoc框架实现多分类策略(One-vs-One),并使用高斯核(RBF)处理非线性可分数据。 - 可视化评估:提供丰富的可视化结果,包括预处理对比图、参数寻优热力图、混淆矩阵以及单样本预测结果展示。
系统要求
- MATLAB R2016b 或更高版本
- Statistics and Machine Learning Toolbox(用于SVM相关函数
fitcecoc, templateSVM, kfoldLoss 等)
使用方法
直接在MATLAB环境中运行主脚本即可启动程序。程序将自动按顺序执行以下步骤:
- 初始化随机种子。
- 生成仿真HRRP数据集。
- 对数据进行训练集与测试集的随机划分(默认7:3比例)。
- 执行HRRP预处理。
- 在训练集上进行网格搜索与交叉验证,寻找最优超参数。
- 使用最优参数训练最终模型。
- 评估测试集性能并生成可视化图表。
详细实现逻辑与算法分析
本项目仅包含一个主程序文件,代码内部通过主函数与子函数的形式组织,逻辑结构如下:
1. 数据生成机制
程序包含一个名为
generateSyntheticHRRP 的子函数,用于模拟雷达回波信号:
- 散射模型:定义了3类目标的散射中心位置和幅度模型。
- 环境模拟:
*
幅度扰动:模拟目标姿态微小变化导致的RCS起伏。
*
点扩展函数(PSF):通过Hamming窗卷积模拟雷达系统的有限分辨率。
*
位置不确定性:引入随机循环移位(Range Shift),模拟距离门对齐误差。
*
噪声叠加:根据设定的信噪比(SNR 15dB)添加高斯白噪声。
- 最终输出:取信号的模值(幅度),生成256维的一维距离像。
2. HRRP 信号预处理
预处理均在
preprocessHRRP 子函数中实现,目的是提取具有平移不变性和幅度不变性的特征:
* 算法寻找每个样本中的最大峰值索引。
* 计算将该峰值移至距离窗中心(第128位)所需的位移量。
* 利用
circshift 对信号进行循环移位,保证同类目标的特征主要分布大致对齐。
* 计算每个样本向量的L2范数(能量)。
* 将样本除以其范数,使所有样本的能量归一化为1,消除因目标距离变化或雷达截面积绝对大小不同带来的影响。
3. SVM 参数寻优策略
为了防止过拟合并不依赖经验值,代码实现了自动化的参数选择:
* 设定
C(惩罚因子) 的搜索范围为 $2^{-2}$ 到 $2^8$。
* 设定
Gamma(核宽度) 的搜索范围为 $2^{-8}$ 到 $2^2$。
* 使用
fitcecoc 结合
templateSVM 构建分类器模板。
* 设置
KFold 为5,即在训练过程中将训练数据分为5份,轮流作为验证集。
* 以验证集准确率作为评价指标,记录遍历过程中的最高准确率及其对应的C和Gamma。
4. 模型构建与分类
- 多分类策略:由于标准SVM是二分类器,代码采用了MATLAB的
fitcecoc 函数,通过 ECOC (Error-Correcting Output Codes) 框架实现多分类。具体配置为 One-vs-One 编码方案。 - 核函数:选用 高斯核(Gaussian/RBF),能够将低维线性不可分的数据映射到高维空间,有效处理复杂的雷达目标特征。核尺度(KernelScale)根据寻优得到的Gamma值设定($1/sqrt{text{Gamma}}$)。
5. 性能评估与可视化
程序最后输出多维度的评估结果:
- 数值输出:控制台打印最佳参数组合、参数寻优耗时、测试集识别准确率及预测耗时。
- 图表输出:
*
HRRP预处理效果图:对比原始杂乱信号与对齐/归一化后的信号,直观展示预处理的必要性。
*
参数寻优热力图:以二维颜色图展示不同C和Gamma组合下的验证准确率分布,帮助分析参数敏感性。
*
混淆矩阵:展示各类别真实的归类情况,便于观察各类别的误报率和漏报率。
*
样本识别示例:随机抽取测试集样本,绘制波形并标注真实标签与预测标签,绿色标题表示正确,红色表示错误。