您的位置:

FMCW雷达测距原理详解

一、FMCW雷达概述

FMCW雷达(Frequency Modulated Continuous Wave Radar)又称频率调制连续波雷达,是一种基于载频频率调制连续波的雷达系统。FMCW雷达可以获取目标的距离、速度、角度等信息,适用于航空、海洋、地面等各种应用领域,具有全天候、多目标、高精度等特点。

二、FMCW雷达工作原理

FMCW雷达测距原理是基于电磁波在时域和频域上的反射及其延迟时间差的计算。如下图所示,FMCW雷达系统由一个连续的基频信号和一个扫频信号组成。这两个信号被混频器组合后发送出去,经过不同介质物质后被反射回来。反射回来的信号和发射信号再次混频,通过信号处理后得到目标反射信号的相位、幅度、频率等信息。

*FMCW雷达工作原理图*


// FMCW雷达信号生成代码,FS为扫频信号频率,T为扫频时间,F0为基频信号频率
t = (0:N-1)*Ts;  // 采样时间
chirp = exp(1j*(2*np.pi*(F0*t + FS*t.*t/(2*T))/Fs*t));  // 信号生成

三、FMCW雷达测距原理

1、时延测距

时延测距是FMCW雷达最基本的测量原理之一,根据发射信号与接收信号之间的时间差计算目标到雷达的距离。

发射信号和接收信号之间的时间差Δt可以通过计算信号的频率移动量Δf来得到,其中Δf与Δt呈线性关系。因此可以通过对接收到的信号进行FFT变换来得到频率移动量Δf的值,从而根据Δt来计算距离。


// 时延测距代码,chirp为发射信号,rx为接收信号,Fs为采样率
f = np.arange(-Fs/2,Fs/2,Fs/N)  // 构造频域坐标轴
rx_chirp = rx*chirp  // 矩阵相乘
Rx = abs(np.fft.fftshift(np.fft.fft(rx_chirp)))  // 进行FFT变换
delta_f = f[np.argmax(Rx)]  // 找到最大值处的频率移动量
delta_t = delta_f*T/FS  // 计算时间差
d = delta_t*C/2  // 计算目标距离

2、速度测量

速度测量是在FMCW雷达的反射信号中观察频率移动的变化,从而得到目标在径向方向上的速度信息。

假设目标沿径向运动,其速度为v,则目标反射波的频率移动量Δf与目标速度v粘连关系。因此,可以通过对接收到的信号进行FFT变换得到频谱信息,然后通过比较不同时间的频谱信息来计算目标速度的变化。


// 速度测量代码,chirp为发射信号,rx为接收信号,Fs为采样率
Rx = np.zeros((N,N))  // 初始化二维矩阵
for i in range(N):
    window = np.hamming(N-i)  // 窗口函数
    rxi = rx[i:]  // 截取对应的接收信号
    chirpi = chirp[:N-i]  // 截取对应的发射信号
    conv = rxi*chirpi*window  // 加窗后的矩阵相乘
    RX[i] = np.fft.fftshift(np.abs(np.fft.fft(conv)))  // 得到频域矩阵
fm = np.max(RX,axis=1)  // 取每一行的最大值
velocity = c*np.arange(-(N-1)/2,(N-1)/2)/2/T/N/fm/2  // 计算5米范围内速度

四、FMCW雷达的应用

FMCW雷达可以应用于多个领域,包括测量、安全、导航、通信等,如:

  • 测距:通过反射信号的时间差来计算目标距离,适用于测量车辆、船只、机器人等的距离、速度等信息。
  • 电子围栏:利用FMCW雷达的高精度、高可靠性,可以应用于围栏系统的设置与监控,对于进入围栏内的目标进行即时响应。
  • 自动驾驶:通过FMCW雷达可以获得一定范围内的实时障碍物距离及其速度信息,适用于自动驾驶车辆的避障功能。
  • 智能家居:可以实时检测家居的人体位置,以便触发相应设备的操作,如警报、门锁、电灯等。