无人驾驶技术——雷达距离估计


雷达

这一节,主要是学习使用多普勒和傅立叶变换技术进行距离和速度估计的基础知识。

距离多普勒估计

雷达分辨率的三个主要测量维度。

在这里插入图片描述
雷达根据距离、角度和速度的差异来分辨两个目标的能力。

雷达分辨目标的能力对于精确感知非常关键。

距离分辨能力:雷达分辨距离非常近的两个目标的能力。如果雷达的距离分辨率为4米,那么它不能以距离为基础将站在车外1米处的行人分开。

距离分辨率完全取决于chirp B_sweep的带宽。
在这里插入图片描述

速度分辨力:如果两个目标有相同的距离,当它们以不同的速度运动时,仍然可以分辨。速度分辨率取决于chirp的数目。正如我们所讨论的,我们选择发送128个chirp。chirp的数目越大,速度分辨率越高,但处理信号的时间也越长。

更高的带宽将允许更小的范围分辨率。这将有助于雷达区分近程目标。

角度分辨率:雷达能够在空间上分离两个目标。如果两个目标在相同的速度下以相同的距离飞行,那么它们仍然可以根据雷达坐标系中的角度进行解算。角度分辨率取决于使用的角度估计技术的不同参数。我们将在下一课中更详细地讨论这个问题。

距离估计代码实现

%calculate the range of four targets with respective measured frequencies
% [0 KHz 1.1 KHz 13 KHz 24 KHz]
%Give: the radar maximum range = 300m and the range resulution = 1m

%Speed of light
c = 3*10^8;
dalta_r = 1; %range resolution in meters
Bsweep = c/2*dalta_r; %Bsweep calculation


%calculation the frequency of shift
range_max = 300;
Ts = 5.5*(range_max*2/c); %5.5 times of the trip time for maximum range

%define the frequency shifts
beat_freq = [0 1.1e6 13e6 24e6];
calculated_range = c*Ts*beat_freq/(2*Bsweep);

disp(calculated_range)

输出 0 12.1000 143.0000 264.0000

多普勒估计代码实现

%calculate the velocity in m/s of four targets following dopller frequency
%shifts [3 KHz -4.5 KHz 11 KHz -3 KHz]
%Speed of light
c = 3*10^8;
%Operating frequency (Hz)
frequency = 77.0e9;
wavelength= c/frequency; %TODO: Calculate the wavelength

% define the doppler shift in Hz
doppler_shift = [3e3 -4.5e3 11e3 -3e3];

%calculate the velocity of the target fd= 2 * Vr/lambda
Vr = doppler_shift * wavelength / 2;

disp(Vr)

输出为 5.8442 -8.7662 21.4286 -5.8442

FFT(傅里叶变换)代码实现

%FFT
Fs = 1000;  %sampling frequency
T = 1 / Fs;  %sampling period
L = 1500;   %length of signal
t = (0:L-1)*T %time vector


%USING the wve equation
%from a signal containing a 77 Hz sinusoid of amplitude 0.7 and a 43Hz
%sinusoid of amplitude 2.
S = 0.7*sin(2*pi*77*t) + 2*sin(2*pi*43*t);

%corrupt the sognal with noise the "randn" - noise operation function
X = S + 2 *randn(size(t));

plot(1000*t(1:50), X(1:50));
title('Signal corrupted with zero-mean random noise')
xlabel('t (milliseconds)')
ylabel('X(t)')


Y = fft(X);

P2 = abs(Y/L);

P1 = P2(1:L/2+1);

f = Fs*(0:(L/2))/L;
plot(f, P1)
title('signal-sided amplitude spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')

在这里插入图片描述

在这里插入图片描述

二维傅里叶变换(2D FFT)

一旦通过在所有chirps中运行距离FFT确定距离仓,则沿第二维度执行第二个FFT,以确定多普勒频移。如前所述,多普勒是通过处理多个chirp的相位变化率来估计的。因此,在发送该段中的所有chirp并在其上运行距离FFT之后,就可以实现多普勒FFT。

第一个FFT的输出给出了每个目标的拍频、振幅和相位。当我们从一个chirp移动到另一个chirp(每行一个垃圾箱)时,由于目标的位移很小,这个相位会发生变化。一旦第二个FFT被实现,它就决定了相位的变化率,这只是多普勒频移。
在这里插入图片描述
在这里插入图片描述

距离-多普勒响应的输出代表一个轴上有距离,另一个轴上有多普勒的图像。这幅图像被称为距离多普勒图(RDM)。这些地图通常用作用户界面来理解目标的感知。
在这里插入图片描述
在这里插入图片描述

P = peaks(20);
X = repmat(P,[5 10]);
% imagesc(X)

signal = X %[1 3 5 7; 2 4 6 8; 3 5 7 9]
M = 5;
N = 10;

%signal  = reshape(signal, [M, N]);

signal_fft = fft2(signal, M, N);

signal_fft = fftshift(signal_fft);

signal_fft = abs(signal_fft);

imagesc(signal_fft);


在这里插入图片描述

  • 8
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值