SAR基础实验-一维回波数据模拟与脉冲压缩

一、脉冲压缩原理

1.1 进行脉冲压缩的原因

由雷达测距公式:R=1/2*c*t 可以得到,

雷达分辨率:ρ=1/2*c*Tp,频域上:ρ'=1/2*c*1/B

其中,c为光速、Tp为脉冲持续时间、B为发射信号带宽。

发现在Tp减小、B增大的情况下,ρ减小,即雷达分辨率增强。但由雷达方程可知,Tp减小会导致雷达可以测量到的最大距离变小。这就出现了鱼与熊掌不可兼得的问题。

脉冲压缩技术就是为了解决这一问题,在增强分辨率的同时,保证测距能力。

1.2 脉冲压缩的条件

要求Tp*B>1。

1.3 具体实现方法。

构建匹配滤波器,在匹配滤波中,滤波器的时域响应需要是发射信号的时间反转再取复共轭。

例如,回波信号为:S(t),匹配滤波器为:h(t)=S*(-t)。

将回波信号S(t)与h(t)求卷积,得出滤波器的输出信号,即为压缩后的信号。

也可以将S(t)和h(t)都经过傅里叶变换到频域上,相乘之后再逆傅里叶变化得到脉压信号。

二、实验要求

我们复现一下南航《雷达成像技术》教学视频中,毛新华教授讲授的例题:

三、代码实现

分别给出两套代码,实现效果相同。

实现过程中,3.1用的是将S(t)和h(t)都经过傅里叶变换到频域上,相乘之后再逆傅里叶变化得到脉压信号。3.2则是将回波信号S(t)与h(t)求卷积,得出脉压信号。

3.1 视频中代码

c = 3e8;          % 光速 (m/s)
Tp = 2e-6;        % 脉冲宽度 (s)
Br = 100e6;       % 带宽 (Hz)
kr = Br / Tp;     % 调频率 (Hz/s)
fs = 120e6;       % 采样频率 (Hz)

r1 = 10e3;        % 目标1的距离 (m)
r2 = 10e3 + 100;  % 目标2的距离 (m)
r3 = 10e3 + 500;  % 目标3的距离 (m)

Tu = 20e-6;                     % 时间窗口 (s)
N = round(Tu * fs);             % 采样点数
t = 2 * r1 / c + linspace(-Tu/2, Tu/2, N);  % 时间轴,为方便观察,以第一个回波为观察中心。

t1 = 2 * r1 / c;   % 第一个目标回波接收时间
t2 = 2 * r2 / c;   % 第二个目标回波接收时间
t3 = 2 * r3 / c;   % 第三个目标回波接收时间
rt = exp(1j * pi * kr * (t - t1).^2) .* (abs(t - t1) < Tp/2);
rt = rt + exp(1j * pi * kr * (t - t2).^2) .* (abs(t - t2) < Tp/2);
rt = rt + exp(1j * pi * kr * (t - t3).^2) .* (abs(t - t3) < Tp/2); % 得到回波信号表达式

figure(1)
plot(t, real(rt)) % 观察回波信号实部

f = linspace(-fs/2, fs/2, N);  % 频率轴
Hf = (abs(f) < Br/2) .* exp(1j * pi * f.^2 / kr);  % 匹配滤波器
Hf = fftshift(Hf);  % 将频率轴中心化
rt = ifft(fft(rt) .* Hf);  % 频域匹配滤波

figure(2)
plot(t, abs(rt))  % 观察脉冲压缩后回波幅度值

3.2 同效果代码  

% 雷达脉冲压缩仿真实验
clear; clc; close all;

%% 参数设置
c = 3e8;                   % 光速 (m/s)
tau = 2e-6;                % 脉冲宽度 (s)
B = 100e6;                 % 带宽 (Hz)
Fs = 120e6;                % 采样频率 (Hz)
targets = [10e3, 10.1e3, 10.5e3];  % 目标距离 (m)

%% 生成线性调频信号 (LFM)
t_chirp = 0:1/Fs:tau-1/Fs; % 发射信号时间轴
mu = B / tau;               % 调频率 (Hz/s)
s_tx = exp(1j * pi * mu * t_chirp.^2);  % 发射信号(复基带)

%% 计算目标时延对应的采样点
delay_time = 2 * targets / c;          % 往返时延 (s)
delay_samples = round(delay_time * Fs); % 采样点索引

%% 生成回波信号(叠加三个目标)
max_idx = max(delay_samples) + length(s_tx); % 最大索引
echo_signal = zeros(1, max_idx);             % 初始化回波信号

% 将发射信号复制到对应时延位置
for i = 1:length(targets)
    start_idx = delay_samples(i) + 1;
    end_idx = start_idx + length(s_tx) - 1;
    echo_signal(start_idx:end_idx) = echo_signal(start_idx:end_idx) + s_tx;
end

%% 脉冲压缩处理(匹配滤波)
matched_filter = conj(fliplr(s_tx));        % 匹配滤波器是发射信号的共轭反转
compressed_signal = conv(echo_signal, matched_filter, 'same');   %卷积

%% 结果可视化
% 时间轴生成(单位:微秒)
t_tx_plot = t_chirp * 1e6;
t_echo_plot = (0:length(echo_signal)-1) / Fs * 1e6;
t_compressed_plot = (0:length(compressed_signal)-1) / Fs * 1e6;

figure('Position', [100, 100, 800, 600])

% 发射信号(实部/虚部)
subplot(3,1,1)
plot(t_tx_plot, real(s_tx), 'b', t_tx_plot, imag(s_tx), 'r')
title('发射信号(实部与虚部)')
xlabel('时间 (\mus)'), ylabel('幅度')
legend('实部', '虚部')
xlim([0, tau*1e6])

% 回波信号(幅度)
subplot(3,1,2)
plot(t_echo_plot, abs(echo_signal))
title('回波信号(幅度)')
xlabel('时间 (\mus)'), ylabel('幅度')
xlim([0, max(t_echo_plot)])

% 脉冲压缩结果(幅度)
subplot(3,1,3)
plot(t_compressed_plot, abs(compressed_signal))
title('脉冲压缩结果(幅度)')
xlabel('时间 (\mus)'), ylabel('幅度')
xlim([0, max(t_compressed_plot)])

%% 显示目标峰值位置
[~, peaks] = findpeaks(abs(compressed_signal), 'MinPeakHeight', max(abs(compressed_signal))/2);
peak_times = t_compressed_plot(peaks);
disp('目标检测结果:');
fprintf('理论时延 (μs) | 实际时延 (μs)\n');
fprintf('------------------------------\n');
for i = 1:length(targets)
    fprintf('%9.2f      | %9.2f\n', delay_time(i)*1e6, peak_times(i));
end

三、参考

《雷达成像技术》- L16-线性调频信号的压缩处理_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值