LFM雷达实现及USRP验证【章节2:LFM雷达测距】

  • Post author:
  • Post category:其他



目录


1. 参数设计


几个重要的约束关系


仿真参数设计


2. matlab雷达测距代码


完整源码


代码分析


回顾:LFM的基本原理请详见

第一章

本章节将介绍LFM雷达测距的原理及实现

1. 雷达测距原理

参考:




Radar测距及测速原理(1)——FMCW测距和测速原理及具体推导 – 知乎 (zhihu.com)


icon-default.png?t=N2N8
https://zhuanlan.zhihu.com/p/77474295


2. 参数设计

  • 几个重要的约束关系



带通采样定理





因此如果我们B=80MHz时,奈奎斯特采样率近似等于2.11倍带宽,因此我们采样率fs设置为2.5倍带宽绰绰有余。



距离分辨率




\sigma _{R}=c/(2B)



最大目标探测距离




由下式定义,,其中Tr表示脉冲重复周期

Rmax=\frac{1}{2}cTr

当我们Tr设置为0.05s时,按照公式可得最大检测距离Rmax=7500000m,脉冲波形的往返时间也为0.05s,因此我们采样时间也就为0.05s。



采样时间




采样时间可以由上述的最大目标检测距离确定,假设最大目标检测距离为Rmax,则最大采样时间t为,换句话说,采样时间与你的最大检测距离或者检测范围有关

t_{max}=2Rmax/c

若Rmax=1000m,则采样时间约为6.67ns,易知,探测距离越远则采样时间越长

  • 仿真参数设计

参数设置 参数意义
fc 载波频率 4GHz
Fs 采样率为200MHz(USRP最大采样率受限)
Ts 采样周期Ts=1/FS=5ns
B B=0.4Fs=80MHz
Tp 时宽10us,Tp=10e-6
c 光速,设置为3e8
Tr 脉冲重复周期等于1/PRF=50ms
PRF 脉冲重复频率为20
lamda 波长等于光速/载波频率=75mm(毫米波波段)
Rmax 最大探测距离300m
R_resolution 距离分辨率=光速/两倍波长=c/(2B)=1.875m

2. matlab雷达测距代码

原始雷达回波 经过脉冲压缩之后的回波
  • 完整源码

%==========================================================================
%%   单脉冲LFM雷达测距
%==========================================================================
clear all;clc;close all;

%% LFM参数设置
fc = 4e9;               %载波频率
PRF = 20;               %脉冲重复频率
Tr = 1/PRF;             %脉冲重复周期
B = 80e6;               %带宽
Fs = 2.5*B;             %采样频率
Ts = 1/Fs;              %采样时间
Tp = 10e-6;             %脉宽
c = 3e8;                

lamda = c/fc;           %载波波长                 
R_max = 3000;            %最大检测距离(不能设置太小,不然后面存在问题,回波窗尽量大一些)                
R_min = 0;              %最小检测距离
RCS = [1,1,1];          %目标物体的反射截面积
R_targets = [105,11,60];          %目标距离

%% LFM参数导出                                
K = B/Tp;               %调频斜率      
Rwind = R_max - R_min;  %距离窗                       
twind = 2*Rwind/c;      %利用距离窗计算信号的往返时间窗                     
num_wind_sample = ceil(twind/Ts);%在规定时间窗内总的采样点数计算

%% LFM回波信号生成
t = linspace(2*R_min/c,2*R_max/c,num_wind_sample);%将检测范围所需时间分成与采样点数相同数量的点
num_targets = length(R_targets);%计算目标物体个数
% LTI系统的接收信号
td=ones(num_targets,1)*t-2*R_targets'/c*ones(1,num_wind_sample);
%-----参考章节1中的LTI系统输入输出关系-------
Srt=RCS*(exp(1i*pi*K*td.^2).*(abs(td)<Tp/2));%从点目标来的回波(所有目标物体的叠加)

%% 脉冲压缩
num_chrip_samples = ceil(Tp/Ts);    %将脉宽按照采样间隔离散化得到chrip的时域采样点数
%%循环卷积长度应当大于等于N+N-1,其中弃置区位于长度大于N+N-1的部分(参考章节1中的频域匹配滤波部分)
num_fft = 2^nextpow2(2*num_wind_sample-1);          %方便使用FFT算法,满足2的次方形式
t0 = linspace(-Tp/2,Tp/2,num_chrip_samples);
%对接收信号Srt进行傅里叶变换得到Srw
Srw = fft(Srt,num_fft);
%原始发射信号St及其fft
St = exp(1i*pi*K*t0.^2);%发射的LFM信号(用t0限制了脉宽)
Stw = fft(St,num_fft);%发射信号的频域
%匹配滤波
Sot = fftshift(ifft(Srw.*conj(Stw)));           %脉冲压缩后的信号

%% 数据处理
N0 = ceil(num_fft/2-num_chrip_samples/2);
Z = abs(Sot(N0:N0+num_wind_sample-1));
%归一化并取dB表示
Z = Z/max(Z);
Z_dB = 20*log10(Z);

%% 绘图
figure(1)
plot(t*10e6,real(Srt));
axis tight,xlabel('时间 / us');ylabel('幅度'),title('原始雷达回波');
figure(2)
plot(t*c/2,Z_dB);
axis([R_min,R_max,-60,0]);
xlabel('距离 / m'),ylabel('幅度 / dB'),title('脉冲压缩测距')
  • 代码分析



版权声明:本文为weixin_44810982原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。