基于多域特征与决策树的雷达干扰信号智能识别------MATLAB 仿真实现
本文环境:MATLAB R2025b + Signal Processing Toolbox + Statistics and Machine Learning Toolbox + Deep Learning Toolbox
代码版本:完整工程见文末说明;本文给出九类干扰建模、七维特征提取、决策树识别与 ECNN 深度网络的核心代码片段。
1 问题背景
现代战场电磁环境呈现"密度高、样式多、变化快"的特征:干扰体制从早期窄带瞄准式、阻塞式噪声压制,演进为以 DRFM 为核心的灵巧转发、间歇采样转发等新型体制;同一场景往往多种干扰叠加、交替出现。干扰识别是电子情报侦察与雷达自卫防护之间的关键枢纽------压制式干扰需要提高发射功率或切换频点,转发欺骗式干扰需要脉内特征鉴别与波形分集,误判将导致抗干扰资源被严重浪费 。
两类主流技术路线:
- 基于人工特征的浅层分类:时域/频域/时频域手工设计物理量(能量、带宽、脉冲宽度、谱对称性等)+ SVM/决策树/随机森林。可解释性强、开销小、对样本需求低,但依赖专家经验,泛化能力受限。
- 基于深度学习的端到端识别:信号转时频图或原始波形直接喂 CNN/RNN。免人工特征工程,但高度依赖大规模标注数据,小样本下性能退化。
本文以九类典型干扰为对象,给出干扰建模 → 多域特征提取 → 分类识别的完整 MATLAB 实现链路,并通过决策树与 ECNN 两组对照实验,验证物理可解释特征在数据稀缺场景下的价值。
2 干扰信号建模
2.1 基准发射信号
以 LFM 脉冲为雷达发射基准:
S L F M ( t ) = r e c t ( t T p ) exp ( j π k t 2 ) , k = B / T p S_{\mathrm{LFM}}(t)=\mathrm{rect}\left(\frac{t}{T_p}\right)\exp\left(j\pi k t^2\right),\quad k=B/T_p SLFM(t)=rect(Tpt)exp(jπkt2),k=B/Tp
实验参数:脉宽 T p = 20 μ s T_p=20\,\mu\mathrm{s} Tp=20μs,带宽 B = 10 M H z B=10\,\mathrm{MHz} B=10MHz,采样率 f s = 20 M H z f_s=20\,\mathrm{MHz} fs=20MHz,信噪比 0 dB(AWGN)。每类干扰生成 1000 个样本(决策树实验)/ 300 个样本(深度网络实验)。
matlab
%% 1. 仿真参数与基准 LFM 信号
Tp = 20e-6; % 脉冲宽度 20us
B = 10e6; % 带宽 10MHz
fs = 20e6; % 采样率 20MHz
[t, S] = lfm_signal(Tp, B, fs, 0);
function [t, S] = lfm_signal(Tp, B, fs, f0)
% 生成 LFM 线性调频脉冲复包络
% 输入: Tp 脉宽(s), B 带宽(Hz), fs 采样率(Hz), f0 载频(Hz)
% 输出: t 时间轴(s), S 复信号
if nargin < 4, f0 = 0; end
N = round(Tp*fs);
t = (0:N-1)'/fs;
k = B/Tp; % 调频斜率
rect = double(abs(t) <= Tp/2); % 矩形窗
S = rect .* exp(1j*(2*pi*f0*t + pi*k*t.^2)); % LFM 复包络
end
2.2 九类干扰模型(三大体系)
依据产生机理与信号结构差异,将九类干扰划分为三大体系:
(一)转发欺骗类(类1~4,核心器件 DRFM)
| 类别 | 名称 | 机理 |
|---|---|---|
| 1 | 全脉冲转发 | 单次延时放大后转发,距离维产生单个假目标 |
| 2 | 全脉冲密集转发 | 多次延时转发叠加,形成 3~6 个密集假目标群 |
| 3 | 间歇采样转发 ISRJ | 周期截取信号片段交替转发,脉冲压缩失配产生密集假目标 |
| 4 | 部分脉冲密集转发 | 脉宽内随机时间区间密集转发,仅覆盖部分脉冲 |
(二)噪声调制类(类5):灵巧噪声 = DRFM 相干信号 × 随机噪声调制,同时具备"相干性"与"随机性",最具威胁。
(三)压制类(类6~9):噪声调频、宽带压制、扫频、梳状谱,以"淹没"目标回波为目的。
matlab
%% 2. 九类干扰生成(核心函数片段)
% 类1 全脉冲转发:延时 tau 后按幅度 A 转发
function J = gen_full_repeater(t, S, tau, A, fd)
if nargin < 5, fd = 0; end
if nargin < 4, A = 1.0; end
tt = t + tau;
Sd = interp1(t, S, tt, 'linear', 0); % 时移
J = A * Sd .* exp(1j*2*pi*fd*t); % 多普勒调制
end
% 类2 全脉冲密集转发:多延时叠加
function J = gen_dense_repeater(t, S, taus, As, fd)
J = zeros(size(S));
for n = 1:length(taus)
J = J + As(n) * gen_full_repeater(t, S, taus(n), As(n), fd);
end
end
% 类3 间歇采样转发 ISRJ:周期 T_samp 截取 T_slice 片段转发
function J = gen_isrj(t, S, T_slice, T_samp, K, L)
J = zeros(size(S));
for l = 1:L
for k = 1:K
p_rect = double(abs((t - k*T_samp - T_slice/2)/T_slice) <= 0.5);
J = J + p_rect .* interp1(t, S, t - l*T_samp, 'linear', 0);
end
end
end
% 类5 灵巧噪声:ISRJ × (1 + 高斯调制)
function J = gen_smart_noise(t, S, T_slice, T_samp, K, sigma)
if nargin < 6, sigma = 0.4; end
S_isrj = gen_isrj(t, S, T_slice, T_samp, K, 1);
J = S_isrj .* (1 + sigma*randn(size(t)));
end
% 类6 噪声调频:宽带噪声积分驱动相位
function J = gen_noise_fm(t, U0, K_fm, sigma)
dt = t(2)-t(1);
int_n = cumsum(sigma*randn(size(t)))*dt;
J = U0*cos(2*pi*K_fm*int_n);
end
% 类7 宽带压制:直接注入高斯白噪声
function J = gen_barrage(t, P)
if nargin < 2, P = 1.5; end
J = sqrt(P)*randn(size(t));
end
% 类8 扫频:瞬时频率周期性扫描
function J = gen_sweep(t, delta_fs, T_sweep, U0)
dt = t(2)-t(1);
fj = delta_fs * mod(t, T_sweep) / T_sweep;
J = U0*cos(2*pi*cumsum(fj)*dt);
end
% 类9 梳状谱:多个窄带载波叠加
function J = gen_comb(t, Tp, f_comb, k_comb)
rect = double(abs(t) <= Tp/2);
J = zeros(size(t));
for i = 1:length(f_comb)
J = J + k_comb(i)*rect.*exp(1j*2*pi*f_comb(i)*t);
end
J = real(J);
end
3 七维多域特征提取
核心矛盾:既要保留类别判别信息,又要物理含义明确、计算简单。从时域、频域、统计三个维度设计 7 个特征:
| 特征 | 含义 | 判别机理 |
|---|---|---|
| F1 能量 | ∑ n ∣ x n ∣ 2 \sum_n|xn|^2 ∑n∣xn∣2 | 压制类持续满功率最高,转发类仅脉冲期间有能量 |
| F2 带宽 | 幅度高于峰值 30% 的频点数 | 转发类集中于 LFM 主瓣,噪声调频显著展宽,梳状谱最窄 |
| F3 时域连续性 | 低于自适应阈值采样点占比 | ISRJ/部分脉冲转发"时断时续"取值低 |
| F4 采样窗均值 | 脉冲头尾平均幅度一半 | 区分密集转发(前后沿有能量)与 ISRJ(仅中间有信号) |
| F5 时宽 | 包络高于 0.1 的时间跨度 | 压制类非脉冲型,时宽偏小 |
| F6 频域矩偏度 | 频谱三阶中心矩归一化量 | 宽带压制≈0、扫频负偏、梳状谱正偏 |
| F7 局部矩偏度 | 频谱分段偏度均值 | 细化压制类内部边界 |
matlab
%% 3. 七维特征提取
Npts = length(t);
Features = zeros(N_total, 7); % N_total 为样本总数
% F1 能量
F_energy = sum(X_data.^2, 2);
% F2 带宽 (-10dB 频点计数)
F_bw = zeros(N_total,1);
for i = 1:N_total
xf = abs(fft(X_data(i,:))); xf = xf/max(xf);
F_bw(i) = sum(xf > 0.3)*fs/Npts/1e6; % MHz
end
% F3 时域连续性系数 N1:阈值由信号尾部统计量确定
F_n1 = zeros(N_total,1);
for i = 1:N_total
x = X_data(i,:);
Tth = 3*std(x(round(Npts*0.85:end)));
F_n1(i) = sum(abs(x) < Tth)/Npts;
end
% F4 采样窗均值 MW
F_mw = zeros(N_total,1);
wl = round(Npts*0.15);
for i = 1:N_total
x = X_data(i,:);
F_mw(i) = (mean(abs(x(1:wl))) + mean(abs(x(end-wl+1:end))))/2;
end
% F5 时宽
F_tw = zeros(N_total,1);
for i = 1:N_total
x = X_data(i,:);
env = abs(hilbert(x)); env = env/max(env);
F_tw(i) = sum(env > 0.1)/fs*1e6; % us
end
% F6 频域矩偏度
F_sk = zeros(N_total,1);
for i = 1:N_total
F_sk(i) = skewness(abs(fftshift(fft(X_data(i,:)))));
end
% F7 局部矩偏度 N2:频谱分段偏度均值
F_n2 = zeros(N_total,1);
nw = 5; ws = floor(Npts/nw);
for i = 1:N_total
x = X_data(i,:); sks = zeros(nw,1);
for w = 1:nw
seg = x((w-1)*ws+1:min(w*ws, Npts));
sks(w) = skewness(abs(fftshift(fft(seg))));
end
F_n2(i) = mean(sks);
end
% 组装特征矩阵
Features = [F_energy, F_bw, F_n1, F_mw, F_tw, F_sk, F_n2];
4 决策树识别实验
采用 CART 分类树(fitctree),70%/30% 划分训练/测试集,10 折交叉验证评估稳定性。
matlab
%% 4. 决策树训练与评估
cv = cvpartition(Y_label, 'HoldOut', 0.3);
X_tr = Features(training(cv), :); y_tr = Y_label(training(cv));
X_te = Features(test(cv), :); y_te = Y_label(test(cv));
ctree_model = fitctree(X_tr, y_tr, ...
'MinLeafSize', 30, 'MaxNumSplits', 60); % 防过拟合参数
y_pred = predict(ctree_model, X_te);
acc = mean(y_pred == y_te) * 100; % 整体准确率 OA
conf = confusionmat(y_te, y_pred); % 混淆矩阵
per_acc = diag(conf) ./ sum(conf, 2) * 100; % 逐类准确率
% 特征重要性(信息增益视角)
imp = predictorImportance(ctree_model);
4.1 识别结果
九类单干扰任务整体精度 83.8%:
| 干扰类别 | 识别精度 | 主要混淆对象 |
|---|---|---|
| 1 全脉冲转发 | 92.3% | 少量误判为密集转发 |
| 2 密集转发 | 82.3% | 与全脉冲转发、间歇采样互混淆 |
| 3 间歇采样转发 | 64.3% | 易误判为部分脉冲转发、灵巧噪声 |
| 4 部分脉冲转发 | 86.3% | 主要误判为间歇采样 |
| 5 灵巧噪声 | 45.3% | 最难分类,易混入转发或压制类 |
| 6 噪声调频 | 93.3% | 极少误判 |
| 7 宽带压制 | 96.7% | 近乎完美分类 |
| 8 扫频干扰 | 95.0% | 极少误判 |
| 9 梳状谱 | 98.7% | 最易识别 |
结论 :压制类(6~9)识别率 93%99%,人工特征区分效果优异;转发类(14)因同为 LFM 衍生信号而相互混淆;灵巧噪声(类5,45.3%)兼具相干性与随机性,为九类中最难点。
4.2 特征重要性分析
排序为 能量 > 频域矩偏度 > 采样窗均值 > 连续性系数 > 局部矩偏度 > 时宽 > 带宽 。
反直觉现象 :肉眼区分力最强的带宽特征,在决策树中重要性反而最低。原因:能量、矩偏度在信息增益层面已隐含带宽的判别信息,决策树按信息增益最大化选择组合特征,带宽失去独立分裂必要性。特征重要性不是特征的固有属性,而是取决于特征集合内部的冗余结构与分类器分裂策略------人工特征设计不应以"单维可分性"为唯一准则。
5 ECNN 深度学习识别实验
将识别对象扩展为 十二类(无干扰 + 7 类单一干扰 + 4 类复合干扰,如"距离欺骗+灵巧噪声""密集假目标+灵巧噪声""距离欺骗+ISRJ""线性扫频+ISRJ"),贴近多干扰并存的实战场景。
5.1 STFT 三通道时频图输入
matlab
%% 5.1 STFT 生成三通道时频图(实部/虚部/模值)
stft_nseg = 32; stft_overlap = 8; stft_nfft = 100;
stft_win = hamming(round((round(Tp*fs)/stft_nseg) + stft_overlap));
parfor i = 1:size(X_time,1)
S_stft = stft(X_time(i,:), fs, 'Window', stft_win, ...
'OverlapLength', stft_overlap, 'FFTLength', stft_nfft, 'Centered', true);
R = (real(S_stft) - min(real(S_stft(:)))) / (max(real(S_stft(:))) - min(real(S_stft(:))) + 1e-10);
Im = (imag(S_stft) - min(imag(S_stft(:)))) / (max(imag(S_stft(:))) - min(imag(S_stft(:))) + 1e-10);
M = (abs(S_stft) - min(abs(S_stft(:)))) / (max(abs(S_stft(:))) - min(abs(S_stft(:))) + 1e-10);
X_tf(:,:,:,i) = cat(3, R, Im, M); % [H, W, 3, N]
end
5.2 ECNN 网络结构(参考表5.2)
matlab
%% 5.2 四层卷积神经网络 ECNN
layers_cnn = [
imageInputLayer([stft_h stft_w 3], 'Name','input', 'Normalization','none')
convolution2dLayer([13 13], 64, 'Padding','same', 'Name','conv1')
batchNormalizationLayer('Name','bn1')
reluLayer('Name','relu1')
maxPooling2dLayer([2 2], 'Stride',[2 2], 'Name','pool1')
dropoutLayer(0.25, 'Name','drop1')
convolution2dLayer([9 9], 128, 'Padding','same', 'Name','conv2')
batchNormalizationLayer('Name','bn2')
reluLayer('Name','relu2')
maxPooling2dLayer([2 2], 'Stride',[2 2], 'Name','pool2')
convolution2dLayer([5 5], 128, 'Padding','same', 'Name','conv3')
batchNormalizationLayer('Name','bn3')
reluLayer('Name','relu3')
maxPooling2dLayer([2 2], 'Stride',[2 2], 'Name','pool3')
dropoutLayer(0.25, 'Name','drop2')
convolution2dLayer([3 3], 256, 'Padding','same', 'Name','conv4')
batchNormalizationLayer('Name','bn4')
reluLayer('Name','relu4')
maxPooling2dLayer([2 2], 'Stride',[2 2], 'Name','pool4')
fullyConnectedLayer(12, 'Name','fc_out')
softmaxLayer('Name','softmax')
classificationLayer('Name','output')
];
options = trainingOptions('sgdm', ...
'MaxEpochs', 30, 'MiniBatchSize', 32, ...
'InitialLearnRate', 0.001, 'Shuffle','every-epoch', ...
'Plots','none', 'Verbose', false, 'L2Regularization', 0.0001);
5.3 小样本敏感性实验(2%~8% 训练占比)
matlab
%% 5.3 多比例训练实验(每种比例重复 3 次取均值)
train_ratios = [0.02, 0.04, 0.06, 0.08];
for ri = 1:length(train_ratios)
for run_i = 1:3
cv = cvpartition(numel(Y_full), 'HoldOut', 1 - train_ratios(ri));
tr_idx = training(cv); te_idx = test(cv);
net = trainNetwork(X_tf(:,:,:,tr_idx), categorical(Y_full(tr_idx(:))), ...
layers_cnn, options);
Y_pred = classify(net, X_tf(:,:,:,te_idx));
acc = mean(Y_pred == categorical(Y_full(te_idx(:)))) * 100;
% ... 逐类计算 AA 并累加取平均
end
end
结果:
| 训练占比 | 整体精度 OA | 平均精度 AA |
|---|---|---|
| 2% | 47.1% | 47.2% |
| 4% | 53.0% | 53.1% |
| 6% | 57.9% | 58.0% |
| 8% | 58.8% | 58.9% |
OA 随样本稳步上升,OA≈AA 表明各类别均衡;2%~4% 提升较快、6%~8% 趋于饱和(与每类 300 样本的总规模及网络容量相关)。
6 两类方法对照分析
| 对比项 | 决策树(人工特征) | ECNN(端到端) |
|---|---|---|
| 任务 | 九类单干扰 | 十二类(含四类复合干扰) |
| 整体精度 | 83.8% | 最高 58.9% |
| 训练样本 | 70%(充足) | 2%~8%(极端小样本) |
差异源于三个方面:(1)任务复杂度------十二类含复合干扰,类间重叠显著;(2)特征适配度------人工特征已凝练物理判别依据,深度网络在有限样本下未充分收敛;(3)样本条件------决策树样本相对充足。该对照印证:标注数据稀缺的部署场景下,物理可解释特征 + 传统学习算法仍是可靠基线;深度学习更适合数据充足时发挥端到端优势。
7 讨论与展望
- 灵巧噪声识别困境(45.3%):需引入脉内相位微结构、循环平稳特性或高阶累积量等更高阶判别信息。
- 复合干扰挑战:建议"干扰识别 + 干扰分解"结合------先盲源分离/字典学习估计干扰成分,再逐成分判别,而非直接面对"混合体"做端到端分类。
- 研究局限:SNR 固定 0 dB,未覆盖低信噪比退化规律;未考虑多径、目标回波共存、雷达参数捷变等复杂耦合因素。
- 未来方向:复合干扰分解识别、-10~10 dB 信噪比鲁棒性、量化/剪枝/知识蒸馏实现嵌入式实时推理、人工特征与深度特征后期融合的混合智能识别。
参考文献
1 张国毅,等. 捷变雷达抗干扰与信号处理技术M. 北京:国防工业出版社.
2 刘忠. 基于DRFM的线性调频脉冲压缩雷达干扰技术研究D. 长沙:国防科学技术大学,2004.
3 王雪松,刘进,丹梅,等. 基于间歇采样转发干扰的雷达假目标生成方法J. 系统工程与电子技术.
4 赵国庆. 雷达对抗原理M. 西安:西安电子科技大学出版社,1999.
5 Sparrow M J, Cikalo J. ECM techniques to counter pulse compression radarR. United States Patent.
6 Li N, Zhang Y. A survey of radar ECM and ECCMJ. IEEE Transactions on Aerospace and Electronic Systems.
7 陈伯孝. 现代雷达系统分析与设计M. 西安:西安电子科技大学出版社,2012.
本文完整可运行工程、数据集与多场景调优版本见原文链接 EWFrontier;欢迎在评论区交流讨论。