【测距测速】线性调频雷达(LFM)雷达测距、测速原理【附MATLAB代码】

作品简介


欢迎加入学术交流Q4群:192253249,诸多985/211高校硕博大佬在群内研讨交流,研究方向包含:雷达、通信、RIS、DOA估计、调制识别、故障诊断、雷达通信一体化、侦察干扰一体化、压缩感知、深度学习、强化学习、计算机视觉、图像处理等领域。

相关学习资料见面包多链接https://mbd.pub/o/author-a2mYl2tsbA==/work

欢迎加入我的知识星球:https://t.zsxq.com/11PZOV9jw,永久获取更多相关资料、代码。

MATLAB仿真结果

更多雷达、通信MATLAB代码

面包多链接https://mbd.pub/o/author-a2mYl2tsbA==/work

知识星球:https://t.zsxq.com/11PZOV9jw,永久获取更多相关资料、代码。

%==========================================================================
%%   连续脉冲LFM雷达测距测速
%==========================================================================
clear;clc;close all;
%% LFM参数设置
fc = 4e9;               %载波频率
PRF = 2000;               %脉冲重复频率
Tr = 1/PRF;             %脉冲重复周期
B = 80e6;               %带宽
Fs = 2.5*B;             %采样频率
Ts = 1/Fs;              %采样时间
Tp = 10e-6;             %脉宽
c = 3e8;                
lamda = c/fc;           %载波波长
Kr = B/Tp;               %调频斜率
N_pulse = 50;           %脉冲个数(个数不能太少)
t = 0:1/Fs:Tp;        %采样时间
N_samples = length(t);   %采样点个数
N_targets= 5;           %目标物体个数
Rmax = c/2*1*Tp;       %最大检测距离(受到采样时间的限制,采样时间为16Tp)
Vmax = lamda*PRF/2;     %目标最大速度,最大测速范围满足在第一盲速之内
R_targets = [1000,230,680,860,145];%物体的距离随机生成
RCS = 10*(exp(1i*2*pi*rand(1,N_targets)));%目标物体RCS,幅度为10,相位在(0,2pi)之间随机分布
V_targets = Vmax*((rand(1,N_targets))/2);%目标物体速度
 
%% 接收矩阵sr计算
sr = zeros(N_pulse,N_samples);%sr的每一行表示一个回波信号所含的采样点,一共有50行不同回波信号构成
for i = 1:N_pulse
    delay = (i-1)*Tr;   %发送第i个Chrip信号时相对初始时间的时延
    sr_row = 0;
    % 内层for循环,一个目标一个目标来研究,对应每一个回波脉冲是由每一个目标回波之和组成
    for k=1:N_targets
        tao=2*(R_targets(k)-V_targets(k).*(delay+t))/c;   %在当前时刻,雷达信号往返的时间(目标物体在运动,距离在变化)
        sr_temp=RCS(k).*rectpuls(t-tao-Tp/2,Tp).*exp(-1j*2*pi*fc*tao+1j*pi*Kr.*(t-tao-Tp/2).^2);
        sr_row=sr_row+sr_temp;
    end
    % 外层for循环,不同的脉冲,对应的delay是不同值,再代入来计算回波
    sr(i,:)=sr_row;
end
R_range = c*t/2;    %在采样时间内,距离的范围
%% 脉冲压缩
% 参考信号st
st=rectpuls(t-Tp/2,Tp).*exp(1i*pi*Kr*(t-Tp/2).^2);%时域参考信号(将原始信号右移Tp/2)
stf=conj(fft(st));%匹配滤波器的频域特性
for i=1:N_pulse
    sr_mf(i,:)=ifft(fft(sr(i,:)).*stf);  %分别对每一行脉冲压缩 频域脉冲压缩(匹配滤波mf)          
end
 
%% 图像输出
%----------------------------测距(Range FFT)------------------------------
% 第一个回波信号的距离幅度谱
figure(2);
plot(t*c/2,abs(sr_mf(1,:)))                       
title('第一个回波信号的距离幅度谱');
%----------------------------测速(Speed FFT)------------------------------
sr_speed=fft(sr_mf,[],1);
V=linspace(0,PRF,50)*lamda/2;
 
% 尝试着画一下三维图
figure(4)
mesh(R_range,V,abs(sr_speed)/max(max(abs(sr_speed))));
xlabel('距离/m'); 
ylabel('速度/(m/s)');
zlabel('幅度/db');
title('目标距离速度信息一览');
 


创作时间: