目录
1. 参数设计
几个重要的约束关系
仿真参数设计
2. matlab雷达测距代码
完整源码
代码分析
回顾:LFM的基本原理请详见第一章
本章节将介绍LFM雷达测距的原理及实现
1. 参数设计
-
几个重要的约束关系
带通采样定理:
因此如果我们B=80MHz时,奈奎斯特采样率近似等于2.11倍带宽,因此我们采样率fs设置为2.5倍带宽绰绰有余。
距离分辨率:
最大目标探测距离:
由下式定义,,其中Tr表示脉冲重复周期
当我们Tr设置为0.05s时,按照公式可得最大检测距离Rmax=7500000m,脉冲波形的往返时间也为0.05s,因此我们采样时间也就为0.05s。
采样时间:
采样时间可以由上述的最大目标检测距离确定,假设最大目标检测距离为Rmax,则最大采样时间t为,换句话说,采样时间与你的最大检测距离或者检测范围有关
若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('脉冲压缩测距')
-
代码分析