一、Fmcw毫米波雷达原理

2023-05-16

0.概念

FMCW(Frequency Modulated Continuous Wave),即调频连续波。FMCW技术和脉冲雷达技术是两种在高精度雷达测距中使用的技术。其基本原理为发射波为高频连续波,其频率随时间按照三角波规律变化。

1.基础知识

FMCW雷达的核心是一种叫做线性调频脉冲的信号,线性调频脉冲是频率随时间以线性的方式增长的正弦波,在下图中

 信号以fc的正弦波开始,然后他的频率不断增大,chirp信号的起始频率为 fc,带宽为B,信号的持续时间为Tc,则频率变化率(斜率)为:S=B/Tc

上图是简单的雷达示意图,有单个TX天线和单个RX天线,雷达工作过程大致为:1处的合成器生成一个线性调频脉冲,TX将脉冲传播出去,当脉冲遇到物体时会反射回来,RX接收反射的调频脉冲,TX和RX信号混在一起,最终在4处生成一种叫做IF(中频)的信号。下面详细了解以下关键元件4(混频器)。

混频器有两个输入一个输出,如果向混频器的两个输入端口输入两个正弦波,那么混频器将输出有以下两条性质的正弦波:

性质1:输出正弦波的瞬时频率等于两个输入正弦波的瞬时频率差值;

性质2:输出正弦波的起始相位等于两个输入正弦波的起始相位差值。

如上图, 被物体反射后的信号可以简单的看做是发射信号的延时,用t(时间差值)来表示,t=2d/c,接收信号与发射信号混频后的输出信号频率恒定,假设IF的频率为f,那么f=S*t=S*2d/c (S为调频连续波的斜率),其中d为物体的距离,c 为光速。对混频后的信号做FFT变换,可以得到单峰值频谱图。从上图中可以看出,为了避免产生距离判别模糊,t需要满足τ<Tc ,因此可得出系统所能探测的最远距离与Tc 有关。

2.傅里叶变换FFT(此处搬运自https://blog.csdn.net/weixin_40215443/article/details/94617053)

FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。

比如有这样一个组合信号:
S=2+3 * cos (2 * pi * 50 * t - pi * 30/180) + 1.5 * cos(2 * pi * 75* t + pi * 90/180)。

其波形图如下,杂乱无章,不利于观察和分析图像规律。
在这里插入图片描述

上面的信号波形图杂乱无章,我们可不可以将其频率进行提取了,提取各个信号分量的频率、幅值、相位。答案是可以的,那就是傅里叶变换FFT。下面直接给出结果看看效果,是不是提取出了信号分量的两个频率50Hz, 75Hz,还有它们对应的幅值3,1.5。

在这里插入图片描述

如下图,傅里叶变换可以将左侧的时域信号转换到右侧的频域中,

下面是信号被多个物体反射时的情况,

但是,当两个物体的距离足够近时,左侧会出现两条极为接近的正弦函数,在傅里叶变换后只显示一个波峰,不足以区分是否有两个物体,所以需要拓展正弦波的周期,从而拓展了IF信号的持续时间,这样就可以解析到两个峰值,也可以理解为带宽越大,距离分辨率越好。

3.距离测算

 假设两个物体之间的距离为△d,反射信号经混合后的频率间隔为△f,Tc为IF信号的持续时间,B为带宽,那么:

 

由上公式可以看出,距离分辨率仅跟信号带宽有关。

由t =2d/c,f= S*t,S= B/Tc 可以得出障碍物的距离 d 与 IF signal 信号频率 f 之间的关系式: d = f * c * Tc / (2B)。所以分析出了频率f,就可以得到距离d。雷达发射的信号能量向外发散,随着距离d的增加,能量平方倍的缩小。对发射信号强度进行增益,提高信号强度,同时发射面也更加窄。

4.速度测算

对时域信号进行傅里叶变换,不仅可以得到信号的频率特征,例如下面峰值处对应的值,还可以得到对应频率处复平面内,相应的相位角,此相位角对应于起始位置处角度。
在这里插入图片描述

那么根据上面的性质,两个信号频率相同,只是起始位置不同,傅里叶变换依然可以区分出来相位角。
在这里插入图片描述

比如某一状态,得到如下IF signal 信号:
在这里插入图片描述

在上面状态的基础上,如果物体在Δt 的时间段内,移动了一小段距离Δd,则 IF signal 信号相位发生了如下变化:
在这里插入图片描述

当物体的距离d发生微小的变化时,IF signal 信号的相位变化非常明显。而频率的变化并不显著,远远达不到在Tc时间内,区分信号的频率。例子分析如下:

在这里插入图片描述
距离d发生微小的变化,傅里叶变换后,频率无法区分开来,但是相位变化明显。
在这里插入图片描述

根据上面的相位改变公式,可以求得两个chirp之间的相位改变率公式如下。然后求出相位角变化率,就可以得到物体的速度了。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

角速度分辨率的计算

在这里插入图片描述

测速范围的计算

在这里插入图片描述

相同距离的多物体测速

在这里插入图片描述

测速分辨率的计算

在这里插入图片描述

5.2D FFT

通过这两章测距、测速的讲解,可以看出在单chirp上的FFT变换,可以求得距离range;在不同chirps间的FFT变换,可以求得速度,展示如下:
在这里插入图片描述

在这里插入图片描述
上面解决了测速的问题,多物体在同一距离,根据速度的不同,依然可以分辨处不同物体。但是当距离相同,速度也相同的不同物体,却难以分辨了。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一、Fmcw毫米波雷达原理 的相关文章

  • IIC(I2C)协议详解

    1 简介 IIC 即I C xff0c 全称 Inter Integrated Circuit xff0c 字面上的意思是集成电路之间 xff0c 它其实是I C Bus简称 xff0c 所以中文应该叫 集成电路总线 xff0c 它是一种串
  • STM32F4+FreeRTOS+LVGL实现嵌入式快速开发(缝合怪)

    极速进行项目开发 xff0c 只需要懂一款芯片架构 43 一个操作系统 43 一个GUI 各种部件程序全靠抄 xff0c 成为究极缝合怪 本文用stm32f407 43 FreeRTOS 43 lvgl演示一些demo 原文链接 xff1a
  • 彻底弄清FreeRTOS中的事件组(Event Groups)

    之前已经学过两个任务之间可以利用信号量 队列来通信 xff0c 任务可以利用这两个机制等待某一个事件发生 xff0c 但是假如需要等待多个事件发生呢 xff1f 这就需要用到事件组了 事件组可以让任务进入阻塞态 xff0c 等待一个或多个事
  • 彻底掌握FreeRTOS中的务通知(Task Notifications)

    在之前的文章中已经讲解了很多种用于任务件通信的机制 xff0c 包括队列 事件组和各种不同类型的信号量 使用这些机制都需要创建一个通信对象 事件和数据不会直接发送到接收任务或接收ISR xff0c 而是发送到通信对象 xff08 也就是发送
  • 一文彻底分清ARM架构、内核、指令集等相关概念

    任何学习嵌入式 单片机的朋友都绕不开ARM xff0c 但初学者总是对ARM架构 内核 指令集等相关概念不够清晰或者混淆 xff0c 本文帮助入门的朋友彻底弄清楚 目录 1 芯片 CPU SOC 2 ARM公司 3 ARM架构与内核 指令集
  • 三款常用IP发包工具介绍

    AntPower 版权所有 2003 技术文章 http www antpower org 第1 页共14 页 AntPower xff0d 技术文章 三款常用IP 发包工具介绍 小蚁雄心成员郎国军著 lgj 64 qingdao cngb
  • vscode查看不了函数列表(亲身经历)

    方法一 xff1a ctrl 43 shift 43 o 方法二 xff1a ctrl 43 B 查看左边的大纲 重点 xff1a 当处于受限模式时 xff0c 是查看不了的 xff0c 需要信任窗口才可以 点击管理 点击信任
  • 带你清晰了解#define和宏

    文章目录 define的简单使用 define的原理 define定义宏 define的替换规则 和 define的简单使用 语法 xff1a define name stuff 对于 define的基本语法理解起来其实并不困难 xff0c
  • 玩转Jetson Nano(三):安装Pytorch GPU版

    玩转Jetson Nano xff08 三 xff09 xff1a 安装Pytorch GPU版 前言安装Pytorch GPU版查看CUDA版本号下载Pytorch对应的wheel文件测试是否安装成功常见问题OSError libmpi
  • 可随身携带的工业无人机?! ZR-M66六旋翼多镜头倾斜摄影无人飞行系统

    更多无人机测绘资讯 xff0c 关注 三维前沿 ZR M66六旋翼多镜头倾斜摄影无人飞行系统 xff0c 集合了领先于行业内的多种设计方式 xff0c 具备模块化设计 高效作业 安全可靠 直观作业管理四大核心优势 xff0c 摆脱传统测绘作
  • PLC寻址应注意的问题

    L MD100 LAR1 与 L MD100 LAR1 有什么区别 xff1f 当将MD100以这种 MD100 形式表示时 xff0c 你既要在对MD100赋值时考虑到所赋的值是否符合存储器间接寻址双字指针的规范 xff0c 又要在使用这
  • STL简介以及STL中的容器

    我认为STL 标准模板库 就是对常见数据结构和算法的再封装 xff0c 以便开发者能更加灵活的使用数据结构和常用算法 通常认为 xff0c STL由容器 算法 迭代器 函数对象 适配器 内存分配器 这 6 部分构成 容器 简单理解容器 xf
  • 奇偶校验原理及C实现

    奇偶校验 xff0c 是通过计算数据流中比特位1的个数向原数据流后补充1bit的 0 或 1 xff0c 来检查数据流是否正确的方法 奇校验 xff08 odd parity xff09 xff1a 如果字符数据位中 1 的数目为偶数 xf
  • PHP curl发送 post GET 请求 携带请求头 并接收参数 上传\下载文件或图片

    发送post 请求 64 param sUrl 请求地址 64 param aData 请求参数 64 return bool string function http post sUrl aData ch 61 curl init cur
  • C++ 类对象的初始化顺序

    C 43 43 构造函数调用顺序 1 创建派生类的对象 xff0c 基类的构造函数优先被调用 xff08 也优先于派生类里的成员类 xff09 xff1b 2 如果类里面有成员类 xff0c 成员类的构造函数优先被调用 xff1b 也优先于

随机推荐

  • requests模块中使用代理proxy发送请求

    1 代理概述 玩爬虫为什么我们不能使用一个固定IP发送请求 你使用一个固定IP发送每秒向对方服务器发送10几个请求 对方认为这样操作不是人干的 就把你IP给封了服务器端的人可以根据你IP很快锁定你 要求你对这种窃取行为赔偿 代理 外链图片转
  • FIFO理解

    小白一枚 以下是我在学习SCI通信时 xff0c 使用到FIFO寄存器对其手册进行学习的一些经验与心得 xff0c 为了防止以后使用时忘记 xff0c 故此记录 仅供本人使用 另 xff1a 如有理解不当之处 xff0c 欢迎指正 xff0
  • 使用CMake导入第三方库

    欢迎关注微信公众号 自动驾驶事务所 获取更多知识 欢迎关注公众号 自动驾驶事务所 xff0c 分享更多以C C 43 43 为计算机语言 xff0c 以自动驾驶为方向的文章 使用CMakeLists txt 中间需要导入第三方的库当我们需要
  • 通过onvif协议接入海康、大华NVR步骤

    通过onvif协议接入海康 大华NVR步骤 https wenku baidu com view 6f1fcf37192e45361066f54b html
  • C语言的二维数组初始化的几种方式介绍(私藏大数组初始化方式)

    C语言的二维数组初始化的几种方式介绍 1 直接赋值2 循环对每个元素赋值3 借用memset memset s初始化为0或 14 96 数组所有元素初始化为相同值 xff08 用于大数组初始化贼方便 xff09 96 1 直接赋值 适合数组
  • 怎么用管理员方式打开压缩包

    今天下载了安卓的源代码 xff0c 解压时 xff0c 报了 34 Cannot create symbolic link xxx 34 34 You may need to run WinRAR as administrator 34 的
  • Android的build-tools的下载方式

    Android的build tools的多种版本的下载 1 方式一 xff1a Android Studio上的配置下载2 官网上直接下载 1 方式一 xff1a Android Studio上的配置下载 通过参数 buildToolsVe
  • Visual Studio上一些Error的解决方案

    近期在迁移一个linux上下项目到windows xff0c 编译时出来一堆error xff0c 挑了一些做记录 目录 1 E1696无法打开源文件 unistd h2 E0020 未定义标识符 34 getcwd 34 3 E0020
  • windows下怎么查看exe是32位还是64位

    xxx exe用记事本或notepad打开 xff0c 找有字符的第二行中 PE 字符串旁边 xff0c 如果是 d xff0c 则为64位 xff1b 如果是 L xff0c 则为32位
  • 无法定位程序输入点 _ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev于动态链接库

    在执行编译出来的exe时 xff0c 报了 无法定位程序输入点 ZNSt7 cxx1118basic stringstreamIcSt11char traitsIcESaIcEEC1Ev于动态链接库 的异常 出现这个问题时 xff0c 应该
  • 踩了个C++的未定义标识符"cout"的坑

    问题表现 没怎么用过C 43 43 写过完整的项目 xff0c 今天闲来无事 xff0c 便创建个c 43 43 的工程玩玩 xff0c 结果一个简单的打印输出就给卡住了 xff0c 无法打开文件 iostream h xff0c cout
  • Electron-Vue之安装流程

    近期摒弃了熟悉的WPF xff0c 选用了新的一套工具 xff08 Electron Vue xff09 来开发桌面软件 xff08 我是连html都没用过的猿 xff0c no zuo no die xff09 接触新的东西 xff0c
  • vscode的调试配置

    文章目录 vscode的调试配置文件调试配置选项 vscode的调试配置文件 vscode的调试配置存储在 vscode文件夹的launch json文件中 通过以下步骤可以创建一个调试配置 xff1a 切换到调试视图单击create a
  • C/C++实现strcpy和strcat两个功能

    strcpy和strcat是string h头文件中分别实现字符串数组拷贝与拼接功能的函数 xff0c 详细使用相信大家都了解了 xff0c 如果还不了解看看实例 C C 43 43 笔试必须熟悉掌握的头文件系列 xff08 四 xff09
  • C/C++锁机制(boost)的认知和使用

    锁扩充 加锁的必需考虑三个问题 该锁的不锁 xff0c 将会导致各种莫名其妙的错误 xff1b 加锁范围太大 xff0c 虽然能避免逻辑错误 xff0c 但如果锁了不该锁的东西 xff0c 难免会降低程序的效率 xff1b 加锁方式不合适
  • QT之GPS

    http blog sina com cn s blog 7da13b510100xtgr html 前几天发现手里还闲着一块GPS 佳明的15W 也不知道是好的还是坏的呵呵一时兴起我就趁周六日没什么事情 用qt做了一个界面 现在已经调试完
  • 关于tcp/udp网络调试助手错误提示

    最近在学习网络调试助手与虚拟机中的Ubuntu系统通信 xff0c 在使用Ubuntu做服务器端时 xff0c tcp以及udp协议都遇到了问题 1 tcp协议遇到的问题是 xff1a 网络调试助手提示 xff1a 1035未知错误 xff
  • 结构体和结构体链表

    在c语言表针中有多种数据类型 xff0c 他们的应用使变量的应用变得灵活多变 而除了c语言默认的int xff0c float 等类型外 xff0c 我们还可以自己定义一些数据的类型 xff0c 结构体类型便是可以实现数据类型自定义的类型
  • 串口通信UART

    串口基本概念 串口通讯 Serial Communication 是指外设和计算机间 xff0c 通过数据信号线 地线等 xff0c 按位进行传输数据的一种通讯方式 其通讯协议可分层为协议层和物理层 物理层规定通信协议中具有机械 电子功能的
  • 一、Fmcw毫米波雷达原理

    0 概念 FMCW Frequency Modulated Continuous Wave xff0c 即调频连续波 FMCW技术和脉冲雷达技术是两种在高精度雷达测距中使用的技术 其基本原理为发射波为高频连续波 xff0c 其频率随时间按照