FMCW-距离估计

2023-05-16

距离估计

FMCW雷达工作原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QIyLzDMt-1607239367980)(./pic/FMCW框图.png)]

如上图所示,圈1是一个信号产生器,用于产生一个线性调频脉冲信号(频率随时间义线性方式增长的正弦波),经圈2发射天线发送出去,并且和圈3接收到的回波信号与圈4处进行混频,得到咱们想要的中频信号。

推导如下:

假设信号起始频率位 f 0 f_0 f0,带宽为 B B B,斜率为 S = B T c S = \frac B{T_c} S=TcB

发射信号的频率可以表示为 f = f 0 + S ∗ t f = f_0 + S*t f=f0+St

因此相位可以表示为 ϕ = f 0 ∗ t + 1 2 S t 2 \phi = f_0*t + \frac{1}{2}St^2 ϕ=f0t+21St2(相位的导数等于频率)

雷达发射信号可用复信号表示为 e j 2 π ( f 0 t + 1 2 S t 2 + ϕ 0 ) e^{j2\pi(f_0t+\frac{1}{2}St^2+\phi_0)} ej2π(f0t+21St2+ϕ0)

信号时域和频域如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Owg7X9W5-1607239367982)(./pic/FMCW信号.jpg)]

设静止目标距离雷达距离为 R R R,电磁波传输的速度为 C C C,则接收信号的时延是 τ = 2 ∗ R C \tau = \frac{2*R}{C} τ=C2R

通过发射信号的表达式可得接收信号表达式为 e j 2 π ( f 0 ∗ ( t − τ ) + 1 2 S ∗ ( t − τ ) 2 + ϕ 0 ) e^{j2\pi(f_0*(t-\tau)+\frac{1}{2}S*(t-\tau)^2+\phi_0)} ej2π(f0(tτ)+21S(tτ)2+ϕ0)

由FMCW框图中可知雷达的发射信号与接收信号会进行混频得到一个中频信号,针对单个静止目标可知中频信号是一个单频信号,表达式为 e j 2 π ( S ∗ 2 R C ) ∗ t e^{j2\pi(S*\frac{2R}{C})*t} ej2π(SC2R)t

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4YltChLT-1607239367984)(./pic/单目标回波信号.jpg)]

如果是运动的目标,假设目标初始时刻位于 R 0 R_0 R0处,且以速度 v v v远离雷达而去,则 t t t时刻目标离雷达距离为 R = R 0 + v ∗ t R = R_0 + v*t R=R0+vt,则接收信号的时延是 τ = 2 ∗ ( R 0 + v ∗ t ) C \tau = \frac{2*(R_0 + v*t)}{C} τ=C2(R0+vt)

则接收信号表达式为 e j 2 π [ f 0 ∗ ( t − 2 ∗ ( R 0 + v ∗ t ) C ) + 1 2 S ∗ ( t − 2 ∗ ( R 0 + v ∗ t ) C ) 2 + ϕ 0 ] e^{j2\pi[f_0*(t-\frac{2*(R_0 + v*t)}{C})+\frac{1}{2}S*(t-\frac{2*(R_0 + v*t)}{C})^2+\phi_0]} ej2π[f0(tC2(R0+vt))+21S(tC2(R0+vt))2+ϕ0]

中频信号表达式为 S I F = e j 2 π ( f 0 ∗ τ − 1 2 ∗ S ∗ τ 2 + S ∗ t ∗ τ ) = e j 2 π ( f 0 ∗ 2 ∗ ( R 0 + v ∗ t ) C − 1 2 ∗ S ∗ 2 ∗ ( R 0 + v ∗ t ) C 2 + S ∗ t ∗ 2 ∗ ( R 0 + v ∗ t ) C ) S_{IF} = e^{j2\pi(f_0*\tau - \frac{1}{2}*S*\tau^2 + S*t*\tau)} = e^{j2\pi(f_0*\frac{2*(R_0 + v*t)}{C} - \frac{1}{2}*S*\frac{2*(R_0 + v*t)}{C}^2 + S*t*\frac{2*(R_0 + v*t)}{C})} SIF=ej2π(f0τ21Sτ2+Stτ)=ej2π(f0C2(R0+vt)21SC2(R0+vt)2+StC2(R0+vt))
由上诉表达式可以看到此时中频信号仍然是一个频率随时间变化的脉冲。但是由于处理时间极短(通常只有us级别,可以忽略t的高此项),最后可以等下列表达式

S I F ≈ e j 2 π ( 2 v f 0 t + 2 S R 0 t + 2 R 0 f 0 C ) S_{IF} \approx e^{j2\pi(\frac{2vf_0t+2SR_0t+2R_0f_0}{C})} SIFej2π(C2vf0t+2SR0t+2R0f0)

上述表达式就是一个单频信号了,与静止目标不同的地方是,此单频信号中同时含有目标速度和距离信息,通过FFT无法直接准确测量出目标的距离信息。次现象叫做“速度与距离的耦合”。

上述表达式中常数项 2 R 0 f 0 C \frac{2R_0f_0}{C} C2R0f0包含次脉冲信号发射时目标的起始位置,通过连续发射多个脉冲,测量脉冲间的初始相位差,就可以用来测速。

距离测量

目标距离检测基本原理

假设中频信号是一个单频信号(针对单个静止目标),距离为 R = C ∗ f I F 2 ∗ S R = \frac{C*f_{IF}}{2*S} R=2SCfIF。推导如下

假设中频信号是一个单频信号(针对单个静止目标),则其中频信号表达式为 f I F = e j 2 π ∗ ( S ∗ 2 ∗ R C ) ∗ t f_{IF} = e^{j2\pi*(S*\frac{2*R}{C})*t} fIF=ej2π(SC2R)t

通过FFT计算可得中频信号频率为 f I F = 2 ∗ S ∗ R C f_{IF} = \frac{2*S*R}{C} fIF=C2SR

从而求得距离表达式为 R = C ∗ f I F 2 ∗ S R = \frac{C*f_{IF}}{2*S} R=2SCfIF

对于多个目标的情况可以由单个目标情况很自然的得出,在不同距离上均有一个静止目标,他们都会对雷达信号进行反射,这是中频信号接收到的信号是由多个单频信号叠加而来,可以通过FFT轻松的得到多个单频信号,每个单频信号都对应着一个目标的距离,且距离与频率是成正比的,即频率越大,距离越远。

距离分辨率

距离分辨率表达式为 Δ R > C 2 ∗ B \Delta R >\frac{C}{2*B} ΔR>2BC。推导如下

由于目标距离是通过中频信号频谱计算而来的,那么FFT的分辨率将影响中频信号频谱的分辨率,从而影响距离分辨率。

已知,若信号观察时间为 T T T,那么FFT运算之后的频率分辨率为 1 T \frac{1}{T} T1

设两目标距离 Δ R \Delta R ΔR,那么中频信号频率差为 Δ f I F = 2 ∗ S ∗ Δ R c > 1 T \Delta f_{IF} = \frac{2*S*\Delta R}{c} > \frac{1}{T} ΔfIF=c2SΔR>T1

S = B T S = \frac{B}{T} S=TB带入计算可得 Δ R > C 2 ∗ B \Delta R > \frac{C}{2*B} ΔR>2BC

可见雷达对目标距离的分辨率是由发射信号的带宽决定的,增加带宽,将会获得更好的距离分辨率。但是增加了带宽,会导致中频信号提高,需要更高的ADC采样率才能完成采样。

思考

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6a4X5diy-1607239367987)(./pic/Q1.png)]

对于上述图片,Chirp A 和 Chirp B 具有相同的带宽,Chirp A的脉冲持续时间是Chirp B的两倍。

  • 由于距离相同的带宽,根据距离分辨率公式 Δ R = C 2 B \Delta R = \frac{C}{2B} ΔR=2BC,所以Chirp A 和Chirp B具有相同的距离分辨率。

  • 在测量相同距离 d M a x d_{Max} dMax的情况下,Chirp A 的采样率可以是Chirp B 的一半。Chirp B具有仅需要一半测量时间的优势

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

FMCW-距离估计 的相关文章

  • uC/OS-II 一些细节问题

    最高和最低优先级的任务最好不要使用 xff0c 而用户使用的任务多达56个 xff0c 0表示最高优先级 建立任务的函数有两个 OSTaskCreate OSTaskCreateExt xff08 可设置更多任务细节 xff09 OSSta
  • CubeMX配置FreeRTOS

    01 说在前面 RTOS为了提高任务调度效率一般都包含汇编程序 xff0c 因此移植起来需要一些汇编知识 xff0c 就算网上肯定有移植教程 xff0c 初次搞起来还是挺费劲的 初学时对RTOS代码不熟悉 xff0c 一开始就打击了积极性可
  • 云台控制协议VISCA、PELCO-D、PELCO-P

    1 VISCA部分协议命令 控制 命令 格式 备注 预置点 清除预置点 8X 01 04 3F 00 ZZ FF X 61 1 7 8是广播码 xff0c 下同 xff1b ZZ 61 00 3F xff0c 共64个预置点 设预置点 8X
  • lpms-ig1 IMU使用

    1 xff09 打开网址 https bitbucket org lpresearch lpmsig1opensourcelib 实现1 2 3块编译 2 xff09 给串口 ttyUSB0 赋予权限sudo chmod 777 dev t
  • Vitis AI1.1 系列教程1 - 软件安装

    这里写自定义目录标题 我的安装环境 安装过程在VMware中安装ubuntu 16 04安装Vitis AI几个常见的docker指令 我的安装环境 windows 10VMware 15 5Vitis AI 1 1ubuntu 16 04
  • PX4/Pixhawk - 编译环境搭建

    最近在学习px4的二次开发 xff0c 发现网上的环境搭建教程五花八门 xff0c 大多复杂 xff0c 重重踩坑之后 xff0c 发现还是官方的教程好使 xff0c 总结如下 xff1a 环境准备 采用vmware虚拟机搭建环境系统是ub
  • PX4/Pixhawk 教程 - 任务线程 - workqueue 和 task

    介绍 一个完整的px4的应用程序 xff08 或者叫任务 xff09 分为前台部分和后台部分 xff0c 前台部分是跑在shell任务中的 xff0c 比如helloworld那个程序就只有前台部分 xff0c 敲入指令即可在ssh中运行
  • PX4/Pixhawk 教程 - 可视化参数配置和自启动 - param

    px4常见的设置模块自启动的方式有两种 xff0c 一种是在rx xxx文件中添加需要启动的项 xff0c 另一种是通过yaml参数配置文件 通过添加系统启动项 通过修改系统的启动项实现模块的自启动 xff1a 在px4 ROMFS px4
  • PX4/Pixhawk 教程 - uavcan v1 - libcanard传输层最简例子

    介绍 上一篇主要是介绍libcanard的基础知识和函数 xff0c 比较偏理论一点 xff0c 这一篇呢主要注重于实践 主要解决以下问题 xff1a xff08 1 xff09 如何把uavcan v1编译到default标签 xff08
  • 如何把git的submoudule变为本仓库依赖

    介绍 一些著名的开源项目往往运用了大量的其他submodule xff0c 但是对于嵌入式开发 xff0c 我们希望可以维护一个稳定的完整的仓库 xff0c 因此需要把submodule的外部依赖改成本仓库依赖 步骤 删掉仓库根目录下的 g
  • qgroundcontrol编译环境搭建

    qgc编译环境搭建和编译 qt安装 从官网下载安装程序 http www qt io download open source 给安装程序授权 span class token function chmod span 43 x qt uni
  • STM32F4教程从零开始0——从官网获取固件库

    从大二到现在玩stm32也有两年了 xff0c 估计以后用stm32 的机会不多了 xff0c 所以打算写一系列的教程来纪念一下陪我走过大学时光 xff0c 成为我的科技竞赛重要利器的STM32F4 这系列的教程将用stm32F407VGT
  • STM32F4教程从零开始1——建工程

    今天 xff0c 新买的机械到手 xff0c 很开心 xff0c 用得很爽 xff0c 所以决定再写一篇 xff0c 话说这是我第一次买机械键盘 xff0c 我现在也支持程序员可以没有一个好的电脑 xff0c 但必须有一个好的键盘的说法了
  • '\0'就是 字符串结束标志

    39 0 39 就是 字符串结束标志 比如说 xff0c 把一个字符串赋值给数组 xff1a u8 str1 61 34 cxjr 21ic org 34 实际上数组str1在内存中的实际存放情况为 xff1a c x j r 2 1 i
  • Git教程之局域网服务器搭建教程(Gitlab)

    Gitlab局域网服务器搭建教程 简介在ubuntu服务器上安装Gitlab安装过程登入界面常见问题Group项目push失败 xff08 403错误 xff09 如何删除项目 简介 Git是一个程序员必备的版本管理软件 xff0c 个人使

随机推荐

  • QuadrotorFly-四旋翼无人机动力学仿真环境介绍

    QuadrotorFly四旋翼无人机动力学模型 主要目的是开发一个用于无人机动力学仿真的简单易用 功能相对齐全的仿真环境 xff08 也许是水论文环境 xff09 这个仿真是基于python编写的 xff0c GPL开源 git的地址在 x
  • HTML5 APP项目展示响应式网页模板

    简介 xff1a 国外的一款APP项目展示HTML单页模板 1 该模板代码干净整洁 xff1b 2 效果相当的炫酷 xff0c 相当简洁大气高端 xff0c 模板简单 xff0c 全部已数据调用 3 网站手工DIV 43 css xff0c
  • 自动驾驶仿真工具之AirSim简介

    简介 开源 xff0c 跨平台 xff0c 支持Linux Windows PX4 xff0c 基于Unreal Engine xff0c 有Unity版本 xff08 实验版 xff09 Github链接 多种语言API xff0c 包括
  • MobaXterm 远程linux服务器图像界面打不开

    如图所示 xff0c 本人用的是 MobaXterm软件 远程连接linux系统 xff0c 但是显示图形界面的时候 这里无法显示 xff0c 报错 xff1a demo 895 Gtk WARNING 23 06 41 170 canno
  • linux+opencv 将摄像头视频通过UDP协议发送给服务器端并显示

    我这边有一块rock3a开发板 xff0c 并童工USB接口外接一个USB 海康威视高清摄像头 200万像素 首先源码编译aarch版本的opencv xff0c 之前的博客中有讲 xff0c 这里不再赘述 进入linux开发界面 xff0
  • ROS入门之Cmakelist说明

    Cmakelist http wiki ros org catkin CMakeLists txt 1 Overall Structure and Ordering Your CMakeLists txt file MUST follow
  • DELL 暗夜精灵无法进入BIOS系统

    1 1 开始菜单 设置 2 单击 更新和安全 3 单击右边列表项中的 恢复 4 单击左侧的 立即重启 xff0c 这时电脑就会立即重启 xff0c 所以单击前请保存好未保存文件 5 当电脑重启之后会进入如下界面 xff0c 单击 疑难解答
  • Simulink永磁同步电机控制仿真系列八:使用自抗扰控制(adrc)实现速度闭环以及扰动估计

    引言 最近对环路进行了一些思考 xff0c 我们知道对于永磁同步电机的电流环控制 xff0c 往往假定电流环的控制对象是电阻和电感的串联 xff0c 这样的一个系统开环响应类似于一阶惯性系统 xff0c 适合使用pi控制 xff0c 并且可
  • STM32之RTC实时时钟

    RTC实时时钟简介 STM32的RTC外设 实质是一个掉电后还继续运行的定时器 从定时器的角度来看 相对于通用定时器TIM外设 它的功能十分简单 只有计时功能 也可以触发中断 但是从掉电还能继续运行来看 它是STM32中唯一一个具有这个功能
  • VS2019 错误 MSB8066 自定义生成已退出,代码为 3

    最近使用VS2019调试一个项目 xff0c 一直遇到以下错误 xff1a 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 MSB8066 D MyItems CDMatrix Build CMakeFiles 3800edc586
  • RTOS与linux区别

    一句话解释 xff1a linux是分时系统 xff0c 不过可以通过配置内核改成实时 嵌入式Linux 系统是在原来Linux的发行版本之上进行了优化和改进的 xff0c 用于嵌入式的移动终端等设备的嵌入式Linux系统现在基本上都是实时
  • QT绘图控件QWT的安装及配置

    1 QWT库下载 解压下载的压缩包 xff0c 我们可以看到里面包含多个文件夹 有源码 有参考程序 有说明文档等等 xff0c 有时间建议把参考程序都看一下 xff0c 这样都每个控件有什么功能都很熟悉 2 QWT编译 网上介绍QWT编译有
  • QT多线程的使用(moveToThread方法)

    QT有两种实现多线程的方法 xff0c 一种是 子类化QThread xff0c 然后去重写run函数 xff0c 实现多线程 一种是 子类化QObject xff0c 然后使用moveToThread函数实现多线程 由于QT官方推荐使用第
  • 嵌入式Linux学习1——Linux常用指令1

    写在前面 xff1a Linux本系列的所有学习内容都是我在购买 正点原子Alpha Linux开发板 后 xff0c 根据官方提供的资料 整理而来 后面将不再做介绍 目录 ls xff1a 用于显示当前目录下的内容 a xff1a 显示当
  • 嵌入式Linux学习2——Linux常用指令2

    目录 touch xff1a touch命令用来创建空文件 cp xff1a cp命令用来复制文件或目录 rm xff1a rm命令用于删除一个文件或者目录 mkdir xff1a 用于创建文件夹 mv xff1a mv命令用来为文件或目录
  • 基于STM32分析栈、堆、全局区、常量区、代码区、RAM、ROM

    目录 总体介绍 栈区 xff08 stack xff09 堆区 xff08 heap xff09 全局区 xff08 静态区 xff09 bss段 data段 常量区 代码区 RAM和ROM Flash Memory的物理特性 RAM RO
  • VS2013(Visual Studio 2013)官方中文旗舰版安装激活方法

    dio 2013旗舰版 VS2013 xff08 Visual Studio 2013 xff09 官方中文旗舰版安装激活方法 1 下载后得到的是ISO文件 xff0c 直接解压缩或用虚拟光驱加载运行都可以 2 无所不藏在这里直接解压 xf
  • git服务器(gitea)安装说明

    需要用到的软件 需要用到的软件有 gitea 1 12 3 windows 4 0 amd64 exenssm exeGit 2 28 0 64 bit exe 这些软件的具体功能在后面安装的时候会提及 软件都已经放到了 软件包 文件夹中
  • 实战篇 | 基于freeRTOS的多任务事件传输demo(附代码)

    之前分享了很多关于freeRTOS的知识 xff0c 那么我们怎么在实战中去写代码呢 xff1f 本篇文章重在对基于freeRTOS的架构代码的解析 整个功能如下图 xff1a 为什么要用freeRTOS 在实际项目中 xff0c 如果程序
  • FMCW-距离估计

    距离估计 FMCW雷达工作原理 如上图所示 xff0c 圈1是一个信号产生器 xff0c 用于产生一个线性调频脉冲信号 xff08 频率随时间义线性方式增长的正弦波 xff09 xff0c 经圈2发射天线发送出去 xff0c 并且和圈3接收