毫米波雷达图解算法原理(基于TI雷达)

前言

原始数据bin文件包可以由结束语下第一个链接获取

由于网上可以找到很多毫米波雷达处理的流程都是基于抽象原理讲解。所以本文章将会基于实际例子进行数据转换的说明。
小编也是刚入门毫米波雷达,如若有讲解不对的地方还请指出。
在未来的几个月里,小编将会把此次处理过程制作成为动画发布,届时将把链接附上,所以文章中如有不对的地方还请大神帮助指出。
11.17日笔记:(小编太懒了,就先不出动画了)
本篇文章基于TI AWR1642雷达生成的.bin文件数据进行说明,同样适用于其他TI系列雷达。



基础

我们将对毫米波雷达的基本参数进行说明,在后续的使用中将会涉及到它们:
(以下名词前4个由下包含至上的结构进行排列,5、6为硬件基础)

  1. IQ正交采样 复数形式,采样方式决定基本单位大小,正交采样为32bit即4个字节(实数16bit,2个字节,虚数16bit,2个字节)(所以读取第xx帧的时候要多乘个2);
  2. 采样点数 sampls ,每次脉冲的采样点数;
  3. 脉冲 chirps 每次脉冲即是一次发射,雷达需要发射n次脉冲以达到1帧;
  4. 帧数 每帧包含n次脉冲。
  5. 发射天线 TX发射天线数量;
  6. 接收天线 RX 接收天线数量;

此次文件设定采样的参数:
4字节 IQ正交采样(即实部+虚部)
256 sampls 采样点数
128 chirps 脉冲数
1 TX 发射天线
4 RX 接收天线

bin文件解读

1642SRR2m.bin文件为采样回读的文件,大小为125 MB (131,072,000 字节)。
其包含了250帧数据。
1帧解析:4字节x256samplsx128chirpsx4RXx1TX=524288字节
即524288*250=131,072,000字节


读取出的结构(实际是根据操作过程猜测的数据)(各个厂商的传输结构不大一样,比如NXP的S32R45就是每个通道16个采样点连续排列):
实数1
实数2
虚数1
虚数2
实数3
实数4
虚数3
虚数4


将bin文件读入到matlab中可以看到一共存在65536000行数据
将bin文件读入到matlab中可以看到一共存在65536000行数据
1帧:524288字节(由于实数虚数的长度为16bit而不是8bit,所以每行数据的单位是16bit而不是8bit)
1帧:262144行



以下我们取1帧进行操作:

在读取出bin原始数据后和对其进行计算前需要将其转换成合适的矩阵格式以方便计算。

对数据矩阵进行操作前的转换——

由 262144行1列数据经过实数虚数结合后:
变为 1行131072列数据:
在这里插入图片描述


对数据进行矩阵排列,变为:chirps/TX行,samples·RX·TX列:


再变换为以发送通道作为行数的阵列(RX*TX):


最终变换(三维数组,samples行*chirp列):



开始计算结果矩阵

排列好的数据需要经过一维FFT(距离维FFT)二维FFT(速度维FFT),以及角度维FFT计算。
FFT:快速傅里叶变换

下面将以matlab语言进行展示程序

一维FFT(距离)

可以理解为对每组chirp进行FFT(个人理解):
N为FFT点数,取N=sampls。
在这里插入图片描述

二维FFT(速度)

可以理解为对每组sampls进行FFT(个人理解):
N为FFT点数,取N=chirp。
fft_shift:将零频点移动到频谱中央(因为速度存在正负)
在这里插入图片描述

角度维FFT

可以理解为对每组RX*TX通道进行FFT(个人理解):
N为FFT点数,取N=180。
fft_shift:将零频点移动到频谱中央(因为角度存在正负)
在这里插入图片描述



(假设利用结果已经获取目标)对目标进行计算,得出距离速度角度信息

已知获得的目标位置[row,col,pag](可以利用峰值计算单个目标,可以利用CFAR计算多个目标)

以下参数为用户雷达设定的参数,全部已知(部分参数请参 照参考文章1 代码部分)
fb = ((row-1) × fs)/N; %差拍频率 fs:采样率/N:一维FFT点数
fd = (col-M/2-1)/(M × Tc); %多普勒频率 M:二维FFT点数/Tc:chirp总周期
fw = (pag-Q/2-1)/Q; %空间频率 Q:角度FFT点数
R = c × (fb-fd)/2/K; %距离公式 ****
v = lambda × fd/2; %速度公式 lambda:波长
theta = asin(fw × lambda/d); %角度公式 d:天线阵列间距
angle = theta × 180/pi;
得出:
目标距离:R m
目标速度:v m/s
目标角度:angle °

结束

参考文章:
1.回波3DFFT处理(测距、测速、测角):
此博主包含原始bin文件,需要用网盘下载。请支持博主一下
2.调皮连续波:TI毫米波雷达IWR6843ISK室内人员检测算法(附MATLAB程序和数据)
此博主有公众号,大家可以关注。

如有不对之处还请大家帮忙指正
1.11.17-感谢某位研究生纠正前方TX/RX搞反的情况。
2.11.18-之前一维二维FFT的对象搞反了,这里请注意冒号的用法。
3.7.17-感谢“南瓜菜粥”指正的角度维FFT应使用速度维结果。

本文以车载防撞雷达为研究背景,针对毫米波雷达多目标检测和参数估计算法中的一些关键技术展开研究,并设计了一种低复杂度的毫米波车载雷达信号处理模块,应用于24GHz汽车前防撞雷达系统。首先,阐述了毫米波雷达的研究背景及意义,介绍国内外研究现状,主要包括产品级研究进展和毫米波雷达关键技术研究进展,对不同体制连续波雷达测距测速原理进行了详细推导,为后续研究和仿真提供了理论基础。其次,研究了毫米波线性调频连续波(Linear Frequency Modulated Continuous Wave,LFMCW)雷达中的多目标配对和速度解模糊算法。首先,针对现有变周期三角波LFMCW雷达利用容差函数进行多目标配对方法在目标数较多时算法复杂度较高的缺点,提出一种利用先验信息压缩频率配对空间的多步配对算法,降低配对复杂度。然后,针对现有锯齿波LFMCW雷达多重脉冲重复频率(Pulse Recurrence Frequency,PRF)解速度模糊算法复杂度高、鲁棒性差等缺点,提出一种改进算法,该算法根据模糊速度计算可能的速度值,得到对应的慢时间维离散傅里叶变换(Discrete Fourier Transform,DFT)因子及其频谱幅度值,最大频谱幅度值对应的速度值即为不模糊速度,极大降低了解模糊算法复杂度。然后,研究了恒虚警概率(Constant False Alarm Rate,CFAR)检测算法。在分析恒虚警概率检测目标遮蔽和自遮蔽效应形成原因的基础上,提出了一种能够自适应改变噪声电平估计样本的改进CFAR算法,该算法在CFAR检测过程中加入一个反馈操作,当某一频谱单元存在目标时,用估计得到的噪声功率电平代替该频谱单元值,减小对后续频谱单元噪声功率电平估计的影响,从而减小目标遮蔽与自遮蔽效应。针对二维CFAR算法,根据雷达速度计算不同距离单元的静止杂波所处的速度单元,将二维平面划分为噪声区与杂波区,对不同区域采用不同的CFAR准则进行检测,在保证虚警概率的前提下提高目标检测概率。最后,针对变周期三角波车载防撞雷达帧结构层次不清,实用性差的问题,提出一种多层次、低复杂度的帧结构及其设计方法,以采样间隔为最小时间单位更有利于系统同步,采用固定长度的子时隙和时隙时间使帧结构更加简单,降低硬件实现成本。利用现有系统硬件结构进行虚拟阵列的设计,通过调整发射天线间距并采用时间分集方式形成具有更大孔径的虚拟接收阵列,获得更高的波束成形增益。在此基础上,设计一种低复杂度的信号处理模块,该模块由信号预处理、波束成形、CFAR检测和多目标配对等子模块组成,并在ADSP-BF707平台上进行实现,应用于24GHz汽车前防撞雷达系统。实测结果显示,该模块算法能够实现目标检测与参数估计功能。
### 毫米波雷达连续波测距原理 毫米波雷达通过发射和接收电磁波来测量目标的距离。对于连续波(CW)类型的毫米波雷达,其工作模式不同于脉冲雷达,而是持续不断地发射射频信号[^1]。 #### 频率调制连续波(FMCW) 一种常见的连续波形式是频率调制连续波(Frequency Modulated Continuous Wave, FMCW),这种技术利用线性调频的正弦波作为载波,在一定时间内逐渐改变发射信号的频率形成斜坡状的频率变化曲线。当遇到目标时,回波会携带有关目标位置的信息返回到接收端。由于传输时间极短,直接计算飞行时间变得困难;因此FMCW方法基于多普勒效应以及发射与接收到的信号之间的频率差来进行距离测定。 具体来说: - 发射机发出具有特定带宽(例如76 GHz 到 81 GHz之间)的线性调频信号; - 接收器同时记录下当前时刻t处的实际接收频率f_r(t)=f_t(t−τ)+Δf_doppler ,其中f_t表示瞬时发射频率而 Δf_doppler代表由相对运动引起的多普勒频移; - 对于固定不动的对象而言,可以通过比较两个不同时间段内的上下扫频周期所对应的拍频差异δf 来求解出该对象离天线的真实物理间距R= c * τ / 2 = (c/2)*(δf/B) 这里B指的是整个扫描过程中总的频率跨度大小(c为光速常量约等于3×10^8 m/s )。 ```python def calculate_distance(delta_f, bandwidth): """ 计算基于FMCW原理下的目标距离 参数: delta_f : float 上升沿和下降沿两次观测所得的频偏之差(单位Hz) bandwidth : float 所使用的总带宽宽度(单位Hz) 返回值: distance : float 目标实际距离(单位meters) """ speed_of_light = 3e8 # 光速(m/s) return (speed_of_light / 2) * (delta_f / bandwidth) # 示例参数设置 example_delta_f = 500_000 # 假设得到的频偏差值(Hz) example_bandwidth = 4e9 # 使用4GHz宽带进行探测 print(f"Distance to object is {calculate_distance(example_delta_f, example_bandwidth):.2f} meters.") ```
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值