资源简介
车载LFMCW雷达系统仿真代码,详细,已通过实际测试。
代码片段和文件信息
% -----------------------------------------------------------------------------
% 安防多斜率 多目标配对
% n目标 n个斜率 +MTD
% fs=1e6; % 1M
% 8倍抽取 Fs=125k
% #
% # 缺陷:
% # 1.信号源是三角调制波平移和上下移得到,不是通过公式得到
% # 2.多目标配对写的方法较复杂,效果也不是很好
% # 3.无MTI MTD算法
% ------------------------------------------------------------------------------
clc;
clear all;
close all;
%%
B=250e6;
fs=500e6; % 1M
dt=1/fs;
c=3e8;
fc=34.5e9;
n_MTI=4;
n_MTD=n_MTI;
T=[40e-3 50e-3 60e-3 70e-3 ];
n_slope=length(T);
R=[ 20 40 60 80 ];% 单位:m
V=[ 1 2 3 4 ];% 单位:m/s
n_target=length(R);
for i=1:n_target
tao(i)=2*R(i)/c;
n_tao(i)=fix(tao(i)/dt); % 目标1的时间延迟
end
t_delay_max=1e-4;
n_delay_max=t_delay_max/dt+1;
t_total_1=t_delay_max; % 15000m时间延迟
n_T_total=0;
f_add=zeros(n_slopen_target);
for i=1:n_slope
T_half(i)=T(i)/2;
K(i)=B/T_half(i);
eval([‘t‘num2str(i)‘=0:dt:T(i);‘]);
n_T(i)= T(i)/dt+1;
n_T_half(i)= fix(n_T(i)/2);
t_total_1=t_total_1+T(i);
for j=1:n_target
f_add(ij)=(tao(j)-n_tao(j)*dt)*K(i);
end
n_T_total=n_T(i)+n_T_total; % 三角波调制时间点数,不含延迟时间
end
% 怎么处理处理连续时间和离散时间的关系
t_total=0:dt:t_total_1+n_slope*dt;
n_t_total=n_delay_max+n_T_total;
% tao(1)=2*(R(1)+V(1)*t1)/c;
%% 发射
for i=1:n_slope
eval([‘Sm_T_up_‘num2str(i)‘=K(i)*t‘num2str(i)‘(1:n_T_half(i));‘]);
eval([‘Sm_T_down_‘num2str(i)‘=-K(i)*(t‘num2str(i)‘(n_T_half(i)+1:n_T(i))-T(i));‘]);
eval([‘Sm_T_‘num2str(i)‘=[Sm_T_up_‘num2str(i)‘Sm_T_down_‘num2str(i)‘];‘]);
end
Sm_T=zeros(1n_t_total);
n_T_start=1;
n_T_end=0;
for i=1:n_slope
n_T_end=n_T_end+n_T(i);
eval([ ‘Sm_T(n_T_start:n_T_end)=Sm_T_‘num2str(i)‘;‘ ]);
n_T_start=n_T_start+n_T(i);
end
figure;
hold on;
plot(Sm_T);
% t = 0:ts_bb:T(1)+T(2)+T(3)+T(4);
% Sm_T = 2*pi*(fc + Sm_T).*(t - n_t_half*T_half) + 0;% 发射信号相位
%% 接收
Sm_R=zeros(n_targetn_t_total);
for i=1:n_target
Sm_R(i:)=[zeros(1n_tao(i))Sm_T(1:(n_t_total-n_tao(i)) )];
f_IF(i)=2*K(1)*R(i)/c; %目标1的距离频移
f_d(i)=2*fc*V(i)/c; %目标1的多普勒频移
end
for j=1:n_target
n_sb_t=n_tao(j);
for i=1:n_slope
%eval([]);
Sm_R(jn_sb_t+1:n_sb_t+n_T_half(i))=Sm_R(jn_sb_t+1:n_sb_t+n_T_half(i))-f_add(ij);
Sm_R(jn_sb_t+n_T_half(i)+1:n_sb_t+n_T(i))=Sm_R(jn_sb_t+n_T_half(i)+1:n_sb_t+n_T(i))+f_add(ij);
% 因为n_tao1取整平移后,有量化损失,上面加减f_add就是补偿这种损失
n_sb_t=n_sb_t+n_T(i);
end
Sm_R(j:)=Sm_R(j:)+f_d(j);
end
% figure;
plot(Sm_R(1:)‘r‘);
plot(Sm_R(2:)‘k‘);
%% 差拍
for j=1:n_target
Sm_B(j:)=Sm_T-Sm_R(j:);
Sm_B(j:)=abs(Sm_B(j:));
end
plot(Sm_B(1:)‘y‘);
plot(Sm_B(2:)‘g‘);
%axis([1n_T(1)+n_tao(1)-5e65e6]);
hold off;
% n_Sm_B=length(Sm_B(1:));
% n_t_total=(n_Sm_B-1)*dt;
% t_total=0:dt:n_t_total;
sb_temp=zeros(n_targetn_t_total);
for j=1:n_target
sb_temp(j:)=cos(2*pi*Sm_B(j:).*t_total); %调制,
- 上一篇:水质评价模糊分析代码matlab
- 下一篇:正弦模型的matlab程序
评论
共有 条评论