SAR成像(一):线性调频信号(LFM)和脉冲压缩
文章仅为个人理解,如有不妥之处欢迎指正。
1、脉冲压缩目的和意义
在雷达系统中,距离分辨率是很重要的一项性能指标,它决定了雷达能分辨两个单元之间的最小距离,更通俗的,即雷达分辨相离较近物体的能力。而决定雷达分辨率的是发射信号带宽,所以我们想要提高距离分辨率,就需要发射更窄的脉冲信号,但是,窄脉冲就意味着发射信号能量小,导致探测距离短,所以,对于一般的脉冲信号(脉宽、时宽乘积约为1),比如矩形脉冲信号,带宽和时宽不能同时增大,因此距离分辨率和探测距离是一对矛盾。
脉冲压缩技术就能比较好的解决上述两个参量之间的矛盾,用宽脉冲发射信号,保证足够的探测距离,在接收端用相应的匹配滤波器,通过脉冲压缩技术得到窄脉冲,以此来提高距离分辨率。
2、线性调频信号
大时宽的宽频信号有很多形式,在雷达系统中最常用的是线性调频(Linear Frequency Modulation)脉冲信号。LFM脉冲信号的载频在脉冲宽度范围内线性变化,因此也有更宽的带宽。
LFM信号的复数表达式为:
s
(
t
)
=
r
e
c
t
(
t
τ
)
e
j
2
π
(
f
0
+
K
t
2
/
2
)
s(t)=rect(\frac{t}{\tau})e^{j2\pi(f_{0}+Kt^{2}/2)}
s(t)=rect(τt)ej2π(f0+Kt2/2)
其中,
f
0
f_{0}
f0为初始载频,
τ
\tau
τ为脉冲宽度,
K
K
K为发射线性调频信号的调频斜率,且
r
e
c
t
(
t
τ
)
=
{
1
,
∣
t
∣
≤
τ
/
2
0
,
∣
t
∣
≥
τ
/
2
rect(\frac{t}{\tau})=\begin{cases} 1, \text{ $|t|\leq \tau/2$} \\ 0, \text{ $|t|\geq\tau/2$} \end{cases}
rect(τt)={1, ∣t∣≤τ/20, ∣t∣≥τ/2
K
=
B
/
τ
K=B/\tau
K=B/τ
B
B
B为信号带宽。
信号的瞬时频率
f
(
t
)
f(t)
f(t)为:
f
(
t
)
=
1
2
π
d
d
t
[
2
π
(
f
0
t
+
K
t
2
/
2
)
]
=
f
0
+
K
t
f(t)=\frac{1}{2\pi}\frac{d}{dt}[2\pi(f_{0}t+Kt^2/2)]=f_{0}+Kt
f(t)=2π1dtd[2π(f0t+Kt2/2)]=f0+Kt
当
B
B
B=20MHz,
τ
\tau
τ=10
μ
s
\mu s
μs时,线性调频信号波形和频谱如下图所示:
还有一点不得不强调,LFM脉冲信号的带宽和时宽都是可以自己选择的,不像矩形脉冲信号那样带宽和时宽相互制约。
3、脉冲压缩
脉冲压缩的理论基础是匹配滤波。对雷达接收的回波信号进行脉冲压缩后有两个好处:增加信噪比;压缩信号宽度。
匹配滤波是一种最优滤波器,只要我们给予输入的是某一确知信号,并加上白噪声,那么就能让输出的信噪比达到最大。
将回波信号记为
f
(
t
)
f(t)
f(t),设滤波器的传输函数为
H
(
w
)
H(w)
H(w),则为了满足最大输出信噪比,
H
(
w
)
H(w)
H(w)的表达式为:
H
(
w
)
=
K
F
∗
e
−
j
w
t
0
H(w)=KF^*e^{-jwt_{0}}
H(w)=KF∗e−jwt0
上式中,
F
∗
F^*
F∗为
f
(
t
)
f(t)
f(t)傅里叶变换的共轭;
t
0
t_0
t0是物理器件的时间延时;
K
K
K为增益常数。
从时域角度看,匹配滤波器也可以用冲激函数
h
(
t
)
h(t)
h(t)来表示,则上式描述的滤波器冲击响应为:
h
(
t
)
=
K
f
∗
(
t
0
−
t
)
h(t)=Kf^*(t_0-t)
h(t)=Kf∗(t0−t)
脉冲压缩要在雷达后端接收机由数字信号处理器件完成,而在这个过程中,由于器件速度的限制,脉冲压缩的过程通常需要在零中频进行,此时,线性调频信号的表达式变为:
s
(
t
)
=
r
e
c
t
(
t
τ
)
e
j
π
K
t
2
s(t)=rect(\frac{t}{\tau})e^{j\pi Kt^{2}}
s(t)=rect(τt)ejπKt2少了初始频率
f
0
f_0
f0,从
h
(
t
)
h(t)
h(t)的表达式可以看出,如果不考虑器件延时
t
0
t_0
t0和增益常数
K
K
K,匹配滤波器的冲击响应是滤波器输入信号
f
(
t
)
f(t)
f(t)的共轭倒置,即:
h
(
t
)
=
f
∗
(
−
t
)
=
r
e
c
t
(
t
τ
)
e
−
j
π
K
t
2
h(t)=f^*(-t)=rect(\frac{t}{\tau})e^{-j\pi Kt^{2}}
h(t)=f∗(−t)=rect(τt)e−jπKt2滤波器输出可以由
f
(
t
)
、
h
(
t
)
f(t)、h(t)
f(t)、h(t)卷积得到,也可以由他们的傅里叶变换乘积再经过傅里叶反变换得到。在实际应用中,通过卷积直接做脉冲压缩的运算量很大。,更多是从频域角度来实现匹配滤波。
4、仿真
参数名称 | 参数值 |
---|---|
带宽(B) | 20MHz |
脉冲宽度(tao) | 10e-6s |
脉冲重复间隔 (T) | 1e-4s |
采样频率(fs) | 20MHz |
目标1距离(R1) | 5000m |
目标2距离(R2) | 8000m |
目标3距离(R3) | 8300m |
目标4距离(R4) | 9500m |
得到回波如下图:
对回波进行脉冲压缩后的波形如下图:
可以看到,由于目标2、目标3和目标3相距较近,他们的回波信号由接收机接收后会混在一起,难以分辨,但是经过脉冲压缩后,可以很容易的分辨出来。
附上仿真程序:
clear;clc;close all
T = 1e-4; %最大探测距离 c*T/2=15000m
tao = 10e-6;
B = 20e6;
fs = 2*B;
c = 3e8; %光速
K = B/tao;
R = [5000 8000 9300 8500];
rcs = [0.2 0.5 0.3 0.35];
delay = 2*R./c;
t=-tao/2:1/fs:tao/2-1/fs;
x_linear=exp(1j*pi*(K.*(t.^2))); %发射信号
figure
subplot(211);plot(t,real(x_linear));title('时域波形')
X=fftshift(fft(x_linear));
f=linspace(0,fs,length(t))-fs/2;
subplot(212);plot(f,abs(X));title('频域')
tt = 0:1/fs:T-1/fs;
echo = zeros(1,length(tt));
for i = 1:length(R)
% 回波信号
echo = echo + randn(1,length(tt))*0.2 + ...
rcs(i)*rectpuls(tt-delay(i)-tao/2,tao).*exp(1j*pi*K*(tt-delay(i)-tao/2).^2);
end
figure;
plot(tt,real(echo));xlabel('time');title('回波')
h=exp(1j*pi*(K.*(t.^2))); %匹配滤波器冲击响应
output=ifft(conj(fft(h,length(echo))).*fft(echo,length(echo))); %h和echo做fft的长度要一样
figure;
subplot(211);plot(0:1/fs:T-1/fs,abs(output));title('脉冲压缩输出波形');xlabel('time');
subplot(212);plot((0:1/fs:T-1/fs)*c/2,db(abs(output)/max(abs(output))),'r');
title('脉压结果分贝图');ylabel('dB');xlabel('m');
相关内容:
SAR成像(零):【总结】SAR成像原理和仿真实现
SAR成像(一):线性调频信号(LFM)和脉冲压缩
SAR成像(二):高方位向分辨率原理
SAR成像(三):快时间与慢时间
SAR成像(四):多普勒频移的计算
SAR成像(五):回波模型
SAR成像(六):距离徙动矫正
SAR成像(七):RD成像算法
参考:
[1]陈小利. 合成孔径雷达成像研究[D].南京大学,2015.
[2]https://blog.csdn.net/weixin_45858061/article/details/102986993
最新文章
- em详解
- 【液晶模块系列基础视频】4.5.X-GUI图形界面库-进度条等函数简介
- 说一个Sublime Text 2插件、emmet(原名:zen Coding)
- golang的哪些坑爷事: package实践
- Get Resultset from Oracle Stored procedure
- Spring ---annotation (重点)--AutoWired 不常用
- Openresty 数据共享API.Data Sharing within an Nginx Worker
- eclipse 包 取消代码第一行package包名 自动补全时取消自动引入包名 修改名字 取消引用 自动导入publilc static void main(String[] args) {}
- Python——字符转换(int , bool ,str)
- docker之常用命令、自定制镜像、公(私)仓库的上传和下载
- Shadow Properties之美(一)【Microsoft Entity Framework Core随笔】
- luogu P1353 【[USACO08JAN]跑步Running】
- SQL注入之Sqli-labs系列第十五关和第十六关(基于POST的时间盲注)
- 使用spacedesk实现两台笔记本的双屏显示
- vue教程2-07 自定义指令
- 基于sql service会话共享,实现SSO
- [Issue]Ubuntu 16.04 ssh: sign_and_send_pubkey: signing failed: agent refused operation
- e822. 监听JScrollPane的滚动
- wordcount在本地运行报错解决:Exception in thread ";main"; java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.native.NativeID$Windows.access
- Java reflect 反射 1
热门文章
- Codeforces Round #569 (Div. 2)
- 个别编程语言在OJ平台上的输入输出方式
- cordova完整版本创建、修改自定义插件重新调试步骤带截图
- absolute定位后居中的方法
- DQL_排序查询-DQL_聚合函数
- RabbitMQ消息队列入门及解决常见问题
- SpringBoot实现电子文件签字+合同系统
- C#Autofac依赖注入批量注入 (目前版本.netcore3.0)
- LeetCode_804. 唯一摩尔斯密码词
- spring-in-action-初识反应式编程reactor