赞
踩
第三章 线性调频信号的脉冲压缩
最近在学习Cumming的《合成孔径雷达算法与实现》这本书,在此记录学习的进度,也顺便在此总结一下之前学习的内容。
%% 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)ejπKt2
其中, 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)=∣K∣2π rect(Bf)e−jπKf2
其中, r e c t ( x ) \mathrm{rect}(x) rect(x)是矩形函数, B B B是信号的带宽, K K K是线性调频率。
线性调频信号 - 知乎专栏
线性调频信号(LFM)的形式及幅度谱、相位谱特性-CSDN博客
线性调频(LFM)信号仿真分析 - 知乎
%% 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)=∣K∣2π
rect(Bf)e−jπKf2
通常会忽略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)e−jπKf2
其中,
r
e
c
t
(
x
)
\mathrm{rect}(x)
rect(x)是矩形函数,
B
B
B是信号的带宽,
K
K
K是线性调频率。线性调频信号的频谱具有以下特点:
%% 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=∣K∣T2
驻定相位原理是一种利用信号相位变化率快的情况,估计傅里叶变换的方法。它的基本思想是,当相位随时间变化很快时,傅里叶变换的积分值主要由相位变化率为零的点(驻相点)附近的贡献决定。利用驻定相位原理,可以将复杂的积分问题简化为计算驻相点附近的振幅和相位的问题。
驻相点(stationary point)是一种数学概念,指的是函数的一阶导数为零的点。驻相点也称为稳定点或临界点,它可以用来判断函数的极值、拐点、凹凸性等性质。
1.驻定相位原理,以及在LMF信号中的实现
2.驻定相位原理(POSP)以及线性调频信号的频谱
%% 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=∣K∣Tfs
过采样率(oversampling rate)是指采样频率与信号最高频率的比值,也就是采样频率与奈奎斯特频率的比值。过采样率越高,表示对信号的采样越密集,可以提高信号的分辨率和信噪比,但也会增加数据量和计算复杂度。
频谱间隙(spectral gap)是指采样信号频谱中的空白区域,也就是信号的频带与采样频率的奈奎斯特区间之间的差值。频谱间隙越大,表示采样频率远远高于信号的最高频率,可以避免混叠现象,但也会造成频谱资源的浪费。
间隙也可以被看作未被利用的频谱空间。
过采样率与频谱间隙的关系是:过采样率越高,频谱间隙越大;过采样率越低,频谱间隙越小。检验采样率充分性的一种方法是寻找采样信号频谱中的间隙。若间隙不存在,则采样率过小;若间隙高于采样率的20%,则采样率大于最优效率值。
过采样率应选在1.1~1.4 之间。
1.线性调频信号
%% 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分辨率的测量')
%% 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 基带线性调频信号的匹配滤波')
%% 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 存在噪声时线性调频信号的匹配滤波')
%% 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}
ρ=∣K∣T0.886≈∣K∣T1
分辨率又称为冲激响应宽度IRW
在时域中,非基带信号可以看作零频时刻偏离脉冲中心的信号。
通常要将压缩数据校准值零频位置,可以通过频域匹配滤波器很方便的实现。
%% 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 匹配滤波后的信号频谱')
频域匹配滤波后正弦(线性相位)项占主导地位。
%% 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窗在时域和频域中的实现形式')
降低峰值旁瓣比的一种方法是对频域匹配滤波器引入平滑窗,以减少主瓣到旁瓣到能量泄漏。
%% 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生成的频域匹配滤波器频率响应函数的幅度和相位')
%% 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生成的频域匹配滤波器')
%% 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)中,匹配滤波器通常在频域实现,有三种常见的方式:
弃置区是指由于循环卷积的周期性假设而导致的错误输出点,应该从输出序列中去除。不同的匹配滤波器实现方式会导致不同的弃置区位置,因此需要注意选择合适的方式和处理方法。一般来说,方式二比较方便,因为它将弃置区置于输出序列的末端,而不影响有效的压缩结果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。