现代雷达信号匹配滤波器
一 报告的目的
1.学习匹配滤波器原理并加深理解
2.初步掌握匹配滤波器的实现方法
3.不同信噪比情况下实现匹配滤波器检测
二 报告的原理
匹配滤波器是白噪声下对已知信号的最优线性处理器,下面从实信号的角度来说明匹配滤波器的形式。一个观测信号
是信号与干扰之和,或是单纯的干扰
,即
(1)
匹配滤波器是白噪声下对已知信号的最优线性处理器,对线性处理采用最大信噪比准则。以
代表线性系统的脉冲响应,当输入为(1)所示时,根据线性系统理论,滤波器的输出为
(2)
其中
,
(3)
在任意时刻,输出噪声成分的平均功率正比于
(4)
另一方面,假定滤波器输出的信号成分在
时刻形成了一个峰值,输出信号成分的峰值功率正比于
(5)
滤波器的输出信噪比用
表示,则
(6)
寻求
使得
达到最大,可以用Schwartz不等式的方法来求解.根据Schwartz不等式,有
(7)
且等号只在
(8)
时成立。由式(1)可知匹配滤波器的脉冲响应由待匹配的信号唯一确定,并且是该信号的共轭镜像。在
时刻,输出信噪比SNR达到最大。
在频域方面,设信号
的频谱为
,根据傅里叶变换性质可知,匹配滤波器的频率特性为
(9)
由式(9)可知除去复常数c和线性相位因子
之外,匹配滤波器的频率特性恰好是输入信号频谱的复共轭。式(2)可以写出如下形式:
(10)
(11)
匹配滤波器的幅频特性与输入信号的幅频特性一致,相频特性与信号的相位谱互补。匹配滤波器的作用之一是:对输入信号中较强的频率成分给予较大的加权,对较弱的频率成分给予较小的加权,这显然是从具有均匀功率谱的白噪声中过滤出信号的一种最有效的加权方式;式(11)说明不管输入信号有怎样复杂的非线性相位谱,经过匹配滤波器之后,这种非线性相位都被补偿掉了,输出信号仅保留保留线性相位谱。这意味着输出信号的各个频率分量在
时刻达到同相位,同相相加形成输出信号的峰值,其他时刻做不到同相相加,输出低于峰值。
匹配滤波器的传输特性
,当然还可用它的冲激响应
来表示,这时有:
(12)
由此可见,匹配滤波器的冲激响应便是信号
的镜像信号
在时间上再平移
。当信号表示为复信号时,匹配滤波器的冲击响应为信号的共轭镜像在时间上平移
。
三 报告内容与结果
3.1 线性调频(LFM)信号
脉冲压缩雷达最常见的调制信号是线性调频(Linear Frequency Modulation)信号,接收时采用匹配滤波器(Matched Filter)压缩脉冲。
根据匹配滤波器原理,信号为零中频线性调频信号,其脉冲信号采用线性调频信号,其带宽B为20KHz;脉冲宽度T为10ms;采样频率fs为50KHz。仿真结果如下:
图1 LFM信号的时域波形和幅频特性
3.2 无噪声时LFM脉冲的匹配滤波
根据匹配滤波器原理,对匹配滤波器进行仿真,无噪声时,仿真结果如下:
图2 匹配滤波器的时域输出
匹配滤波器输出最大值为第601点,采样间隔
=0.02ms,信号持续时间是-5ms到5ms,第601点对应的时间为601*
-
=7ms,即在信号结束那一时刻取得最大值。对延迟时间
的要求为
,
大于等于信号持续时间。
3.3 有噪声时LFM脉冲的匹配滤波
当信噪比SNR=10dB时,结果如下。
图3 信号时域波形 图4 匹配滤波器时域输出
有噪声时,匹配滤波前时域波形受噪声影响,检测性能降低,匹配滤波后信号能量聚集,信噪比43.2dB。
当SNR=0dB时,结果如下。
图5 信号时域波形 图6 匹配滤波器时域输出
信噪比SNR=0dB时,匹配滤波前信号完全淹没在噪声中,检测不出信号,匹配滤波后输出信噪比33.8dB。
3.4 现代雷达利用匹配滤波器测距
设回波信号为
,当回波信号通过匹配滤波器时,在
时刻达到最大值,根据峰值对应的时刻求出回波信号的延时,
,其中
为信号持续时间
,通过目标回波延时测距,目标距离
。
3.4.1 雷达单目标回波
仿真一个目标回波信号,无噪声,结果如下。
图7 匹配滤波输出
由图7可知匹配滤波器输出峰值对应的时刻
=0.022s,则信号延时
=0.002s,对应的目标距离Rtar=
=300km。
3.4.2 雷达多目标回波
仿真两个目标回波信号,一个信噪比为-10dB,一个信噪比为0dB。结果如图8所示。
两个峰值点对应的时间分别为
=0.022s,
=0.0226s,目标延时分别为
=0.002s,
=0.0026s,对应的目标距离分别为Rtar1=300km,Rtar2=390km。经过匹配滤波器后两目标分离开来,能分别测得各自的时间延时和距离,原本无法分辨的两个目标,在匹配滤波后能分辨开来。
图8 匹配滤波输出
3.5 现代雷达利用匹配滤波器进行DECHIRP参数估计
三次相位函数(Cubic Phase Function—CPF) 是一种检测和估计单分量二次调频信号参数的方法。由于其计算复杂度低,而且估计精度在信噪比较高时接近Cramer-Rao界,因此是一种很好的信号处理方法。本节针对多分量LFM信号的情况,提出了基于CPF进行信号检测与参数估计的方法,过程如下:
考虑如下单分量LFM信号模型
(13)
其中
为信号相位,
为幅度,
为初始频率,
为调频率。其CPF定义为
(14)
将式(13)代入式(14)可以得到
(15)
的能量集中在直线
上,所以可通过谱峰检测获得调频率
的估计。在估计出调频率
后,初始频率
可以通过解线性调频(dechirp)技术将原信号解调为正弦信号,通过傅里叶变换得到其估值,同时也可以得到幅度
的估计。
图9 初始信号的时域和频域图
本实验设的是两个线性调频信号的叠加,故不是规则的LFM时频图。
图10 LFM信号CPF三维分布图
由图10可以看出,在三维时频图中通过匹配滤波在延时
处出现峰值。两个信号,故沿着时间轴有两个峰值。
图11 LFM信号DECHIRP图
经过匹配滤波之后,进行DECHIRP操作,并进行谱峰搜索,此处再次用的匹配滤波器,它们在各自的初始频率714Hz和1330Hz处输出得到相应峰值。
四 结论与讨论
现代雷达匹配滤波器的输出最大信噪比已经指出,信号的能量越大输出的信噪比就会越大,所以要获得更高的信噪比只能通过加大信号能量的方式来完成,只要信号能量强于噪声功率谱密度,那么在再强的噪声背景下也是能够将信号检测出来的。但是如果信号能量低于了噪声功率谱密度,那么信号就不容易检测了。实验中的仿真结果也说明了这一点。所以对于固定时刻观测而言,信号的匹配检测能力只与信号的能量有关,而与信号形式无关。
当观测时间内存在多个信号时,不同的信号形式具有不同的输出,当信号之间时差满足一定关系时可以从匹配输出上对其进行区分,不同信号形式对应的时差不同,当然这已经是分辨率的问题了。可以知道,分辨率问题和信号的形式有着密切关系。
实际上从匹配输出的结果图上来看,一般为了检测的需要会设定一定的门限,以决定是否有信号的存在,当匹配输出具有更宽的等效时宽时,应该会具有更大的发现概率,因为对于最大信噪比时刻,发现概率都一样,但对于非最大输出信噪比的时刻,时宽越宽,对信号的检测概率就会越大。所以从发现概率上来看,简单脉冲的匹配输出的信号检测概率会大于线性调频信号的检测概率。这说明当从一段时间上观察时,信号形式对于信号检测还是有一定影响的。
匹配滤波器冲激函数与信号复共轭的时间翻转线性相关;当匹配滤波器的输入是匹配的信号加白噪声时,输出相应的峰值与信号的能量成线性关系。经过匹配滤波器后信号输出信噪比最大,能从噪声中检测信号,仿真结果与理论分析相符。
利用匹配滤波器进行测距,目标回波通过匹配滤波器后,能量聚集,找出输出峰值点对应的时刻即可求出目标回波的延时,进而得到目标的距离。线性调频信号通过匹配滤波器后,相当于对原信号进行脉冲压缩,原目标回波无法分辨的目标,匹配滤波后能分辨出原本两个目标,提高分辨力。
五 附录
%%==============现代雷达信号匹配滤波器报告==========
%%----即在白噪声的环境下检测,当信号通过匹配滤波器后输出端信噪比最大。
%%---- Edit by sody_zhang, HIT, JAN, 2010
%% LFM signal
close all
clear all
clc
%% set parameters
c=3e8;
B=10e3;
T=20e-3;
K=B/T;
fs=20e3;
%% echos
t=-T/2:1/fs:T/2;
N=length(t);
s0=exp(1i*pi*K*t.^2);
SNR=-10;
s1=s0+sqrt(0.5*10^(-SNR/10))*(randn(1,N)+1i*randn(1,N));
Rtar1=300e3;
tao1=2*Rtar1/c;
sr=exp(1i*pi*K*(t-tao1).^2).*(abs(t-tao1)<=T/2)+sqrt(0.5*10^(-SNR/10))*(randn(1,N)+1i*randn(1,N));
%%% 两个目标
% Rtar2=390e3;
% tao2=2*Rtar2/c;
% sr=sr+3.16*exp(1i*pi*K*(t-tao2).^2).*(abs(t-tao2)<=T/2);
%%%
%% matched filter Time domain
h=conj(s0);
MF=conv(sr,h);
%% frequency domain
Nfft=2*N;
win=hamming(N).';
S0=fftshift(fft(s0,Nfft));
S1=fftshift(fft(sr,Nfft));
w=-pi:pi/N:pi-pi/N;
f=-fs/2:fs/Nfft:fs/2-fs/Nfft;
H=conj(S0).*exp(-1i*2*pi*f*T);
MF_f=H.*S1;
MFoutput=ifft(MF_f);
MFoutputmax=max(abs(MFoutput));
MFoutput_db=20*log10(abs(MFoutput)/MFoutputmax);
figure,plot(unwrap(angle(MF_f)))
ylabel('相位')
figure,plot(MFoutput_db)
%% result
% f=-fs/2:fs/Nfft:fs/2-fs/Nfft;
% figure,plot(t,real(s1))
% xlabel('时间/s')
% ylabel('幅度')
% figure,plot(f,abs(S0))
% xlabel('频率/Hz')
% ylabel('幅度')
% figure,plot(real(h))
NMF=length(MF);
t_output=(0:NMF-1)/fs;
MFmax=max(abs(MF));
MF_db=20*log10(abs(MF)/MFmax);
% figure,plot(t_output,abs(MF))
% xlabel('时间/s')
% ylabel('幅度')
% figure,plot(t_output,MF_db)
% xlabel('时间/s')
% ylabel('幅度归一化/dB')
%%==============匹配滤波器实验报告==========
%%----即在白噪声的环境下检测,利用匹配滤波器进行DECHIRP参数估计。
%%---- Edit by sody_zhang, HIT, JAN, 2010
clear all;
close all;
clc;
N=101;%快拍数
snr=1e-3;%信噪比
A1=1;A2=1;%两信号幅度
a10=0;a11=-0.1*pi;a12=-0.2*pi/N;%信号1参数
a20=0;a21=0.1*pi;a22=0.5*pi/N;%信号2参数
%%参数初始化
n=-(N-1)/2:(N-1)/2;%采样频率为1HZ
f=1/N*(-(N-1)/2:(N-1)/2);
omega=2*pi/N*(-1:0.01:1);
cpf=zeros(N,length(omega));
cpf_temp=zeros(N,length(omega));
%%初始信号
s1=exp(j*(a10+a11*n+a12*n.^2));
s2=exp(j*(a20+a21*n+a22*n.^2));
s=s1+s2;
noise=snr*normrnd(0,1,1,N);
s=s+noise;
% y=fft(s);
y=fftshift(fft(fftshift(s)));
%%CPF
for i=1:length(omega)
for k=1:N
for l=0:min(N-k,k-1)
cpf(k,i)=cpf(k,i)+s(k-l)*s(k+l)*exp(-j*(omega(i)*l^2));
end
end
end
%%%%%%%%%%%结果显示%%%%%%%%%%%%%
%%初始信号
figure
subplot(211)
plot(real(s));
title('初始信号时域表示');
xlabel('time(s)');
ylabel('amplitude');
subplot(212)
plot(f,abs(y));
title('初始信号频域表示');
xlabel('frequency(HZ)');
ylabel('amplitude');
%%三次相位函数时频图
figure
mesh(omega,n,abs(cpf));
title(' ICPF-temp ');
xlabel('omega');
ylabel('n');
%%搜索
findk=find(abs(icpf)>0.999*max(abs(cpf)));
num=length(findk);
kf=zeros(1,num);
for i=1:num
kf(i)=omega_kf(findk(i));
end
%%估计初始频率,解线调
sd=zeros(num,N);
yd=zeros(num,N);
findf=zeros(1,num);
f0=zeros(1,num);
for i=1:num
sd(i,:)=s.*exp(-j*(kf(i)*pi/N*n.^2));
yd(i,:)=fft(sd(i,:));
findf(i)=find(abs(yd(i,:))==max(abs(yd(i,:))));
f0(i)=f(findf(i));
end
%%解线调后的信号
for i=1:num
figure
subplot(211)
plot(real(sd(i,:)));
title('解线调信号时域表示');
xlabel('time(s)');
ylabel('amplitude');
subplot(212)
plot(f,abs(yd(i,:)));
title('解线调信号频域表示');
xlabel('frequency(HZ)');
ylabel('amplitude');
str1_f0=num2str(f0(i));
str_=strcat('\itf0=',str1_f0,'(Hz) \it');
text(f0(i),1*abs(yd(findf(i)))+50,str_);
hold on;
plot([f0(i) f0(i)],[0 abs(yd(findf(i)))+50],'r--');
end
%%%%%%%%%%%结果显示%%%%%%%%%%%%%
disp('调频斜率估计值为:');
disp(kf);
disp('初始频率估计值为:');
disp(f0);