参考资料:《雷达目标特性及MATLAB仿真》第五章内容
以下代码如有问题,欢迎批评指正。如您满意,欢迎带走~
匹配滤波法
发射信号s(t),其匹配滤波器为h(t)=s*(t0-t),雷达匹配滤波处理:s(t)与h(t)相关运算,输出一个峰值,峰值处就是目标的像。
假设有三个目标分别在2km,10km,30km处。
发射信号长度tao=100us,采样时长为发射信号长度的n=5倍,画出发射信号、接收信号、匹配滤波器(match filter)、目标一维距离像(HRRP)为:
![](https://i-blog.csdnimg.cn/blog_migrate/8a78d77418a211bcba7be00563c9d12d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/53b27787fb08cf128c30c388bac1d05d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/85e3ad4769acf6438775b46d5d02a209.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d59a0c7aa834a747268be66f502f94e.png)
代码
close all;
clear;
clc;
% 设置参数并产生信号
n = 5;
c = 3e8;
tao = 100e-6;
fs = 5e6;
f0 = 20e6;
B = 0.3e6;
K = B/tao;
R0 = [2 10 30]*1000;
t = 0 : 1/fs : (n*tao-1/fs);
f = linspace( -fs/2,fs/2,ceil(n*tao*fs) );
delta_R = c/(2*fs);
Rindex = linspace( -ceil(n*tao*fs)*delta_R,ceil(n*tao*fs)*delta_R,2*ceil(n*tao*fs)-1 );
yref = rectpuls( t , 2*tao ).*exp( 1i*( 2*pi*f0*t + pi*K*t.^2) );
mf = fliplr(conj(yref));
for i = 1:length(R0)
yt(i,:) = rectpuls( (t-2*R0(i)/c) , 2*tao ).*exp( 1i*( 2*pi*f0*(t-2*R0(i)/c) + pi*K*(t-2*R0(i)/c).^2) );
yt(i,:) = rectpuls( (t-2*R0(i)/c)-tao/2 , tao ).*yt(i,:);
ymf(i,:) = conv(yt(i,:),mf);
end
% 绘图
figure
plot(1e6*t,real(yref));
xlabel('t/us');
title('Real Part of Reference');
grid
figure
plot(1e6*t,real(yt));
xlabel('t/us');
title('Real Part of echo');
grid
figure
plot(real(mf))
xlabel('Samples')
title('Real Part of Matched Filter')
grid
figure
plot(Rindex/1000,abs(ymf'))
xlabel('R/km')
title('HRRP')
grid
祝万事如意,事业攀升!!