回波3DFFT处理(测距、测速、测角)

这篇具有很好参考价值的文章主要介绍了回波3DFFT处理(测距、测速、测角)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文主要针对TI 毫米波雷达的测距、测速、测角的基本方法——3DFFT处理进行简单介绍,并提供MATLAB处理程序,分析3DFFT处理结果。

1、测距、测速

回波3DFFT处理(测距、测速、测角)
毫米波雷达测距主要是通过检测回波时延来计算目标距离;测速是通过检测目标运动产生的多普勒频移来计算目标速度。TI的毫米波雷达采用LFMCW(Linear Frequency Modulated Continuous Wave,线性调频连续波)信号体制,其发射信号与回波示意图如上图所示。

(1)回波信号为发射信号的时延复本,而回波时延与差拍频率成线性关系,通过差拍频率即可计算回波时延,从而计算出目标距离(注意差拍频率包含了多普勒频移,测距时需要减去多普勒频移fd)。

(2)当目标运动时,回波信号不仅仅是发射信号的时延复本,还具有一定的多普勒频移(多普勒效应)。通过提取多普勒频移fd即可计算出目标速度。
回波3DFFT处理(测距、测速、测角)

2、测角

回波3DFFT处理(测距、测速、测角)
毫米波雷达测角的原理是相位法测角,如上图所示,回波到达不同RX天线的有d*sin(theta)的波程差(d为RX天线间距,theta为回波入射角度),导致不同RX天线的回波信号具有不同的相位差,通过提取RX相位差即可计算出目标角度。

因此,目标距离、速度、角度测量的问题则转化为频率估计的问题。

3、3DFFT处理

频率估计方法有很多,工程上主要采用FFT运算。针对毫米波雷达测距、测速、测角处理,工程上可采用3DFFT处理。将回波数据排列成3维矩阵(n_samples*n_chirps *n_RX),如下图所示,3DFFT即在3个维度上做3次FFT运算。

回波3DFFT处理(测距、测速、测角)
(1)距离FFT

对回波每一个chirp作1DFFT,得到距离-脉冲图。

回波3DFFT处理(测距、测速、测角)

(2)速度FFT

对距离FFT的结果在chirp维作1DFFFT,得到距离-多普勒图。提取2DFFT的峰值即可得到目标的差拍频率和多普勒频率。

(3)角度FFT
对多个RX的2DFFT结果在天线维作1DFFT,得到距离-多普勒-方位图。
回波3DFFT处理(测距、测速、测角)

4、MATLAB程序

采集数据设备:AWR1642+DCA1000EVM,测试场景为距离2m左右的三角锥目标(强散射金属目标)。

clear all;close all;clc;
%% 雷达参数(使用mmWave Studio默认参数)
c=3.0e8;  
B=768e6;       %调频带宽
K=30e12;       %调频斜率
T=B/K;         %调频周期
Tc=160e-6;     %chirp总周期
fs=10e6;       %采样率
f0=77e9;       %初始频率
lambda=c/f0;   %雷达信号波长
d=lambda/2;    %天线阵列间距
n_samples=256; %采样点数/脉冲
N=256;         %距离向FFT点数
n_chirps=128;  %每帧脉冲数
M=128;         %多普勒向FFT点数
n_RX=4;        %RX天线通道数
Q = 180;       %角度FFT
xx = 1;        %第xx帧
%% 读取回波数据
fname='C:\ti\adc_data.bin';
fid = fopen(fname,'rb');    
%16bits,复数形式(I/Q两路),4RX,1TX,有符号16bit,小端模式
sdata = fread(fid,xx*n_samples*n_chirps*4*1*2,'int16');    
sdata = sdata((xx-1)*n_samples*n_chirps*4*1*2+1:xx*n_samples*n_chirps*4*1*2);
%% 1642+DCA1000
fileSize = size(sdata, 1);
lvds_data = zeros(1, fileSize/2);
count = 1;
for i=1:4:fileSize-5
   lvds_data(1,count) = sdata(i) + 1i*sdata(i+2); 
   lvds_data(1,count+1) = sdata(i+1)+1i*sdata(i+3); 
   count = count + 2;
end
lvds_data = reshape(lvds_data, n_samples*n_RX, n_chirps);
lvds_data = lvds_data.';
cdata = zeros(n_RX,n_chirps*n_samples);
for row = 1:n_RX
  for i = 1: n_chirps
      cdata(row,(i-1)*n_samples+1:i*n_samples) = lvds_data(i,(row-1)*n_samples+1:row*n_samples);
  end
end
fclose(fid);
data_radar_1 = reshape(cdata(1,:),n_samples,n_chirps);   %RX1
data_radar_2 = reshape(cdata(2,:),n_samples,n_chirps);   %RX2
data_radar_3 = reshape(cdata(3,:),n_samples,n_chirps);   %RX3
data_radar_4 = reshape(cdata(4,:),n_samples,n_chirps);   %RX4
data_radar=[];            
data_radar(:,:,1)=data_radar_1;     %三维雷达回波数据
data_radar(:,:,2)=data_radar_2;
data_radar(:,:,3)=data_radar_3;
data_radar(:,:,4)=data_radar_4;
%% 3维FFT处理
%距离FFT
range_win = hamming(n_samples);   %加海明窗
doppler_win = hamming(n_chirps);
range_profile = [];
for k=1:n_RX
   for m=1:n_chirps
      temp=data_radar(:,m,k).*range_win;    %加窗函数
      temp_fft=fft(temp,N);    %对每个chirp做N点FFT
      range_profile(:,m,k)=temp_fft;
   end
end
%多普勒FFT
speed_profile = [];
for k=1:n_RX
    for n=1:N
      temp=range_profile(n,:,k).*(doppler_win)';    
      temp_fft=fftshift(fft(temp,M));    %对rangeFFT结果进行M点FFT
      speed_profile(n,:,k)=temp_fft;  
    end
end
%角度FFT
angle_profile = [];
for n=1:N   %range
    for m=1:M   %chirp
      temp=speed_profile(n,m,:);    
      temp_fft=fftshift(fft(temp,Q));    %对2D FFT结果进行Q点FFT
      angle_profile(n,m,:)=temp_fft;  
    end
end
%% 绘制2维FFT处理三维视图
figure;
speed_profile_temp = reshape(speed_profile(:,:,1),N,M);   
speed_profile_Temp = speed_profile_temp';
[X,Y]=meshgrid((0:N-1)*fs*c/N/2/K,(-M/2:M/2-1)*lambda/Tc/M/2);
mesh(X,Y,(abs(speed_profile_Temp))); 
xlabel('距离(m)');ylabel('速度(m/s)');zlabel('信号幅值');
title('2维FFT处理三维视图');
xlim([0 (N-1)*fs*c/N/2/K]); ylim([(-M/2)*lambda/Tc/M/2 (M/2-1)*lambda/Tc/M/2]);
%% 计算峰值位置
angle_profile=abs(angle_profile);
peak=max(angle_profile(:));
[row,col,pag]=ind2sub(size(angle_profile),find(angle_profile==peak));
%% 计算目标距离、速度、角度
fb = ((row-1)*fs)/N;        %差拍频率
fd = (col-M/2-1)/(M*Tc);    %多普勒频率
fw = (pag-Q/2-1)/Q;         %空间频率
R = c*(fb-fd)/2/K;          %距离公式
v = lambda*fd/2;            %速度公式
theta = asin(fw*lambda/d);  %角度公式
angle = theta*180/pi;
fprintf('目标距离: %f m\n',R);
fprintf('目标速度: %f m/s\n',v);
fprintf('目标角度: %f°\n',angle);

下图为2DFFT的结果(2m的目标),x轴为距离,y轴为速度,z轴为信号强度。通过谱峰搜索找到峰值下标,即可换算成对应的距离、速度信息。谱峰搜索也即是目标检测,一般采用CFAR(Constant False Alarm Rate,恒虚警率)检测,上述程序仅计算了最大峰值的目标,可测单目标的情况。若要检测多目标的情况,需要进行CFAR检测处理。
回波3DFFT处理(测距、测速、测角)文章来源地址https://www.toymoban.com/news/detail-500338.html

到了这里,关于回波3DFFT处理(测距、测速、测角)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)

    该项目一个基于深度学习和目标跟踪算法的项目,主要用于实现视频中的目标检测和跟踪。 该项目使用了 YOLOv5目标检测算法和 DeepSORT 目标跟踪算法,以及一些辅助工具和库,可以帮助用户快速地在本地或者云端上实现视频目标检测和跟踪! 教程博客_传送门链接-------单目测

    2024年02月08日
    浏览(42)
  • 电赛MSP430F5529之超声波测距+OLED 显示(含主要代码)

    目录 前言 一、超声波介绍 二、部分代码 三、总结 哎,又双叒叕,电赛延期了,看起来像是遥遥无期,但是肯定要考虑大局,大家就继续抓紧时间学习知识,巩固自己的知识,更进一步。好了,今天主要是继承上一篇博文(OLED显示)写的,主要是写超声波测距的(US-015)

    2024年02月14日
    浏览(43)
  • 将GPU版本的torch和torchvision下载至本地进行安装,解决torch.cuda.is_available()为False的情况,本文主要解决CPU版本的torch问题。

    这是困扰我很久的问题,今天花了一点时间去研究一下为什么我的cuda和cudann安装完成了,却不能使用GPU,原因是我的torch和torchvision是cpu版本的,必须下载GPU版本的才能使torch.cuda.is_available()为True,本文使用将文件下载到文件夹后进行安装。 1、打开Anaconda Prompt(Anaconda3)  2、打开

    2024年02月10日
    浏览(50)
  • S11、反射系数、回波损耗

    S11是反射系数中的一种,以dB为单位的S11就是回波损耗。 S11=Pr/Pin, S11等于反射功率除以入射功率,是功率比 将S11转换成以dB为单位(10·lgS11(系数)=S11(dB)),就是回波损耗(HFSS里S11就是这样表示的) mag,表示电压幅度,电压幅度的平方才是功率比,也就是反射系数S11, dB(S11)=2

    2024年02月12日
    浏览(64)
  • 计算机视觉实战项目2(单目测距+图像处理+路径规划+车牌识别)

    用python3+opencv3做的中国车牌识别,包括算法和客户端界面,只有2个文件,一个是界面代码,一个是算法代码,点击即可出结果,方便易用! 链接:车牌识别 大致的UI界面如下,点击输入图片,右侧即可出现结果! 额外说明:算法代码只有500行,测试中发现,车牌定位算法的

    2024年02月07日
    浏览(49)
  • 基于小波多普勒变换的回波信号检测matlab仿真

    目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1小波变换基础 4.2 多普勒效应与多普勒变换 4.3 小波多普勒变换 4.4 回波信号检测 5.算法完整程序工程 matlab2022a         在雷达、声纳、无线通信等领域,回波信号检测是一项关键技术。传统的

    2024年01月19日
    浏览(28)
  • 雷达测角方法(MUSIC ESPRIT)

      假设有D个信号源,N个阵元,将阵列接收的信号表示为: X ( t ) = A ( θ ) S ( t ) + N ( t ) X(t) =A(theta)S(t)+N(t) X ( t ) = A ( θ ) S ( t ) + N ( t ) 其中, S ( t ) S(t) S ( t ) 是D×1阶信号矢量, N ( t ) N(t) N ( t ) 是M×1阶噪声, A ( θ ) A(theta) A ( θ ) 是阵列对信号的M×D阶导向矢量矩阵。   

    2024年02月04日
    浏览(29)
  • 单脉冲测角和差波束法原理

    和差波束法原理 单脉冲测角有多种方法,包括半阵侧向、加权测向和和差比幅法,半阵测向可以参考文章: 半阵法单脉冲测角 。关于和差比幅测角通过函数拟合由单脉冲比求角度可以参照博文: 单脉冲测角-和差比幅法 ,这篇写的更加详细。和差波束法是等信号测角方法中的

    2024年02月06日
    浏览(25)
  • Hadoop是一个开源的分布式处理系统,主要用于处理和存储大量数据

    Hadoop是一个开源的分布式处理系统,主要用于处理和存储大量数据。它是由Apache软件基金会开发的,现在已经成为大数据领域中广泛使用的技术之一。 Hadoop架构 Hadoop的架构包括以下几个主要组件: Hadoop Distributed File System (HDFS) : HDFS是Hadoop的核心组件之一,它是一个分布式文

    2024年02月04日
    浏览(41)
  • 双天线和差测角matlab / FPGA开发

      设方位(或俯仰)平面内单个波束的方向图函数为 F ( θ ) F(theta) F ( θ ) ,两波束各自相对天线轴线的波束偏角为 δ delta δ ,设目标偏离天线轴线的角度为 θ theta θ ,则有 F ∑ ( θ ) = F ( δ − θ ) + F ( δ + θ ) = F ( θ − δ ) + F ( θ + δ ) F Δ ( θ ) = F ( δ − θ ) − F ( δ + θ

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包