合成孔径雷达(SAR)成像算法与仿真(第三章仿真代码)

合成孔径雷达(SAR)成像算法与仿真(第三章仿真代码)

第三章 线性调频信号的脉冲压缩



前言

最近在学习Cumming的《合成孔径雷达算法与实现》这本书,在此记录学习的进度,也顺便在此总结一下之前学习的内容。


1. 图3-1

%% Figure3-1 
% DATE 23/8/26
% Harry
clc;
close all;
clear;

%% 参数设置
Bw = 5e+6; %带宽
T = 7e-6;  %脉冲持续时间
K = Bw/T;  %调频率
alpha = 5; %过采样率

fs = alpha*Bw; %采样率
N = fs*T; %采样点数
dt = T/N; %采样间隔
t = -T/2:dt:T/2-dt; %时间向量
%% 信号设置
st = exp(1j*pi*K*t.^2);
% st = chirp()
f = K*t; %瞬时频率
phi = pi*K*t.^2; %瞬时相位
%% 绘图
figure
subplot(2,2,1),plot(t*1e+6,real(st))
title('信号的实部')
xlabel('相对于t_0时间(\mus)','Interpreter','tex')
ylabel('幅度')
subplot(2,2,2),plot(t*1e+6,phi)
title('信号相位')
xlabel('相对于t_0时间(\mus)','Interpreter','tex')
ylabel('幅度')
subplot(2,2,3),plot(t*1e+6,imag(st))
xlabel('相对于t_0时间(\mus)','Interpreter','tex')
ylabel('幅度')
subplot(2,2,4),plot(t*1e+6,f)
xlabel('相对于t_0时间(\mus)','Interpreter','tex')
ylabel('MHz')
sgtitle('3-1 线性调频信号的相位和频率')

总结

线性调频信号又被称作chirp信号。
线性调频信号的复数形式为:

s ( t ) = r e c t ( t T ) e j π K t 2 s(t) = \mathrm{rect}(\frac{t}{T})e^{j\pi Kt^2} s(t)=rect(Tt)eKt2

其中, r e c t ( x ) \mathrm{rect}(x) rect(x)是矩形函数, T T T是脉冲宽度, K K K是线性调频率, B = K T B=KT B=KT是信号的带宽。线性调频信号的相位为:

θ ( t ) = π K t 2 \theta(t) = \pi Kt^2 θ(t)=πKt2

线性调频信号的频率为:

f ( t ) = 1 2 π d θ ( t ) d t = K t f(t) = \frac{1}{2\pi}\frac{d\theta(t)}{dt} = Kt f(t)=2π1dtdθ(t)=Kt

线性调频信号的时间带宽积(time bandwidth product,简称 TBP)是信号 3dB 时宽和 3dB 带宽的乘积:

T B P = B T = K T 2 \mathrm{TBP} = BT = K T^2 TBP=BT=KT2

线性调频信号的频谱可以用驻定相位原理(POSP)得到近似解析表达式:

S ( f ) = 2 π ∣ K ∣ r e c t ( f B ) e − j π f 2 K S(f) = \sqrt{\frac{2\pi}{|K|}}\mathrm{rect}(\frac{f}{B})e^{-j\pi\frac{f^2}{K}} S(f)=K2π rect(Bf)eKf2

其中, r e c t ( x ) \mathrm{rect}(x) rect(x)是矩形函数, B B B是信号的带宽, K K K是线性调频率。

参考

线性调频信号 - 知乎专栏
线性调频信号(LFM)的形式及幅度谱、相位谱特性-CSDN博客
线性调频(LFM)信号仿真分析 - 知乎

2. 图3-2

%% Figure3-2 
% DATE 23/8/26
% Harry
clc;
close all;
clear;

%% 参数设置
TBP = 720; %时宽带宽积
T = 10e-6;  %脉冲持续时间
Bw = TBP/T; %带宽
K = Bw/T;  %调频率
alpha = 1.25; %过采样率

F = alpha*Bw; %采样率
N = F*T; %采样点数
dt = T/N; %采样时间间隔
df = F/N;%采样频率间隔
t = -T/2:dt:T/2-dt; %时间向量
f = -F/2:df:F/2-df;
%% 信号设置
St = exp(1j*pi*K*t.^2);
Sf = fftshift(fft(fftshift(St)));
%% 绘图
figure
subplot(2,2,1),plot(f*1e-6,real(Sf))
axis([-10 10,-40 40])
title('频谱的实部')
ylabel('幅度')
subplot(2,2,2),plot(f*1e-6,abs(Sf))
axis([-50 50,0 40])
title('频谱幅度')
ylabel('弧度')
subplot(2,2,3),plot(f*1e-6,imag(Sf))
axis([-10 10,-40 40]),
title('频谱的虚部')
xlabel('频率(归一化后)')
ylabel('幅度')
subplot(2,2,4),plot(f*1e-6,unwrap(angle(Sf)))
axis([-50 50,0 900]),
title('频谱相位'),
xlabel('频率(归一化后)'),
ylabel('相位(弧度)'),
sgtitle('3-2 线性调频信号的复频谱')

总结

在离散傅立叶变换后进行了fftshift,所以零频位于序列中心。
线性调频信号的频谱是指信号在频域上的幅度和相位的分布。线性调频信号的频谱可以用驻定相位原理(POSP)得到近似的解析表达式:

S ( f ) = 2 π ∣ K ∣ r e c t ( f B ) e − j π f 2 K S(f) = \sqrt{\frac{2\pi}{|K|}}\mathrm{rect}(\frac{f}{B})e^{-j\pi\frac{f^2}{K}} S(f)=K2π rect(Bf)eKf2
通常会忽略rect前的常数,写作:
S ( f ) = r e c t ( f B ) e − j π f 2 K S(f) = \mathrm{rect}(\frac{f}{B})e^{-j\pi\frac{f^2}{K}} S(f)=rect(Bf)eKf2
其中, r e c t ( x ) \mathrm{rect}(x) rect(x)是矩形函数, B B B是信号的带宽, K K K是线性调频率。线性调频信号的频谱具有以下特点:

  • 频谱的幅度是一个矩形函数,表示信号的能量均匀分布在 [ − B / 2 , B / 2 ] [-B/2, B/2] [B/2,B/2]的频率范围内。
  • 频谱的相位是一个二次函数,表示信号的频率与时间之间存在一一对应的线性关系。
  • 频谱的形状与信号的中心频率无关,只与信号的带宽和线性调频率有关。

3. 图3-3

%% Figure3-3 
% DATE 23/8/26
% Harry
clc;
close all;
clear;

%% 参数设置
TBP = [25,50,100,200,400];
T = 1e-6;
%绘图
figure;
for i=1:length(TBP)
    B = TBP(i)/T; %带宽
    K = B/T; %调频率
    alpha = 1.25; %过采样率
    F = alpha*B; %采样率
    N = F*T; %采样点数  
    dt = T/N; %采样时间间隔
    df = F/N;%采样频率间隔
    t = -T/2:dt:T/2-dt; %时间向量
    f = -F/2:df:F/2-df; %频率向量
    % 信号设置
    St = exp(1j*pi*K*t.^2);
    Sf = fftshift(fft(fftshift(St)));
    subplot(length(TBP),2,2*i-1),
    plot(f*1e-6,abs(Sf)),
    axis([-F*1e-6/2 F*1e-6/2,0 8*i])
    if i == length(TBP)
        xlabel('频率')
    end
    line([-B*1e-6/2,-B*1e-6/2],[0,sqrt(1/K)*1e+6*N],'color','k','linestyle','--')
    line([B*1e-6/2,B*1e-6/2],[0,sqrt(1/K)*1e+6*N],'color','k','linestyle','--')
    line([-B*1e-6/2,B*1e-6/2],[sqrt(1/K)*1e+6*N,sqrt(1/K)*1e+6*N],'color','k','linestyle','--')
    ylabel('幅度')
    subplot(length(TBP),2,2*i)
    plot(f*1e-6,unwrap(angle(Sf))-max(unwrap(angle(Sf)))),hold on
%     plot(Sf_POSP,'k--')
    plot(f*1e-6,(-pi*f.^2/K)-max(-pi*f.^2/K),'k--')
    if i == length(TBP)
        xlabel('频率')
    end
    ylabel('相位(强度)')
    text(0,-TBP(i)/2,['TBP = ',num2str(TBP(i))],'HorizontalAlignment','center')
end
sgtitle('3-3 不同TBP值的离散傅里叶变换频谱变化');

总结

驻定相位原理只是一种近似,但是如果调频信号的周期足够多,这种方法对于分析来说是足够精准的。信号周期为TBP/4,当TBP值大于100时,POSP是相当准确的。
T B P = ∣ K ∣ T 2 TBP = |K|T^2 TBP=KT2

驻定相位原理是一种利用信号相位变化率快的情况,估计傅里叶变换的方法。它的基本思想是,当相位随时间变化很快时,傅里叶变换的积分值主要由相位变化率为零的点(驻相点)附近的贡献决定。利用驻定相位原理,可以将复杂的积分问题简化为计算驻相点附近的振幅和相位的问题。

驻相点(stationary point)是一种数学概念,指的是函数的一阶导数为零的点。驻相点也称为稳定点或临界点,它可以用来判断函数的极值、拐点、凹凸性等性质。

参考

1.驻定相位原理,以及在LMF信号中的实现
2.驻定相位原理(POSP)以及线性调频信号的频谱

4. 图3-4

%% Figure3-4 
% DATE 23/8/28
% Harry
clc;
close all;
clear;

%% 参数设置
% 本次实验中的采样数与采样率保持不变
TBP = 100;
T = 1e-4; %持续时间
F = 2^20; %采样率
alpha = [1.4,1.2,1.0,0.8];
figure
for i = 1:length(alpha)
    K = F/(T*alpha(i)); %调频率
    B = K*T;
    N = ceil(F*T); %采样点数  
    dt = T/N; %采样时间间隔
    df = F/N;%采样频率间隔
    t = -T/2:dt:T/2-dt; %时间向量
    f = -F/2:df:F/2-df; %频率向量
    % 信号设置
    st0 = exp(1j*pi*K*t.^2);
    st1 = [st0,zeros(1,N)]; % 补零后的信号,补1倍(时域补零相当于频域插值)
    n = (0:2*N-1)/2;
    Sf = fft(st1);
    subplot(length(alpha),2,2*i-1)
    plot(t*1e+6,real(st0))
    if i ==1
        title('信号实部')
    end
    if i == length(alpha)
        xlabel('时间\mus')
    end
    subplot(length(alpha),2,2*i)
    plot(n,abs(Sf))
    if i == 1
        title({'频谱幅度\alpha_{os}= ',num2str(alpha(i))})
    else
        title({'\alpha_{os}= ',num2str(alpha(i))})
    end
    if i == length(alpha)
        xlabel('频率(单元)')
    end
end
sgtitle('3-4 过采样率\alpha_{os}在频谱中引起的能量间隙')

总结

过采样率:
α o s = f s ∣ K ∣ T \alpha_{os} = \frac{f_s}{|K|T} αos=KTfs
过采样率(oversampling rate)是指采样频率与信号最高频率的比值,也就是采样频率与奈奎斯特频率的比值。过采样率越高,表示对信号的采样越密集,可以提高信号的分辨率和信噪比,但也会增加数据量和计算复杂度。

频谱间隙(spectral gap)是指采样信号频谱中的空白区域,也就是信号的频带与采样频率的奈奎斯特区间之间的差值。频谱间隙越大,表示采样频率远远高于信号的最高频率,可以避免混叠现象,但也会造成频谱资源的浪费。

间隙也可以被看作未被利用的频谱空间。

过采样率与频谱间隙的关系是:过采样率越高,频谱间隙越大;过采样率越低,频谱间隙越小。检验采样率充分性的一种方法是寻找采样信号频谱中的间隙。若间隙不存在,则采样率过小;若间隙高于采样率的20%,则采样率大于最优效率值。

过采样率应选在1.1~1.4 之间。

参考

1.线性调频信号

5. 图3-5

%% Figure3-5 
% DATE 23/8/28
% Harry
clc;
close all;
clear;

%% 参数设置
TBP = 100; %时宽带宽积
t0 = 0; 
T = 1e-5; %持续时间
B = TBP/T; %带宽
K = B/T; %调频率
alpha = 8; %过采样率
F = alpha*B; %采样率
N = 2*ceil(F*T/2); %采样点数
dt = T/N; %时间间隔
df = F/N; %频率间隔
t = -T/2:dt:T/2-dt; %时间向量
f = -F/2:df:F/2-df; %频率向量
t_out = linspace(2*t(1),2*t(end),2*length(t)-1); % 循环卷积后的信号长度
threshold = 0.707; %3dB阈值
%% 信号设置
st = exp(1j*pi*K*t.^2);
% ht = exp(-1j*pi*K*t.^2);
ht = conj(fliplr(st)); %复共轭+时间反褶
S_out = conv(st,ht); %卷积
S_out = S_out/max(S_out);
above_threshold = find(abs(S_out) > max(abs(S_out))*threshold);
%% 绘图
figure
plot(t_out*1e+6,real(S_out)),
axis([-1 1,-0.5 1.2]),
% xlabel('时间(\mus)'),
% ylabel('幅度'),
% line([-1,1],[0,0],'color','k'),
% arrow([-0.3,0.707],[-0.05,0.707]);
% arrow([ 0.3,0.707],[ 0.03,0.707]);
% % arrow([t_out(above_threshold(1))-5,0.707],[t_out(above_threshold(1)),0.707],'width',1);
% % arrow([t_out(above_threshold(end))+5,0.707],[t_out(above_threshold(end)),0.707],'width',1);
% sgtitle('3-5 匹配滤波器输出的3dB分辨率的测量')

6. 图3-6

%% Figure3-6 
% DATE 23/8/28
% Harry
clc;
close all;
clear;

%% 参数设置
TBP = 100; %时宽带宽积
T = 1e-5; %持续时间
B = TBP/T; %带宽
K = B/T; %调频率
alpha = 8; %过采样率
F = alpha*B; %采样率
N = 2*ceil(F*T/2); %采样点数
dt = T/N; %时间间隔
t = -T/2:dt:T/2-dt; %时间向量
t_out = linspace(2*t(1),2*t(end),2*length(t)-1); % 循环卷积后的信号长度

%% 信号
st = exp(1j*pi*K*t.^2);
ht = conj(fliplr(st));
S_out = conv(st,ht);
S_out_1 = S_out/max(S_out);
S_out_log = 20*log10(abs(S_out)./max(abs(S_out))+eps);
%% 绘图
figure
subplot(2,2,1),
plot(t*1e+6,real(st)),
axis([-4 4,-1 1]),
ylabel('幅度'),
title('原始信号的实部'),

subplot(2,2,2),
plot(t_out*1e+6,S_out_log),
axis([-1 1,-30 5]),
ylabel('弧度(dB)'),
title('压缩后的信号(经扩展)'),

subplot(2,2,3),
plot(t_out*1e+6,real(S_out)),
axis([-4 4,-200 1000]),
xlabel('相对于时间t_0时间(\mus)')
ylabel('幅度'),
title('压缩后的信号'),

subplot(2,2,4),
plot(t_out*1e+6,abs(angle(S_out))),
axis([-1 1,-5 5]),
xlabel('相对于时间t_0时间(\mus)')
ylabel('相位(弧度)'),
title('压缩后信号的相位'),
sgtitle('3-6 基带线性调频信号的匹配滤波')

7. 图3-7

%% Figure3-7
% DATE 23/8/28
% Harry
clc;
close all;
clear;

%% 参数设置
TBP = 100; %时宽带宽积
T = 1e-5; %持续时间
B = TBP/T; %带宽
K = B/T; %调频率
alpha = 8; %过采样率
F = alpha*B; %采样率
N = 2*ceil(F*T/2); %采样点数
dt = T/N; %时间间隔
t = -T/2:dt:T/2-dt; %时间向量
t_out = linspace(2*t(1),2*t(end),2*length(t)-1); % 循环卷积后的信号长度
noise_std = 0.75;  % 噪声的标准差
%% 信号
st = exp(1j*pi*K*t.^2);
st_nosie = st + 0.75*randn(1,N); %在信号中加入高斯随机噪声
% st_nosie = awgn(st,-2.5,'measured');
ht = conj(fliplr(st)); %生成匹配滤波器
% ht = conj(fliplr(st_nosie));
S_out = conv(st_nosie,ht);
S_out_log = 20*log10(abs(S_out)./max(abs(S_out))+eps);
%% 绘图
figure
subplot(2,2,1),
plot(t*1e+6,real(st_nosie)),
axis([-4 4,-2.5 2.5]),
ylabel('幅度'),
title('原始信号的实部'),

subplot(2,2,2),
plot(t_out*1e+6,S_out_log),
axis([-1 1,-30 5]),
ylabel('弧度(dB)'),
title('压缩后的信号(经扩展)'),

subplot(2,2,3),
plot(t_out*1e+6,real(S_out)),
axis([-4 4,-200 1000]),
xlabel('相对于时间t_0时间(\mus)')
ylabel('幅度'),
title('压缩后的信号'),

subplot(2,2,4),
plot(t_out*1e+6,angle(S_out)),
axis([-1 1,-5 5]),
xlabel('相对于时间t_0时间(\mus)')
ylabel('相位(弧度)'),
title('压缩后信号的相位'),
sgtitle('3-7 存在噪声时线性调频信号的匹配滤波')

8. 图3-8

%% Figure3-8 
% DATE 23/8/28
% Harry
clc;
close all;
clear;

%% 参数设置
TBP = 100; %时宽带宽积
T = 1e-5; %持续时间
B = TBP/T; %带宽
K = B/T; %调频率
alpha = 8; %过采样率
F = alpha*B; %采样率
N = 2*ceil(F*T/2); %采样点数
dt = T/N; %时间间隔
t = -T/2:dt:T/2-dt; %时间向量
t_c = 1e-6; %时间偏移
t_out = linspace(2*t(1),2*t(end),2*length(t)-1); % 循环卷积后的信号长度

%% 信号
st = exp(1j*pi*K*(t-t_c).^2); %非基带线性调频信号
ht = conj(fliplr(st));
S_out = conv(st,ht);
S_out_1 = S_out/max(S_out);
S_out_log = 20*log10(abs(S_out)./max(abs(S_out))+eps);
%% 绘图
figure
subplot(2,2,1),
plot(t*1e+6,real(st)),
axis([-4 4,-1 1.2]),
ylabel('幅度'),
title('原始信号的实部'),

subplot(2,2,2),
plot(t_out*1e+6,S_out_log),
axis([-1 1,-30 5]),
ylabel('弧度(dB)'),
title('压缩后的信号(经扩展)'),

subplot(2,2,3),
plot(t_out*1e+6,real(S_out)),
axis([-4 4,-200 1000]),
xlabel('相对于时间t_0时间(\mus)')
ylabel('幅度'),
title('压缩后的信号'),

subplot(2,2,4),
plot(t_out*1e+6,angle(S_out)),
axis([-1 1,-5 5]),
xlabel('相对于时间t_0时间(\mus)')
ylabel('相位(弧度)'),
title('压缩后信号的相位'),
sgtitle('3-8 非基带线性调频信号的匹配滤波')

总结

脉冲分辨率指压缩后信号中的两个-3dB点之间的间隔,其为幅值峰值以下0.707倍处的脉冲宽度。
ρ = 0.886 ∣ K ∣ T ≈ 1 ∣ K ∣ T \rho = \frac{0.886}{|K|T}\approx\frac{1}{|K|T} ρ=KT0.886KT1
分辨率又称为冲激响应宽度IRW
在时域中,非基带信号可以看作零频时刻偏离脉冲中心的信号。
通常要将压缩数据校准值零频位置,可以通过频域匹配滤波器很方便的实现。

9. 图3-9

%% Figure3-9 
% DATE 23/8/28
% Harry
clc;
close all;
clear;

%% 参数设置
TBP = 100; %时宽带宽积
T = 8e-5; %持续时间
t_0 = 1e-7; %时间延迟
B = TBP/T; %带宽
K = B/T; %调频率
alpha = 1.25; %过采样率
F = alpha*B; %采样率
N = 2*ceil(F*T/2); %采样点数
dt = T/N; %时间间隔
df = F/N;
t = -T/2+t_0/2:dt:T/2+t_0/2-dt; %时间向量
f = -F/2:df:F/2-df; %频率向量
t_c = 1e-6; %时间偏移
t_out = linspace(2*t(1),2*t(end),2*length(t)-1); % 循环卷积后的信号长度

%% 信号
st = exp(1j*pi*K*(t).^2); %基带线性调频信号
st1 = exp(1j*pi*K*(t-t_0).^2);
St1_f = fft(st1);
% St1_f = exp(-1j*pi*f.^2/K-1j*2*pi*f.*t_0);
Hf = exp(1j*pi*f.^2/K);
S_outf = St1_f.*Hf;

%% 绘图
figure
subplot(2,1,1),
plot(f*1e-5,real(S_outf)),
% axis([-4 4,-1 1.2]),
ylabel('幅度'),
xlabel('频率(单元)'),
title('频谱实部'),

subplot(2,1,2),
plot(f*1e-6,imag(S_outf)),
% axis([-1 1,-30 5]),
ylabel('幅度'),
xlabel('频率(单元)'),
title('频谱虚部'),

sgtitle('3-9 匹配滤波后的信号频谱')

总结

频域匹配滤波后正弦(线性相位)项占主导地位。

10. 图3-10

%% Figure3-10 
% DATE 23/8/28
% Harry
clc;
close all;
clear;

%% 参数设置
N = 100;        % 窗长度
beta = 4;  % beta值
TBP = 100; %时宽带宽积
T = 8e-5; %持续时间
t_0 = 1e-7; %时间延迟
B = TBP/T; %带宽
K = B/T; %调频率
alpha = 1.25; %过采样率
F = alpha*B; %采样率
N = 2*ceil(F*T/2); %采样点数
dt = T/N; %时间间隔
df = F/N;
t = ((0:N-1)-N/2)/N*T;      % 时间轴
f = ((0:N-1)-N/2)/N*F;     % 频率轴
% t = -T/2:dt:T/2-dt; %时间向量
% f = 0:df:F-df; %频率向量
t_c = 1e-6; %时间偏移
%% 信号
window = kaiser(N, beta)';  % 生成Kaiser窗'
window_f = fftshift(window);
st = exp(1j*pi*K*t.^2);
st_window = window.*exp(-1j*pi*K*t.^2);
Sf = fft(st);
Hf = exp(1j*pi*f.^2/K);
Hf_window = window_f.*Hf;
S_out_window = Hf_window.*Sf;
%% 创建图形
figure;
subplot(2,2,1)
plot(t*1e+6,window),
title('时域窗函数'),
ylabel('幅度'),

subplot(2,2,2)
plot(fftshift(window)),
axis([0 120,0 1.2]),
title('频域窗函数'),

subplot(2,2,3)
plot(t*1e+6,real(st_window)),
xlabel('时间\mus')
ylabel('幅度'),
title('信号实部'),

subplot(2,2,4)
plot(real(S_out_window))
axis([0 120,-15 15]),
xlabel('频率(单元)')
title('频谱实部'),

sgtitle('3-10 Kaiser窗在时域和频域中的实现形式')

总结

降低峰值旁瓣比的一种方法是对频域匹配滤波器引入平滑窗,以减少主瓣到旁瓣到能量泄漏。

11. 图3-11

%% Figure3-11 
% DATE 23/8/29
% Harry
clc;
close all;
clear;

%% 参数设置
beta = 2.5;  % beta值
T = 42e-6; %持续时间
B = 17.2e6; %带宽
K = 0.41e12; %调频率
alpha = 1.07; %过采样率
F = 18.5e6; %采样率
N = 777; %采样点数
N_fft = 2048; %补零长度
dt = T/N; %时间间隔
df = F/N;
% t = ((0:N-1)-N/2)/N*T;      % 时间轴
% f = ((0:N-1)-N/2)/N*F;     % 频率轴
t = -T/2:dt:T/2-dt; %时间向量
f = 0:df:F-df; %频率向量

%% 信号
window = kaiser(N, beta)';  % 生成Kaiser窗
window_f = fftshift(window);
ht_1 = exp(1j*pi*K*t.^2);
ht = window.*ht_1;
H_f = conj(fft(ht_1,N_fft)); % 补零后进行DTF,取复共轭

%% 创建图形
figure;
subplot(2,1,1)
plot(abs(H_f),'k'),
axis([-20 2060,0 30])
line([860,860],[0,11],'Color','k','LineStyle','--'),
line([1190,1190],[0,11],'Color','k','LineStyle','--'),
title('加权后匹配滤波器的幅度谱'),
ylabel('幅度'),

subplot(2,1,2)
plot(unwrap(-angle(H_f(1:1:990))),'k'),hold on
plot(1060:1:2048,unwrap(-angle(H_f(1060:1:2048))),'k'),
axis([-50 2100,-1900 600]),
title('匹配滤波器的相位谱'),
xlabel('频率(FFT点数'),
ylabel('相位(弧度)'),

sgtitle('3-11 方式2生成的频域匹配滤波器频率响应函数的幅度和相位')

12. 图3-12

%% Figure3-12 
% DATE 23/8/29
% Harry
clc;
close all;
clear;

%% 参数设置
beta = 2.5;  % beta值
T = 42e-6; %持续时间
B = 17.2e6; %带宽
K = 0.41e12; %调频率
alpha = 1.07; %过采样率
F = 18.5e6; %采样率
N = 777; %采样点数
df = F/N;
f = -F/2:df:F/2-df; %频率向量

%% 滤波器实现
window = kaiser(N, beta)';  % 生成Kaiser窗'
window_f = fftshift(window);
H_f = window_f.*exp(1j*pi*f.^2/K); % 方式3,直接在频域生成匹配滤波器
H_f_phi = pi*f.^2/K;
%% 创建图形
figure;
subplot(3,1,1)
plot(abs(H_f),'k'),
% axis([-20 2060,0 30])
% line([860,860],[0,11],'Color','k','LineStyle','--'),
% line([1190,1190],[0,11],'Color','k','LineStyle','--'),
title('频域匹配滤波器的幅度'),
ylabel('幅度'),

subplot(3,1,2)
plot(1:1:388,f(388:1:775),'k'),hold on
plot(388:1:775,f(1:1:388),'k')
% axis([-50 2100,-1900 600]),
title('频域匹配滤波器的瞬时频率'),
ylabel('频率(MHz)'),

subplot(3,1,3)
plot(fftshift(H_f_phi),'k'),hold on
% axis([-50 2100,-1900 600]),
title('频域匹配滤波器的相位'),
ylabel('相位(弧度)'),

sgtitle('3-12 方式3生成的频域匹配滤波器')

13. 图3-13

%% Figure3-13 
% DATE 23/8/29
% Harry
clc;
close all;
clear;

%% 参数设置
T = 10e-6;
beta = 4;  % beta值
TBP = 80; %时宽带宽积
T = 8e-6; %持续时间
t_0 = 1e-7; %时间延迟
B = TBP/T; %带宽
K = B/T; %调频率
alpha = 5; %过采样率
F = alpha*B; %采样率
% N = 401; %采样点数
N = 2*ceil(F*T/2);
dt = T/N; %时间间隔
t = -T/2:dt:T/2-dt; %时间向量
N_ZD = 60; % 零频点位于目标中点右侧 
t_c = N_ZD*dt; %时间偏移
%% 信号设置
st_1 = exp(1j*pi*K*(t-t_c).^2);
st_0 = zeros(1,N);
st = [zeros(1,40),st_1,st_0,st_1,st_0,st_1,zeros(1,40)];
N_fft = length(st);
n = 0:1:N_fft-1;
df = F/N_fft;
f = -F/2:df:F/2-df; %频率向量
%% 滤波器实现(方式1)
ht_1 = conj(fliplr(st_1)); %复共轭+时间反褶
Hf_1 = fftshift(fft(ht_1,N_fft));
%% 滤波器实现(方式2)
% window2 = kaiser(N, beta)';  % 生成Kaiser窗'
% window2_f = fftshift(window2);
ht_2 = st_1;
Hf_2 = fftshift(conj(fft(ht_2,N_fft)));% 补零后进行DTF,取复共轭
%% 滤波器实现(方式3)
% window3 = kaiser(N, beta)';  % 生成Kaiser窗'
% window_f = fftshift(window3);
Hf_3 = exp(1j*pi*f.^2/K); % 方式3,直接在频域生成匹配滤波器
%% 信号处理
Sf = fftshift(fft(st));
Sout1 = ifft(ifftshift(Sf.*Hf_1));
Sout2 = ifft(ifftshift(Sf.*Hf_2));
Sout3 = ifft(ifftshift(Sf.*Hf_3));
%% 绘图
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(Sout1));axis tight;
title('(b)方式1的匹配滤波输出');ylabel('幅度');
subplot(4,1,3),plot(n,abs(Sout2));axis tight;
title('(c)方式2的匹配滤波输出');ylabel('幅度');
subplot(4,1,4),plot(n,abs(Sout3));axis tight;
title('(d)方式3的匹配滤波输出');xlabel('时间(采样点)');
ylabel('幅度');
sgtitle('3-13 通过压缩目标的位置来说明基带信号的弃置区和TA值')

总结

一般倾向于使用方式3将每一目标对准至其零频位置。方式2的弃置区位于IDFT输出序列的末端处理方便,所以有时候也会选择方式2

匹配滤波器是一种最佳线性滤波器,用于提高接收信号的信噪比。在合成孔径雷达(SAR)中,匹配滤波器通常在频域实现,有三种常见的方式:

  • 方式一:将时间反褶后的复制脉冲(发射复制脉冲)取复共轭,计算补零DFT。这种方式的弃置区位于IDFT输出序列的起始。
  • 方式二:将复制脉冲补零后进行DFT,对结果取复共轭(无时间反褶)。这种方式的弃置区位于IDFT输出序列的末端。
  • 方式三:根据设定的线性调频特性,直接在频域生成匹配滤波器。这种方式的弃置区分置于IDFT输出序列的两侧。

弃置区是指由于循环卷积的周期性假设而导致的错误输出点,应该从输出序列中去除。不同的匹配滤波器实现方式会导致不同的弃置区位置,因此需要注意选择合适的方式和处理方法。一般来说,方式二比较方便,因为它将弃置区置于输出序列的末端,而不影响有效的压缩结果。

参考

合成孔径雷达成像-三种匹配滤波
匹配滤波器的实现

其他文章

合成孔径雷达(SAR)成像算法与仿真(第二章仿真代码)

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 合成孔径雷达(Synthetic Aperture Radar,SAR)是一种利用成像原理实现高分辨率雷达成像的技术。合成孔径雷达成像算法(Synthetic Aperture Radar Imaging Algorithm)是一种用于处理SAR数据并生成高质量雷达图像的方法。 合成孔径雷达成像算法仿真实验主要包括以下步骤: 1. 数据采集:首先,需要采集合成孔径雷达系统所接收到的原始回波信号数据。这些数据通常采集自飞机、卫星等远距离平台,并且采集时保持平台与目标一定的相对运动。 2. 数据预处理:对采集到的原始数据进行预处理,主要包括去除杂散噪声、时域去斜校正和距离向压缩。这些预处理过程可以去除信号中的噪声和干扰,提高后续处理的效果。 3. 成像核心算法实现实现合成孔径雷达成像算法的核心部分,包括距离像、方位向像和像平面聚焦。距离像通过补零来延长距离向,方位向像通过多普勒频率转换将接收到的信号转换为成像数据,最后在像平面上将方位向和距离向进行聚焦,得到高分辨率的雷达图像。 4. 图像后处理:对得到的雷达图像进行后处理,包括图像增强、去斑点和去噪等操作,以进一步提高图像的质量和清晰度。 5. 仿真实验结果评估:对实验得到的合成孔径雷达图像进行评估和分析,包括分辨率、噪声等指标的定量评估,以及目标检测和目标辨识等应用性能的分析。 合成孔径雷达成像算法仿真实验是一种常用的手段,可以帮助研究人员验证算法的有效性和性能,优化算法参数和处理流程,为合成孔径雷达系统的实际应用提供可靠的基础。通过合成孔径雷达成像算法仿真实验,可以更好地理解雷达成像原理,提高成像质量,并为SAR应用领域的研究和开发提供指导。 ### 回答2: 合成孔径雷达SAR)是一种利用雷达的合成孔径成像技术进行地物探测和成像的方法。SAR可以利用雷达系统在不同位置和时间采集的数据,通过合成处理得到高分辨率的图像。 合成孔径雷达成像的RD算法是一种常用的SAR成像算法。该算法通过将接收到的回波信号进行一系列处理和合成,得到目标物体的图像。该算法的基本步骤如下: 1. 数据采集:通过雷达系统在不同位置和时间采集地物的回波信号。这些信号包含了目标物体的散射信息。 2. 预处理:对采集到的回波信号进行预处理,包括去除噪声、校正飞行轨迹等。 3. 脉冲压缩:利用脉冲压缩技术,将信号在距离域中展宽,以提高分辨率。 4. 映射到二维空间:将经过脉冲压缩处理的信号映射到二维空间,按照雷达系统的位置和方向进行几何校正。 5. 成像合成:将映射到二维空间的信号进行合成,生成地物的图像。这一步骤是合成孔径雷达成像的核心处理过程。 通过进行合成孔径雷达成像RD算法仿真实验,可以评估算法的性能和效果。仿真实验可以通过模拟地物的散射特性和雷达系统的参数,生成回波信号,并根据算法的流程进行处理和合成,得到地物的仿真图像。 合成孔径雷达成像RD算法仿真实验可以用于优化和改进算法的参数和流程,也可以用于验证和对比不同算法的性能。通过仿真实验,可以更好地理解和研究合成孔径雷达成像的原理和应用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔法幼儿园优秀毕业生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值