信号处理之CFAR恒虚警检测
该文本介绍了雷达恒虚警检测器的工作原理及其相关技术:
原理:恒虚警检测器通过设定门限对输入信号进行判断以确定目标是否存在。当输入信号超过门限时判为有目标;否则判为无目标。该方法在强干扰环境中仍需保持较高信噪比,并采用CFAR(相参非相参自适应滤波与积分)处理以抑制干扰。
定义:接收机输出端的信号模型分为有噪声和有噪声+目标两种情况(x(t)=s(t)+n(t) 和 x(t)=n(t))。通过假设检验(H₀ 和 H₁)对信号进行分类:
- H₀ 为真时的四种情况:正确不发现、虚警;
- H₁ 为真时的两种情况:漏警、正确检测。
CFAR相关参数:- 非相参累加后截位数与非相参积累CPI数相关联;
- CFAR输出信噪比计算公式与均值截位位数有关;
- 杂波剔除和多普勒维检测波门的格式及设置;
- 非相参和多普勒维积累长度的设置方法。
MATLAB仿真:展示了慢门限和快门限处理的结果分析过程,并提供了具体的仿真代码实现。
一,原理
该系统首先对输入的噪声数据进行预处理,并设定一个动态阈值作为判断基准。随后将此阈值与输入信号强度对比分析。当输入信号强度超过设定阈值时,则判定存在目标物体。通常情况下,来自信号源的信息在传输过程中会受到多种环境因素的影响:首先是接收装置接收后的数据完整性可能受到影响;其次是由于地物反射、雨雪覆盖等自然现象导致的信息质量下降;最后还需考虑海浪等海洋环境因素所造成的不利影响。此外,在雷达设备运行过程中还需要面对内部热噪声以及其他杂波等背景 noise 的困扰;其中还包括敌方电子设备释放出来的有源与无源干扰 signal 的威胁。值得注意的是,在这种复杂的环境下工作时:不同类型的杂波以及敌方电子干扰往往具有更强的幅值(比内部噪声电平高出许多倍)。这种强幅值特征使得在高信噪比环境中仍需采取有效措施以确保检测系统的可靠性运行
二,定义
信号接收机输出端的信号用 x ( t ) x(t) x(t)表示,这里存在两种情况:
噪声和信号同时存在: x ( t ) = s ( t ) + n ( t ) x(t)=s(t)+n(t) x(t)=s(t)+n(t)
只有噪声存在: x ( t ) = n ( t ) x(t)=n(t) x(t)=n(t)
分别用于表征接收机在无信号与有信号状态下的工作状态假设;分别代表检测器完成无信号与有信号判断过程的结果输出。
于是接收机的输入与检测器的判决将有四种情况:
当H₀成立时被判定为D₀,则称这种情况属于接收器未接收到信号而检测器误报无信号的情况;当H₀成立时被判定为D₁,则称这种情况属于虚警;当H₁成立时被判定为D₀,则称这种情况属于漏警;当H₁成立时被判定为D₁,则称这种情况属于检测到真实信号并正确报警的情形。
其中第一种情况和第四种情况属于正确判决,其余两种属于错误判决。
用 p(z|H_0) 和 p(z|H_1) 分别表示在无信号输入和有信号输入情况下接收机输出端的信号电平所遵循的概率密度函数;其中H_0代表无信号输入情况下的概率密度函数表达式,则H_1代表有信号输入情况下的概率密度函数表达式;当接收机输出端的电平落在Z_0区间时判定为无信号,在Z_1区间时判定为有信号。
一维CFAR检测结果:

三,CFAR相关参数计算方式:
2、在CFAR系统的实现过程中,
其输出端信噪比计算公式的确定与其平均截断位置设置存在密切关联。
例如,在特定条件下,
当平均截断位置设定较高时,
通常会导致信噪比计算结果更加稳定。
采用CFAR算法进行平均分段处理时, 均值截断后的平均分段长度定为B. 该算法输出的结果即信噪比数值等于S₀. 那么, 信噪比的具体计算公式即: 20 log₁₀(S₀ / 65536). 其中, S₀代表的是CFAR算法输出的结果. 此外, 关于CFAR算法中平均分段长度B的具体选择, 建议遵循以下原则: 当被测目标信号较弱时, 应将B设定为10; 而当被测目标信号较强时, 则应将B设定在7这个范围内.
- 杂波剔除的起始点为M。
- 杂波剔除的终止点为N。
- 当终止点大于等于起始点时,则杂波剔除范围确定为[M,N];当终止点小于起始点时,则该范围由两部分组成:[0,N]以及[M,ABINS](其中ABINS代表多普勒维的最大值)。
4、第4条、非相参积累长度的设置
该参数的具体取值可通过以下步骤进行配置:
- 首先确定基础参数值;
- 然后根据系统需求设定最大允许值;
- 最后结合实际应用场景进行优化设置。
非相参积累长度=相参积累处理的FFT点数。
非高重频模式下:
非互相关累积长度等于MTD算法中的RBINS乘以ABINS加上MTD算法中的RBINS乘以补零数量。
5、多普勒维长度的设置
多普勒维度计算采用相参积累处理方式(基于MTD算法或快速傅里叶变换FFT),其计算结果等于处理后的FFT点数量。
四,MATLAB仿真
%下段是雷达恒虚警模块的仿真程序:
clear all;close all;clc;
%产生瑞利噪声
sigma=2;t=1e-3;fs=1e6;ts=1/fs;
t1=0.05e-3:1/fs:0.2e-3-1/fs;
n=length(t1);
rand('state',0);
u=rand(1,n);
rayleigh_noise=sqrt(2*log2(1./u))*sigma;
%产生目标回波
N=t/ts;
N=uint32(N);
s_pc_1=[zeros(1,100),1,zeros(1,N-101)];
noise=rand(1,N);
rayleigh_clutter=[zeros(1,50),rayleigh_noise,zeros(1,N-200)];
figure,subplot(3,1,1),plot((0:ts:t-ts),s_pc_1),title('目标回波信号');
subplot(3,1,2),plot((0:ts:t-ts),noise),title('热噪声');
subplot(3,1,3),plot((0:ts:t-ts),rayleigh_clutter),title('瑞利杂波');
s_pc=s_pc_1+0.1*rayleigh_clutter+0.1*noise;
figure(2)
plot((0:ts:t-ts),s_pc),xlabel('t(单位:s)'),title('叠加了瑞利分布杂波、热噪声的目标回波');
%慢门限恒虚警处理
cfar_result=zeros(1,N);
cfar_result(1,1)=s_pc(1,1);
for i=2:N
cfar_result(i)=s_pc(1,i)/mean(s_pc(1,1:i));
end
figure(3),plot((0:ts:t-ts),cfar_result),
xlabel('t(单位:s)'),title('采用慢门限处理结果');
%快门限恒虚警处理
cfar_k_result=zeros(1,N);
cfar_k_result(1,1)=s_pc(1,1)/(sqrt(2)/pi*mean(s_pc(1,2:17)));
%第1点恒虚警处理时噪声均值由后面的16点的噪声确定
for i=2:16 %第2点到16点的恒虚警处理的噪声均值由其前面和后面的16点的噪声共同决定
noise_mean=sqrt(2)/pi*mean(s_pc(1,1:i-1)+mean(s_pc(1,i+1:i+16)))/2;
cfar_k_result(1,i)=s_pc(1,i)/noise_mean;
end
for i=17:N-17
%正常的数据点的恒虚警处理的噪声均值由其前面和后面的各26点的噪声决定
noise_mean=sqrt(2)/pi*max(mean(s_pc(1,i-16:i-1)),mean(s_pc(1,i+1:i+16)));
cfar_k_result(1,i)=s_pc(1,i)/noise_mean;
end
for i=N-16:N-1
%倒数第16点到倒数第2点恒虚警处理的噪声的均值由其前面16点和后面的噪声共同决定
noise_mean=sqrt(2)/pi*(mean(s_pc(1,i-16:i-1))+mean(s_pc(1,i+1:N)))/2;
cfar_k_result(1,i)=s_pc(1,i)/noise_mean;
end
%最后一点的恒虚警处理的噪声均值由其前面16点的噪声决定
cfar_k_result(1,N)=s_pc(1,N)/(sqrt(2)/pi*mean(s_pc(1,N-16:N-1)));
figure(4)
plot(0:ts:t-ts,cfar_k_result),xlabel('t(单位:s)'),title('采用快门限恒虚警处理结果');
