【自动驾驶|毫米波雷达】逻辑化讲清快时间与慢时间傅里叶变换

碎碎念: 实习过程中发现在进行雷达知识交流时,大部分同事都会用英文简称代替中文的一些称呼,比如Chirp、FFT等等。起初我觉得是因为很多英伟达、TI芯片的开发教程都是英文的,所以看得多了大家都习惯这样称呼,后来在和指导我的前辈交流时发现是因为国内对于一个步骤都有很多称呼,比如说我们接下来讲的快时间傅里叶变换又称为距离维傅里叶变换慢时间傅里叶变换又称为速度维傅里叶变换 ,但他们的英文专有名称只有一个,分别是Range FFTDoppler FFT。用英文称呼的原因更是为了精确性,也不用让大家记那么多名词。同时前辈也告诫我在学习时候不要怕麻烦,要把每一个缩写的全程都要标注好记忆好,才能对于系统更加熟悉。

引入

毫米波雷达系列文章中我们一再强调的是时刻关注我们的"目录",也就是我们的框架,那我们来看一下快时间与慢时间傅里叶变化在雷达处理流程的哪一步:
毫米波雷达工作流程图

图中可以发现快时间傅里叶变换(又称距离FFT,Range FFT) 在ADC采样结束后,毫米波雷达进一步讲快时间傅里叶变换后的数据进行慢时间傅里叶变换(又称二维FFT,Doppler FFT)

那我们需要来想象一下ADC采样后的数据是什么样的呢?

信号通过ADC采样后会得到一个由chirp采样点、采样个数以及通道/天线数组成的三维数据块(Radar Data Cube)。得到的数据仍然是离散的时域信号点,我们需要通过傅里叶变换求得频谱图,从而求得目标的距离信息以及速度信息。

ADC采样后的Radar Data Cube

原理推导

这里会先推导RFFT与DFFT共性的原理,在各自的部分会进行进一步推导:

天线发射信号与接收信号进行混频滤波后,可以表示为:

其中K代表FM调制常数(也就是时频图的斜率),代表差频(即IF信号的频率),n代表采样点,代表单个chirp中的采样率,代表单个chirp周期。根据:

可以将采样后的信号表示为:

此时的信号中含有参数时间差及差频,故可进一步通过傅里叶变换求解这两个参数。

快时间傅里叶变换(Range FFT)

我们认为在一个chirp周期中,由于电磁波的速度极快的特性,所以时间是非常短的,也就是时间很"快"。同时也可以将目标对象在快时间内的移动近似没有,所以在快时间维度来看,目标物体几乎"静止",以快时间为时域的时间维度对信号进行傅里叶变换,其距离也就非常容易测量。

在进行快时间傅里叶变换时,将慢时间看作常数,即仅仅做一个chirp周期内的傅里叶变换(对应于radar cube中的每一行 做FFT),即可求得时间差 ,根据:

即可求得对应物体的距离R。

慢时间傅里叶变换(又称二维FFT,Doppler FFT)

相对于一个chirp周期的时间,不同chirp之间的间隔时长就会相对更"长",也就是时间会相对更"慢",以慢时间为时域的时间维度,结合快时间的傅里叶变换我们就可以计算出目标的速度信息。

在进行慢时间傅里叶变换时,将快时间看作常数,以每个chirp间隔作为时间轴进行进行傅里叶变换(对应于radar cube中的每一列再做FFT),对应频谱图中的最高点即为差频fd,根据:

即可求得目标物体的速度信息v。

两次FFT后的图像(左)

相关推荐
vocal16 分钟前
谷歌第七版Prompt Engineering—第一部分
人工智能
MonkeyKing_sunyuhua17 分钟前
5.6 Microsoft Semantic Kernel:专注于将LLM集成到现有应用中的框架
人工智能·microsoft·agent
arbboter25 分钟前
【AI插件开发】Notepad++ AI插件开发1.0发布和使用说明
人工智能·大模型·notepad++·ai助手·ai插件·aicoder·notepad++插件开发
IT_Octopus37 分钟前
AI工程pytorch小白TorchServe部署模型服务
人工智能·pytorch·python
果冻人工智能42 分钟前
AI军备竞赛:我们是不是正在造一个无法控制的神?
人工智能
暴龙胡乱写博客1 小时前
OpenCV---图像预处理(四)
人工智能·opencv·计算机视觉
程序员辣条1 小时前
深度测评 RAG 应用评估框架:指标最全面的 RAGas
人工智能·程序员
curdcv_po1 小时前
字节跳动Trae:一款革命性的免费AI编程工具完全评测
人工智能·trae
程序员辣条1 小时前
为什么需要提示词工程?什么是提示词工程(prompt engineering)?为什么需要提示词工程?收藏我这一篇就够了!
人工智能·程序员·产品经理
孔令飞1 小时前
Go:终于有了处理未定义字段的实用方案
人工智能·云原生·go