简介:一份聚焦机器学习与雷达辐射源识别交叉领域的综述文献,适用于雷达侦察、电子对抗等方向的研究生、工程师及高校师生。内容系统梳理了机器学习理论在辐射源识别中的应用原理与发展历程,从早期参数匹配法和规则方法的局限性,讲到支持向量机、随机森林,再到当前热门的深度学习、卷积神经网络等方法;同时围绕小样本学习、新型雷达识别能力等难点问题展开讨论,并展望了未来研究方向与可行解决思路。资源为单篇PDF文献,共1个文件,大小357KB,包含摘要、原理框图、引用格式及参考文献列表,可作为课题调研、论文选题和课堂教学的参考资料。截至目前,已有176人学习使用。
1. 引言:为什么雷达辐射源识别综述值得认真读
如果你做过一阵子信号处理和机器学习,大概率会有同感:雷达辐射源识别的论文读起来很爽,落地时却总差口气。分类器从SVM换到CNN再换到Transformer,准确率在仿真数据上能刷到99%,到了实测环境直接打回原形。问题恰恰不在模型,而在特征、数据划分和评测方式这些综述里容易被跳过的细节。
这篇《基于机器学习的雷达辐射源识别研究综述》把散落的成果整理成了三条主线:辐射源信号的表征方式、机器学习模型的演进、数据集与评测的困境。它能帮你回答一个问题:给定一批截获的雷达脉冲,用机器学习判断辐射源型号甚至个体身份,这件事到底怎么做才靠谱,边界在哪里。适合正在选方向的研究生、准备做信号识别落地的工程师,以及想评估这条技术路线值不值得投入的决策者。先把机理讲透,再谈模型,最后落到能复现的最小流程。
2. 先摸清问题:从PDW到辐射源身份的识别链路与波形机理
2.1 识别链路的三个子问题
雷达辐射源识别的完整链路不是从分类器开始的,而是从截获信号开始的。我把其中一个典型环节拆成三段:脉冲检测、参数测量、辐射源识别。脉冲检测解决的是“有没有信号”,参数测量解决的是“脉冲长什么样”,辐射源识别解决的才是“这是谁”。机器学习主要作用在第三段,但它受前两段质量的制约非常大。
参数测量的产物是PDW,即脉冲描述字。PDW的核心条目一般包括载频RF、到达时间TOA、到达角AOA、脉宽PW、重频PRI。传统识别方法拿PDW跟已知辐射源参数库做逻辑匹配,命中就出结论。这套做法在雷达数量少、参数稳定的年代够用,因为每部雷达的参数表几乎是固定的。但现在雷达普遍捷变,载频和重频跳来跳去,参数库匹配的命中率迅速下降——这也是综述里机器学习方法能成为主线的直接原因。
需要补充的是,PDW只是窄带参数层面的信息。现在很多识别工作直接处理原始IQ数据或脉冲内部的调制细节,因为PDW里能拿到的信息量已经被压缩过一轮了。从信息角度看,丢失的是脉内调制细节;从效果看,同型号雷达之间本来就有差异,PDW匹配根本区分不了个体。所以后续的特征工程和模型设计,本质上都是在PDW之外找回更多可分辨的信息。
2.2 传统参数匹配为什么在复杂电磁环境下失效
传统参数库匹配的第一类失效场景是捷变。一部雷达的重频可以是参差加抖动,载频可以分波段跳变,PDW里的PRI和RF每次都不一样。参数库如果按固定值建,匹配自然失败;如果按范围建,又会把不同辐射源混在一起。
第二类失效场景是同型雷达的个体差异。同一型号的两部雷达,标称频率、脉宽都一致,PDW层面几乎无法区分,但它们的发射机硬件在细微特征上不一样。要用机器学习做个体识别(SEI),前提是从信号里提取出足够细的指纹特征,而PDW已经丢失了这些细节。综述里的大量工作表明,机器学习方法在个体识别上的优势远超传统方法,靠的就是“学习隐式特征”,本质上是把人工设计特征换成从数据中学出来的映射,这套思路也被称作机器学习检测与分类的典型应用。
第三类失效场景是低截获概率(LPI)雷达。这类雷达用大时宽带宽积信号、低峰值功率来避免被截获,PDW参数层面特征是刻意被隐藏的。传统匹配完全没有抓手,只有从脉内调制、相位结构、谱特征上找规律,这正好是机器学习能发力的点。
2.3 综述文献的阅读顺序:先搭框架、再抓公式、最后按图索骥
拿到一篇信号识别领域的综述PDF,我的习惯是先跳过摘要之前的任何铺垫,直接看章节结构。机器学习+雷达辐射源识别的综述通常会按这一套排:第一节给任务定义和信号模型,第二节列特征提取方法,第三节按SVM、集成学习、深度学习的顺序讲分类器,第四节讲数据集和评测指标,第五节列开放问题。
抓主干之后,再挑跟你的任务最相关的一两个小节细读。比如只做型号识别,特征那节只需要看PDW层面和包络层面;要做个体识别,脉内无意调制和高阶统计量是重点。公式不需要全部推导,看懂每个特征“对什么敏感、对什么不敏感”就够了。最后一步是顺着参考文献按图索骥,找原始论文看实验条件——综述里只给结论,不给数据划分细节,而数据划分恰恰决定了结论是否可信。
如果你手边有图解机器学习算法这类的资料,我建议把特征工程那一章重读一遍。很多人卡住的不是模型结构,而是“特征从哪来、怎么归一化、怎么组合”,这部分图解资料往往讲得比原始论文更清楚。
2.4 任务边界决定技术路线:型号识别、个体识别、模式识别
辐射源识别根据目标粒度分成三种任务,数据标注成本和模型选择差别很大,我在实际做方案时先确认的就是这一点。
型号识别:判断辐射源属于哪个型号,目标是正确分到型号类。PDW五参数、包络形状、频谱包络这些特征通常够用。如果型号之间调制方式差异明显,SVM就能打得很准。数据标注成本中等,因为型号级标注靠参数测量设备和人工经验就能做。
个体识别(SEI):判断同一型号内的不同辐射源,对应到具体发射机。PDW特征几乎没有区分度,必须用脉内无意调制、相位噪声、放大器的非线性特征这类指纹特征。标注成本高一个数量级,因为需要每台发射机单独采集并人工核对身份。
模式识别:判断雷达当前工作模式,比如搜索、跟踪、制导。同一个辐射源在不同模式下信号特征有变化,需要结合序列信息和更多时域上下文。这种任务对特征时长的要求最高,通常要截获一段连续脉冲序列才能判定。
结论很直接:任务越细,需要的特征越细,数据量和标注成本越高。综述里很多模型对比的结论看似矛盾,其实是任务边界不一样。读综述时不看任务设定就看准确率,是最容易踩的坑。
3. 特征工程是主线:脉内无意调制、高阶统计量与特征融合
3.1 先说结论:特征选得不对,换什么模型都白搭
这条结论我用几次血泪经验换来的。最初做识别实验,我直接把IQ数据丢给一维CNN,仿真数据上效果不错,换到另一批采集数据立刻掉点。后来排查原因,发现不是模型问题,而是两批数据的信噪比分布不同,CNN把高信噪比的噪声特性当特征学进去了。如果先用特征工程把“信噪比无关”的物理量提取出来,再喂给模型,鲁棒性会好很多。
所以综述里讨论特征会花掉几乎一半篇幅,不是没道理的。特征决定了模型的“输入信息的上限”。分类器只是在做特征空间里的判决,如果特征空间里两类样本本来就混在一起,再高级的模型也分不开。
特征工程的目标是:增强辐射源本身的固有特征、抑制噪声和信道的影响、压缩数据量。这三条要同时满足,缺一不可。
3.2 无意调制特征:辐射源指纹的物理来源与提取思路
脉内无意调制,英文简称UMOP,是辐射源指纹特征里最受关注的一类。它的物理来源是发射机硬件的非理想特性:频率源存在相位噪声,功率放大器存在非线性,混频器会引入杂散,这些硬件偏差导致输出信号的幅度、相位、频率在理想值附近出现微小且稳定的偏差。同一型号的两台发射机,哪怕硬件设计完全一样,器件参数的实际偏差也不同,这个偏差就是区分身份的依据。
提取思路大致分三条:时域上分析包络起伏和相位轨迹,频域上分析相位噪声的功率谱形状,变换域上分析时频图的纹理差异。其中相位轨迹是最直观的,因为相位对返回波无声的影响是恒定的,噪声对相位的影响可以被抑制。具体做法是把信号的瞬时相位做去线性化处理,去掉理想调制部分后剩下的相位残差就是无意调制的承载物。
需要注意,无意调制特征非常脆弱。噪声稍大就会被淹没,ADC量化精度不足也会把特征抹掉。所以这类特征一般要求高信噪比采集条件,至少10dB以上,否则提取出来的指纹是噪声的指纹,不是辐射源的指纹。
3.3 高阶统计量:对高斯噪声不敏感,但样本少时方差会爆炸
高阶统计量是辐射源特征里被综述反复提及的一类,核心是二阶矩、四阶累积量和它们的组合形式。理论优势在于:高斯噪声的二阶以上累积量为零,所以高阶累积量对高斯噪声天然不敏感。这在低信噪比场景下非常诱人,不需要做太多降噪预处理就能得到相对干净的特征。
典型做法是计算信号的四阶累积量,常用C40和C42两个分量,再结合二阶矩做归一化。代码实现不复杂,但样本数少的时候估计方差会爆炸,这是我踩过的坑:一段脉冲只给128个采样点,四阶累积量的估计值抖动很大,连类内的稳定性都保证不了,更别说类间区分度。
建议是:用高阶统计量之前,先确认每个样本的时长足够长。工程上我一般要求单个样本点数不少于512,经验上1024以上才开始稳定。如果原始脉冲太短,可以先把多个脉冲拼接再算统计量,但拼接前要保证脉冲是同一个辐射源发出的,否则特征就混了。
3.4 特征融合不是简单拼接:归一化、降维与信息冗余
很多初学的人会把所有特征怼成一个长向量再训练,结果要么维度爆炸,要么某些特征量纲太大把其他特征淹没,还有特征之间相关性太高导致模型病态。综述里提到的融合策略通常是两类:早期融合(特征级拼接)和后期融合(决策级投票)。
早期融合的关键是归一化。不同特征的物理单位不同,幅度差异可能达到几个数量级。比如载频特征在吉赫兹量级,脉内特征在毫安培量级,如果不归一化,分类器会完全忽略小幅度特征。我一般用Z-score,即减均值除以标准差,而不是Min-Max归一化,因为Z-score对离群点更稳健。
降维方面,PCA是最常用的做法,但要注意只对特征矩阵做拟合,别把标签信息泄漏进来。特征相关性检查也值得做:两两特征画散点图或者算相关系数,相关系数超过0.9的只留一个,否则冗余特征会让模型更敏感、泛化更差。
后期融合的做法是多个分类器各自输出置信度,再做加权投票或堆叠。好处是不同特征维度的独立性更强,坏处是整体流程复杂。除非各个特征单独建模的效果都足够好,否则我不建议一上来就搞后期融合。
3.5 从IQ数据到特征向量:一段可以跑通的最小特征提取代码
给出一段最小实现,提取瞬时幅度、瞬时频率、四阶累积量三类特征:
import numpy as np def extract_features(iq, fs=100e6): """ 从复IQ信号提取辐射源识别基础特征 iq: 复数数组, 长度建议>=1024 fs: 采样率, 默认100MHz 返回: 一维特征向量 """ # 去除直流分量, 避免ADC偏置干扰 iq = iq - np.mean(iq) # 1. 瞬时幅度统计 amp = np.abs(iq) amp_norm = amp / (np.mean(amp) + 1e-12) # 归一化, 抑制幅度绝对值差异 amp_feats = [ np.std(amp_norm), # 幅度起伏程度 np.max(amp_norm) - np.min(amp_norm), # 动态范围 np.mean(np.abs(np.diff(amp_norm))), # 邻域变化量 ] # 2. 瞬时频率统计 phase = np.unwrap(np.angle(iq)) inst_freq = np.diff(phase) / (2 * np.pi) * fs # 瞬时频率, 单位Hz # 去线性趋势, 提取频率调制残差 inst_freq_detrend = inst_freq - np.polyval(np.polyfit( np.arange(len(inst_freq)), inst_freq, 1), np.arange(len(inst_freq))) freq_feats = [ np.std(inst_freq_detrend), # 频率残差起伏 np.max(np.abs(inst_freq_detrend)), # 最大频偏 ] # 3. 四阶累积量 C40, C42 (只取实部) n = len(iq) m2 = np.mean(np.abs(iq)**2) m4 = np.mean(np.abs(iq)**4) c40 = np.mean(iq**4) - 3 * m2**2 c42 = m4 - np.abs(m2)**2 - 2 * m2**2 high_feats = [np.real(c40) / (m2**2 + 1e-12), np.real(c42) / (m2**2 + 1e-12)] # 拼接成完整特征向量 return np.concatenate([amp_feats, freq_feats, high_feats])这段代码要注意几个参数:amp_norm的归一化分母加了1e-12防止零除;inst_freq是差分求频率,对噪声敏感,如果信噪比低于5dB,建议先对IQ做窄带滤波;四阶累积量公式里c40用的是复数四阶矩,np.mean(iq**4)在Python的复数运算下是合法的。特征向量的长度为7,量纲各不相同,后续一定要做标准化。
4. 模型选型:小样本SVM、中样本集成、大样本CNN,Transformer排最后
4.1 样本量决定模型复杂度的选型表
综述里出现的机器学习算法按时间线大致是:传统统计分类器、SVM、随机森林、CNN、注意力机制和Transformer。很多人选模型只看“谁准确率高”,忽略了自己的样本量。我一般按样本量做初步筛分,表如下:
| 模型 | 适用样本量 | 计算资源 | 可解释性 | 适用场景 |
|---|---|---|---|---|
| SVM | 几百到几千 | 很低 | 中 | 型号识别、小样本SEI |
| 随机森林 | 几千 | 低 | 高 | 特征重要性分析、快速基线 |
| 一维CNN | 几万以上 | 中 | 低 | 原始IQ直接分类、大规模SEI |
| 时频图+二维CNN | 几万以上 | 中高 | 低 | 脉内调制特征丰富的场景 |
| Transformer | 十万以上 | 高 | 低 | 长序列、多脉冲联合识别 |
选型逻辑很简单:样本量不够时,用复杂模型就是过拟合。SVM在小样本场景仍然能打,是因为它的结构风险最小化设计,对样本量的要求比深度网络低得多。深度网络的参数动辄几百万,几千条样本根本喂不饱。
4.2 SVM的核函数与参数:小样本场景的基线模型
综述里SVM是出现频率最高的基线。雷达辐射源识别特征通常是中低维度(几十到几百维),样本量几千,这种条件正是SVM的优势区间。
核函数选择我一般直接用RBF核,因为它可以隐式映射到高维空间,适用面最广。两个关键参数:C是惩罚系数,越大越容易过拟合,越小越容易欠拟合;gamma是RBF核的宽度参数,越大说明决策边界越复杂。常用的调参方法是网格搜索加交叉验证,范围取C在[0.01, 100]对数刻度,gamma在[0.0001, 1]对数刻度。
SVM还有个容易被忽略的点是类别不平衡。如果某一类辐射源的样本特别少,SVM会倾向于把样本都判给多数类。解决方案是给class_weight设为'balanced',或者用代价敏感学习的思路给少数类更高的误分代价。
4.3 一维CNN处理原始IQ:结构与参数怎么设
当样本量上了几万,就可以考虑用一维CNN直接处理原始IQ序列。这里有一个很多人会搞混的点:一维CNN处理的是长度N的实数序列,它需要把IQ两路拆开作为两个通道,类似图像的RGB通道。和图像分类任务的二维CNN相比,感受野的含义不同、池化方式不同,别把计算机视觉那套网络结构直接套过来用。
一个简单可用的1D CNN骨架如下:
import torch import torch.nn as nn class RadarCNN1D(nn.Module): def __init__(self, input_len=1024, num_classes=5): super().__init__() # 假设输入形状: (batch, 2, input_len), 两路为I和Q self.features = nn.Sequential( nn.Conv1d(2, 16, kernel_size=7, stride=2, padding=3), nn.ReLU(), nn.MaxPool1d(kernel_size=2, stride=2), nn.Conv1d(16, 32, kernel_size=5, stride=2, padding=2), nn.ReLU(), nn.MaxPool1d(kernel_size=2, stride=2), ) # 计算展平维度 self._flatten_dim = None self.classifier = None def forward(self, x): x = self.features(x) if self.classifier is None: self._flatten_dim = x.shape[1] * x.shape[2] self.classifier = nn.Linear(self._flatten_dim, num_classes) x = x.view(x.size(0), -1) return self.classifier(x)这个网络用kernel_size=7的第一层卷积提取短时局部特征,相当于在时间轴上看一小段脉冲的调制变化。stride=2可以快速降采样,减少计算量。MaxPool1d进一步压缩时间维度,增加平移不变性。第一层卷积核大小是7,覆盖的是7个采样点,如果采样率是100MHz,7个点对应70纳秒,对脉内调制的分辨率够用;如果采样率更高,可以适当增大卷积核。
4.4 Transformer不是默认选项:什么时候才值得上
综述里近年常把Transformer和注意力机制作为SOTA方法列出,但我的判断是:它不应该成为默认选择。原因很简单,Transformer的参数量大、训练数据需求高,在没有足够样本的情况下会严重过拟合。就算用预训练模型微调,信号领域也没有像文本、图像那样成熟的预训练权重可复用。
什么时候值得用Transformer?一是样本量超过十万甚至百万级,数据增强和正则化手段都做到位了;二是任务本身需要长距离依赖,比如跨多个脉冲联合建模,判断一个脉冲串的工作模式,这种序列化的任务正好是Transformer的强项。单脉冲的辐射源识别,CNN的性价比通常更高。
如果打算试Transformer,建议从简单方案开始:把一维CNN的输出序列作为Transformer编码器的输入,而不是直接对原始IQ做token化。这样特征层级更高,训练难度小得多。
4.5 训练与评估的最小代码:划分、归一化、交叉验证、混淆矩阵
给出一个端到端流程,假设特征已经提取好,存在X和y里:
from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from sklearn.metrics import confusion_matrix, classification_report # 分层划分, 保证各类别比例在训练/测试集一致 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, stratify=y, random_state=42) # 标准化: 只在训练集上拟合, 防止信息泄漏 scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test) # SVM训练: RBF核, 自动平衡类别权重 model = SVC(kernel='rbf', C=10, gamma='scale', class_weight='balanced', probability=True, random_state=42) model.fit(X_train_scaled, y_train) # 评估 y_pred = model.predict(X_test_scaled) print(classification_report(y_test, y_pred, digits=3)) print(confusion_matrix(y_test, y_pred))stratify=y保证训练集和测试集里的类别比例一致,这个参数在类别不平衡时非常关键。gamma='scale'让sklearn根据特征数量自动计算初始值,比手动设固定值更稳。probability=True让你后续可以获取每个类别的预测概率,做置信度阈值判断时用得到。
标准化只拟合训练集,测试集用同一个scaler transform,这条容易被新手忽略但极其重要——如果在全部数据上fit再split,测试集的分布信息提前泄漏给了模型,评估结果会虚高。
5. 数据集与评测避坑:没有公开标准集,怎么建基准、防翻车
5.1 实测、仿真与公开数据:三类数据源的可用性对比
雷达辐射源识别领域最大的痛点是缺乏公开标准数据集。这个方向涉及敏感信息,实测数据很难公开,各家实验室自采自用,导致论文之间无法横向对比。这跟计算机视觉领域的ImageNet、自然语言处理领域的GLUE完全不同,是一个长期困扰从业者的结构性缺陷。
| 数据来源 | 可用性 | 标注成本 | 真实性 | 主要问题 |
|---|---|---|---|---|
| 实测采集 | 低 | 高 | 最高 | 难获取、难共享、场景受限 |
| 仿真生成 | 高 | 低 | 中 | 模型与实测时有分布偏移 |
| 公开数据集 | 极低 | - | - | 数量极少、规模小、任务单一 |
实测数据虽然是金标准,但样本覆盖有限,尤其是复杂电磁环境下的交织信号很难采全。仿真数据的优势是可控:可以自由设定信噪比、信号类型、参数范围,批量生成样本。但仿真和实测之间有“最后一公里”的鸿沟,仿真里建模不完善的器件非线性、信道衰落、接收机响应,实测里都会成为新变量。
我的建议是:先用仿真数据做算法验证和模型选型,再用少量实测数据做最终确认。如果实测数据有限,用迁移学习思路在仿真上预训练、实测上微调,工程上可行且比直接只用实测训练效果更稳。
5.2 评测指标不能只盯准确率:类别不平衡时的正确姿势
辐射源识别的场景天然类别不平衡:某些型号的雷达数量多、截获概率高,样本量可能比其他型号大一个数量级。这时候准确率会被多数类主导,模型看似98%准确率,少数类可能一条都识别不出来。
正确做法是看混淆矩阵和宏平均F1。宏平均F1对每个类别分别计算F1再取平均,少数类和多数类权重相同,能真实反映模型对每个类别的识别能力。如果任务对误报的代价不对称,比如把A型雷达误判成B型雷达的后果比漏报更严重,那还需要引入代价敏感评估,甚至直接调class_weight。
交叉验证的划分方式也要注意。如果同一个辐射源的多个脉冲出现在训练集和测试集里,属于数据泄漏。正确做法是按辐射源个体划分,而不是按脉冲划分:同一个辐射源的所有脉冲只能出现在一侧。综述里很多论文的成绩虚高,就是因为没按个体划分,模型实际上记住了“个体”而不是“型号”。
5.3 五个翻车现场:现象、原因、解决
踩坑记录1:仿真训练准确率99%,实测直接掉到50%。
现象:仿真数据上模型表现优异,换到实测数据一塌糊涂。原因:仿真模型没有建模发射机的无意调制、接收机响应的非线性和信道多径效应,模型学到的是仿真器特有的分布。解决:做域自适应,用实测数据微调;或者在仿真中加入更多随机扰动,提升数据多样性。
踩坑记录2:分类器把信噪比当成了特征。
现象:高信噪比样本和低信噪比样本被模型分成了两个明显的簇。原因:特征提取时没有去除信噪比相关项,比如直接用幅度绝对值做特征。解决:所有特征都做幅度归一化;训练集按信噪比分层,确保每个信噪比段在训练和测试里都有覆盖。
踩坑记录3:全局归一化把个体指纹抹掉了。
现象:加了Z-score归一化后,准确率反而下降。原因:无意调制特征的幅度很小,全局归一化归一化的是信号的总能量,小特征的贡献被完全压掉。解决:对每类特征分别归一化,比如包络特征按包络均值归一化,频率特征按频率均值归一化,四阶累积量按二阶矩归一化,各归各的。
踩坑记录4:脉冲分选错误导致标签错位。
现象:训练集里同一个标签下混入了其他辐射源的样本,模型学出乱七八糟的边界。原因:真实场景多部雷达信号交织,脉冲分选(把属于同一辐射源的脉冲分到一起)本身会出错,分选结果直接决定了训练样本的标签质量。解决:在识别之前加质量门槛,分选置信度低于阈值的脉冲丢弃;或者用聚类先做无监督预划分,再人工确认。
踩坑记录5:深度模型在小样本上过拟合,训练集损失降到零、验证集一塌糊涂。
现象:CNN在几百条样本上训练,训练集准确率100%,测试集只有60%。原因:模型容量远超数据所能提供的信息量。解决:换成SVM或随机森林;如果坚持用CNN,加数据增强(噪声、时间偏移、幅度扰动),加Dropout,或者用仿真数据预训练再微调。
6. 留给你的最小验证:从仿真信号到识别结论的半天闭环
如果你正在评估这个方向值不值得投入,建议先用半天时间跑通一个最小闭环:生成两类仿真信号,各200条,提取特征,用SVM训练,看混淆矩阵。这个流程能让你快速体会到“特征区分度”和“模型复杂度”之间的关系。
最小验证的步骤是:用信号仿真函数生成LFM和BPSK两类信号,叠加高斯白噪声,设定信噪比10dB;按第3章的代码提取特征;按第4章代码训练SVM;输出分类报告。如果两类的特征本身区分度好,SVM准确率应该轻松超过95%。然后你可以做一次扰动实验:把信噪比降到0dB再生成测试集,观察准确率下降幅度——这个下降幅度就是你的特征鲁棒性边界。
进阶做法是在这个闭环上做序列级识别。仿真生成一串脉冲,每个脉冲单独预测,再用多数投票决定整个脉冲串的型号。这个简单技巧能显著提升识别稳定性,因为单脉冲识别受噪声影响大,多数投票天然有平滑作用。之后再考虑换模型、加特征、做域自适应,每改一步就回到这个闭环上对比,不要一上来就堆复杂度。
我自己的教训是:雷达辐射源识别项目十有八九翻车在评测上,而不是算法上。数据划分不干净、信噪比混着、特征没有逐项归一化,哪怕模型再新,结论也站不住脚。如果你能先把数据和评测做扎实,用SVM做基线就已经能跑通大部分应用场景。希望帮到你。
本文还有配套的精品资源,点击获取