IWR1443毫米波雷达------基于多普勒相偏补偿的速度解模糊/扩展,实测数据验证

本文主要是介绍IWR1443毫米波雷达------基于多普勒相偏补偿的速度解模糊/扩展,实测数据验证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、基于多普勒相偏补偿的解模糊算法核心思想
  • 二、算法步骤
  • 三、理论效果示意图
  • 四、程序编写
  • 五、实测数据结果:
    • 5.1、data1结果:
    • 5.2、data2结果:
  • 六、总结
    • 6.1、多普勒相偏补偿参考:
    • 6.2、致读者:


前言

“速度模糊”现象是指由于雷达测速范围有限,当目标速度|Vr|>|Vmax|时,测量速度Ve!=Vr的现象。
更多细节可以看这篇文章:https://zhuanlan.zhihu.com/p/486798151
本文主要是记录iwr1443毫米波雷达通过实测数据,验证基于多普勒相偏补偿的速度解模糊算法的有效性


一、基于多普勒相偏补偿的解模糊算法核心思想

首先,由于雷达测速和测角度都是基于相位差的,因此当实际速度Vr超过测速范围时,发生“相位模糊”导致了"速度模糊"。下图1所示W2>pi,发生“相位模糊”,实测得到的相位为w1=2*pi-w2。因此,目标实际速度Vr测量速度Ve雷达测速范围Vmax之间满足如下公式1所示:

在这里插入图片描述
公式(1)

在这里插入图片描述
图1:相位模糊示意图

雷达测角度时,需要考虑速度引起的相位差,根据测量速度Ve对目标角度的求解进行修正,这一过程称为“多普勒相偏补偿”。
在这种的情况下,根据可知测量多普勒补偿相位差与实际多普勒补偿相位差的关系如公式2所示:
在这里插入图片描述
公式(2)

如果测量速度Ve !=实际速度Vr,那么根据测量速度Vr进行多普勒相偏补偿的结果就是错误的;如果没有发生速度模糊:Ve=Vr,那么根据测量速度Vr进行多普勒相偏补偿的结果就是正确的。因此此算法的核心思想就是在不知道速度是否发生模糊的情况下,通过比较两个不同的角度谱的峰值大小来求解目标速度,因为如果角度补偿结果是错误的,那么相应的角度谱的峰值就会偏小。

二、算法步骤

说明:当假设速度发生模糊,那么如图1所示,实际相位应该为2kpi-w1,k为非零整数,由于不能区分2pi-w1和4pi-w1,因此此算法只能假设当速度模糊时,k=1或-1,这也就导致了此算法只能将速度范围扩展一倍。

如图2所示,是此算法的步骤:定义set1时,符号翻转的操作,对应着复数中“旋转pi”的操作,对应着公式2,但此时k只能取正负1。
在这里插入图片描述
图2:基于多普勒相偏补偿算法的步骤

`

三、理论效果示意图

图3(a)和图3(b)分别展示了两种情况下的理论结果:
在这里插入图片描述
图3(a):未发生速度模糊
在这里插入图片描述
图3(b):发生速度模糊

四、程序编写

根据图2所示的算法步骤,只需在原有的求解目标角度的基础上修改。程序有三个需要注意的点:
1.index_dop是目标速度在多普勒门中的下标,范围是-64到63(假设一帧中的脉冲数目chirp_num=128),具体细节可以参考官方关于多普勒相偏补偿的讲解。
2.符号翻转对应着复数中的“旋转pi”。
3.比较两个角度谱的峰值的相对大小,所以一定不要在music算法内将角度谱归一化
核心代码块如下:

        snapshot=snapshot';%未经过多普勒相偏补偿的原始数据snapshot1=snapshot;%操作:多普勒相偏补偿,对应set0snapshot2=snapshot;%操作:多普勒相偏补偿+符号翻转,对应set1%分别进行操作snapshot1(5:8,:)=snapshot1(5:8,:)*exp(-1i*pi*(index_dop(n)/128));%多普勒相偏补偿snapshot2(5:8,:)=snapshot2(5:8,:)*exp(-1i*pi*(index_dop(n)/128))*exp(1i*pi);%分别利用空间谱估计算法(FFT或者MUSIC算法)求解角度谱%注意由于要比较两个角度谱的峰值的相对大小,所以一定不要在music算法内将角度谱归一化[azimuth1(n),P1] = Music(snapshot1,chirps_num,1);%P1:set0[azimuth2(n),P2] = Music(snapshot2,chirps_num,1);%P2:set1plot(P1,'b-.');hold  on%叠加,比较set0和set1plot(P2,'r--');xlabel('方位角/度')ylabel('幅度')title('基于多普勒补偿的速度扩展示意图(Vr>V_max)')legend({'set0','set1'})

全部代码和数据放在如下网盘中,可自取:链接:https://pan.baidu.com/s/1fhAVXiAIDKM_nPshWbvJEw?pwd=HUST
提取码:HUST

五、实测数据结果:

5.1、data1结果:

data1.bin文件是人体走动跟踪的数据,因此全程不会发生速度模糊Vr<Vmax,此时理论上如图3(a)所示:set0>set1。
在这里插入图片描述
图4(a):未发生速度模糊
在这里插入图片描述图4(b):未发生速度模糊

5.2、data2结果:

data2.bin文件是向上抛物并下落的数据,因此全程在自由落体时发生速度模糊Vr>Vmax,此时理论上发生速度模糊时如图3(b)所示:set0<set1。当然,此过程中当物体上升过程中,速度没有发生模糊(70帧)。
在这里插入图片描述
图5(a):发生速度模糊
在这里插入图片描述
图5(b):未发生速度模糊

六、总结

6.1、多普勒相偏补偿参考:

关于多普勒相偏补偿,请参考官方SDK中的说明文档“Millimeter Wave (mmw) Demo for XWR14XX”

6.2、致读者:

更多结果和程序说明,都在代码注释中详细说明了。由于第一次写博客,所以文章的排版很差,望理解。由于本人水平有限,所以难免出现错误,请大家赐教。

这篇关于IWR1443毫米波雷达------基于多普勒相偏补偿的速度解模糊/扩展,实测数据验证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/188492

相关文章

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动