SAR信号处理基础——脉冲压缩/匹配滤波

脉冲压缩/匹配滤波器时雷达信号信号处理最基本的操作之一,本文详细推导了匹配滤波器的基本原理,并给出了matlab的仿真程序。

由于公式太多,所以这里以截图的形式分享给大家。需要word或pdf可留言或私信。

脉冲压缩的基本原理

SAR信号处理基础——脉冲压缩/匹配滤波

 SAR信号处理基础——脉冲压缩/匹配滤波

 SAR信号处理基础——脉冲压缩/匹配滤波

 SAR信号处理基础——脉冲压缩/匹配滤波

时域匹配域滤波

SAR信号处理基础——脉冲压缩/匹配滤波

 SAR信号处理基础——脉冲压缩/匹配滤波

 SAR信号处理基础——脉冲压缩/匹配滤波

 SAR信号处理基础——脉冲压缩/匹配滤波

 SAR信号处理基础——脉冲压缩/匹配滤波

 SAR信号处理基础——脉冲压缩/匹配滤波

 频域匹配滤波

SAR信号处理基础——脉冲压缩/匹配滤波

 匹配滤波的实现方式

《合成孔径雷达成像——算法与实现》介绍了三种匹配滤波的实现方式。相关代码如下

《合成孔径雷达成像——算法与实现》之【10】仿真图3.13_Destiny0321的专栏-CSDN博客

% SAR_Figure_3_13
% 2016/08/31
close all;clear all;clc;

T = 10e-6;          % 脉冲持续时间
B = 15e6;           % 脉冲带宽
K = B/T;            % 调频率
ratio = 5;          % 过采样率
Fs = ratio*B;       % 采样频率
dt = 1/Fs;          % 采样间隔
Nr = ceil(T/dt);    % 采样点数
t0 = ((0:Nr-1)-Nr/2)/Nr*T;          % 基本时间轴

st0 = exp(1i*pi*K*(t0-T/5).^2);     % 基本信号
space1 = zeros(1,round(Nr/5));      % 生成空信号
space2 = zeros(1,Nr);               % 生成空信号
st = [space1,st0,space2,st0,space2,st0,space1];     % 实际信号

N = length(st);             % 实际信号长度
n = 0:N-1;                  % 样本轴
f = ((0:N-1)-N/2)/N*Fs;     % 基本频率轴

Sf = fftshift(fft(st));                         % 实际信号的傅里叶变换
Hf1 = fftshift(fft(conj(fliplr(st0)),N));       % 方式1的匹配滤波器:时间反褶后取复共轭,计算N点补零DFT
Hf2 = fftshift(conj(fft(st0,N)));               % 方式2的匹配滤波器:补零后计算DFT,对结果取复共轭
Hf3 = exp(1i*pi*f.^2/K);                        % 方式3的匹配滤波器:直接在频域生成匹配滤波器

out1 = ifft(ifftshift(Sf.*Hf1));
out2 = ifft(ifftshift(Sf.*Hf2));
out3 = ifft(ifftshift(Sf.*Hf3));

figure,set(gcf,'Color','w');
subplot(4,1,1),plot(n,real(st));axis tight
title('(a)输入阵列信号的实部');ylabel('幅度');
subplot(4,1,2),plot(n,abs(out1));axis tight
title('(b)方式1的匹配滤波输出');ylabel('幅度');
subplot(4,1,3),plot(n,abs(out2));axis tight
title('(c)方式2的匹配滤波输出');ylabel('幅度');
subplot(4,1,4),plot(n,abs(out3));axis tight
title('(d)方式3的匹配滤波输出');xlabel('时间(采样点)');ylabel('幅度');

%%
figure, plot(abs(fft(st0)))

%% 
NN = length(st);
fr = [0:NN/2-1, -NN/2:-1]/NN*Fs;
Hr = exp(-j*pi*fr.^2/K);
src1 = ifft(fft(st).*Hr);
figure, plot(abs(src1))

上述代码的运行结果如下图所示。

SAR信号处理基础——脉冲压缩/匹配滤波

上述仿真存在的问题:在实际雷达信号处理中,我们不能得到上述代码中的st0。

在已知雷达信号波形的前提下,可以在时域或频域进行匹配滤波,但是在实际SAR信号处理中,多选择在频域进行匹配滤波,原因主要有两个:

  1. 时域需要卷积操作,运算量大;频域只需要进行傅里叶变换和复乘运算,效率高;
  2. 实际SAR信号的一条脉冲,包含了整个幅宽内目标的发射信号,所以器长度远远大于实际发射信号的长度,为了提高时域匹配滤波的效率,设计的匹配滤波器长度通常与发射信号一致。

综上,假设一帧雷达信号的长度为N,且已知雷达波形,那么我们可以直接在时域或频域构造长度为N的理想信号,然后构造匹配滤波器。代码如下:

close all;clear all;clc;

T = 10e-6;          % 脉冲持续时间
B = 15e6;           % 脉冲带宽
K = B/T;            % 调频率
ratio = 1.2;          % 过采样率
Fs = ratio*B;       % 采样频率
dt = 1/Fs;          % 采样间隔
Nr = 8192;
tr = [-Nr/2:Nr/2-1]/Fs;

st = zeros(1, Nr);

for ii = -15:15
    tr1 = tr + ii*T;
    st0 = (abs(tr1)<T/2).*exp(-j*pi*K*tr1.^2);
    st = st + st0;
end

figure, plot(real(st));
figure, plot(abs(fftshift(fft(st))))

%%
NN = Nr;
fr = [0:NN/2-1, -NN/2:-1]/NN*Fs;
Hr = exp(-j*pi*fr.^2/K);
src1 = ifft(fft(st).*Hr);
figure, plot(abs(src1));

figure,  plot(real(st), 'y'); hold on
plot(abs(src1)/12, 'k');

运行上述代码后,得到的结果如下图所示,可以看出,脉冲尖峰处正好对应LFM信号的零频。

SAR信号处理基础——脉冲压缩/匹配滤波

上一篇:WinPE基础知识之导入表


下一篇:上传npm