赞
踩
本次实验的目的主要是对雷达信号进行RD图的仿真
首先,要明白RD图指的是什么,R指的是range,D指的是doppler,range的含义就是目标距雷达的距离,doppler的含义是指目标相对于雷达的径向速度。
还有一个重要知识点:测量雷达距目标的距离是通过一个chirp来实现的,测量雷达与目标的相对速度是要通过多个chirp来实现。
为什么测速要通过多个chirp呢?
理论上测速也可以通过一个chirp内进行的,但是一个chirp内的时间间隔很短,所以就很难测出速度,因此就选用多个chirp通过不同chirp之间的相位差来进行测速(个人理解:可以一起交流讨论)
雷达的发射信号(线性调频脉冲信号):
S
T
(
t
)
=
A
T
∗
e
x
p
(
j
2
π
∗
f
c
∗
(
t
+
i
∗
T
r
)
+
S
2
t
2
)
S_T(t)=A_T*exp(j2\pi * f_c*(t+i*T_r)+\frac{S}{2}t^2)
ST(t)=AT∗exp(j2π∗fc∗(t+i∗Tr)+2St2)
参数介绍:
雷达的接收信号:
S
R
(
t
)
=
A
R
∗
A
T
∗
e
x
p
(
j
2
π
∗
(
f
c
−
f
d
)
∗
(
t
−
t
d
+
i
∗
T
r
)
+
S
2
(
t
−
t
d
)
2
)
S_R(t)=A_R*A_T*exp(j2\pi * (f_c-f_d)*(t-t_d+i*T_r)+\frac{S}{2}(t-t_d)^2)
SR(t)=AR∗AT∗exp(j2π∗(fc−fd)∗(t−td+i∗Tr)+2S(t−td)2)
参数介绍:
雷达的中频信号:
I
F
=
S
T
(
t
)
∗
S
R
∗
(
t
)
IF=S_T(t)*S_R^*(t)
IF=ST(t)∗SR∗(t)
数据仿真及保存
%% 超参数 c = 3e8; %光速 fc = 76.5e9; %发射信号载频 中心频率 bw = 500e6; %发射信号带宽 Tr = 10e-6; %扫频时间 也就是周期 N = 256; %采样点 Fs = 25.6e6; %采样率 M = 256; %chirp的数目 k = bw/Tr; %chirp斜率 index = 1:1:N; %产生点向量 IF_mat = zeros(M,N); %存储带有噪声的中频信号 %% 发射信号参数 AT = 10; %发射信号增益 t = 0:1/Fs:Tr-1/Fs; %时间向量 确定256个点在一个Tr中的每个时刻 t = t - Tr/2; %将fc作为中心频率 %% 回波信号参数 distance = 50; %目标距离雷达50m的距离 t_d = 2 * distance / c; %目标距离雷达的延迟 velocity = -20; %目标距雷达的相对速度为30m/s f_d = 2 * (fc - bw/2) * velocity / c; %多普勒频移 AR = 0.8; %回波信号衰减的比例值 %% 生成数据 for i = 1:1:M %chirp的循环 St = AT*exp((1i*2*pi)*(fc*(t+i*Tr)+k/2*t.^2)); %发射信号 Sr = AR*AT*exp((1i*2*pi)*((fc-f_d)*(t-t_d+i*Tr)+k/2*(t-t_d).^2)); %回波信号 %% 求回波信号的共轭 Sr_conj = conj(Sr); %求回波信号的共轭 %% 求中频信号 IF = St .* Sr_conj; %求中频信号 SNR = 10; %信噪比 IF_with_Noise = awgn(IF,SNR,'measured'); %给中频信号加高斯白噪声,在添加噪声的时候,要进行能量的测量 IF_mat(i,:) = IF_with_Noise; %将带有噪声的中频信号保存 end save('Ego_vehicle.mat', 'IF_mat'); %进行数据的保存
运行上述程序会生成一个Ego_vehicle.mat文件
数据解析及得到RD图
%% 加载数据 IF_mat = cell2mat(struct2cell(load('Ego_vehicle.mat','IF_mat'))); %% 超参数 c = 3e8; %光速 fc = 76.5e9; %发射信号载频 中心频率 bw = 500e6; %发射信号带宽 Tr = 10e-6; %扫频时间 也就是周期 N = 256; %采样点 Fs = 25.6e6; %采样率 M = 256; %chirp的数目 k = bw/Tr; %chirp斜率 lambda = c / (fc - bw/2); point = 1:1:N; %产生点向量 %% 生成窗 range_win = hamming(N); %生成range窗 doppler_win = hamming(M); %生成doppler窗 %% range fft for i = 1:1:N temp = IF_mat(i,:) .* range_win'; temp_fft = fft(temp,N); IF_mat(i,:) = temp_fft; end %% doppler fft for j = 1:1:M temp = IF_mat(:,j) .* doppler_win; temp_fft = fftshift(fft(temp,M)); IF_mat(:,j) = temp_fft; end %% 画图 figure; distance_temp = (0:N - 1) * Fs * c / N / 2 / k; speed_temp = (-M / 2:M / 2 - 1) * lambda / Tr / M / 2; [X,Y] = meshgrid(distance_temp,speed_temp); mesh(X,Y,(abs(IF_mat))); xlabel('距离(m)'); ylabel('速度(m/s)'); zlabel('信号幅值'); title('2维FFT处理三维视图'); figure; speed_temp = -speed_temp; imagesc(distance_temp,speed_temp,abs(IF_mat)); title('距离-多普勒视图'); xlabel('距离(m)'); ylabel('速度(m/s)');
实验结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。