欢迎加入学术交流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('目标距离速度信息一览');