LFM雷达实现及USRP验证【章节3:连续雷达测距测速】
第一章介绍了在相对速度为0时候的雷达测距原理
目录
1. LFM测速
1.1 雷达测速原理
1.2 Chrip信号测速
2. LFM测速代码实现
参数设置
仿真图像
matlab源码
代码分析
第一章介绍了在相对速度为0时候的雷达测距原理,第二章介绍了基于LFM的雷达测距原理及其实现,但是存在相对运动时,无法得到目标物体的多普勒信息,进而无法计算目标物体的速度。本章将在第二章的基础上,实现连续LFM波形的雷达测距测速。
该笔记参考资料:Radar测距及测速原理(2)——快速Chirp序列方法推导及实际应用 - 知乎 (zhihu.com)
https://zhuanlan.zhihu.com/p/77500626
(114条消息) 线性调频(LFM信号)脉冲压缩雷达matlab仿真- 脉冲压缩 测距 测速 距离速度三维像(附matlab代码)_格桑蓝莲的博客-CSDN博客
https://blog.csdn.net/weixin_44566643/article/details/107508520
1. LFM测速
1.1 雷达测速原理
通常来说,我们可以通过确定电磁波传播的时间来估算距离,通过多普勒效应产生的频率偏移来估算相对速度。但实际使用中我们会发现,对于没有经过调制的连续波谱(Continuous Wave),我们只发出相同的正弦或余弦信号,接收到的波也是呈周期性变化的,所以我们无从知道从发出到接受到底经过了多少个波长,从而无法确定信号从发出到接受所经历的时间(time of flight),也就无法测算距离。
于是,我们引入了线性调频LFM,使发出信号的频率随时间处于不断的变化中。LFM雷达在扫频周期内发射频率变化的连续波,被物体反射后的回波与发射信号有一定的频率差,通过测量频率差可以获得目标与雷达之间的距离信息。
第一章讨论了相对速度为0的情况,现考虑存在相对运动速度,当存在相对速度(正值表示远离,负值表示靠近),距离R会随着时间进行变化,当相对速度
,R不断增大,故
也不断变大;当相对速度
,R不断减小,故
也不断减小。因此当目标物同观测点有相对运动时,多普勒频偏也要放在考虑之中,发出及接受的信号频率变化变成如下图所示:

为了简化模型,且考虑到信号从发出到接收所经历的时间极短,加速度不变,目标物体相对速度几乎不变,信号频率变化如下所示:

蓝色表示原始发射波形,虚线的红黄两线表示接收到的不同回波信号,因为目标物体存在相对速度,接收到的回波信号在原始信号的基础上不但右移(时延)如黄虚线所示,同时存在上下移动(频移)如红虚线所示,具体解释如下:

1.2 Chrip信号测速
结合第一章节以及本章前面内容,雷达测距测速的基本原理相信各位已经明白,现在将基本原理与LFM相结合,通过缩短每一个Chrip信号的频扫时间,使得在每一个Chrip时间内,相对速度基本保持不变(降低相对速度带来的影响)。此时,可以将每一个Chrip信号看成一个准静态情况(一个Chirp中相对速度为0,相对距离R不变,从而不考虑多普勒效应),从而比较容易的确定一个Chirp中的相对距离R。但是因为视为准静态过程,我们无从得知相对速度的值,因此,我们需要发出很多个连续相同的Chirp(Chirp序列)来确定相对速度,如下图:

如图所示,很多个Chirp组成了一个”Sequence“,总时间用 表示。在每个Chirp中,相对距离R被视为定值,因此,在一个Chirp序列中,R是以离散值表示出来的,每一个Chirp给出一个R,这里将离散的相对距离序列称为Range Cells。我们假设总共发出N个相同Chirp,那么从第0到第N-1个Chirp的扫频周期及扫频带宽相等均为
和
。
为了得到每个Chirp的相对距离R,我们首先要得到每个Chirp中的差频(beat frequency),因此,我们将每一个Chirp进行采样,共得到k个采样值。利用快速傅里叶变换(FFT)得出每个Chirp中的值,从而得到相对距离R。因为这里的FFT之后得到的是距离,所以在这里称为“Range-FFT"。经过FFT后,对于每个Chirp我们得都到了k个频点(frequency bins),其也对应着测量相对距离R的分辨率。

由于在一个测量序列中,经历的时间较短,我们假设其相对速度是不变的,不存在加速度。并且,相对速度可由R的变化求出,而R又可以由差频得到,因此,我们就可以利用上一步Range-FFT得出的一个序列中各个Chirp的
的变化来求相对速度。
在上一步中,由FFT得到的是一个复数,由于
极短,所以
的变化也很小,从而不足以使得不同Chirp得到的相对距离R跳跃到不同的Range cells中(FFT后,幅值最大的序号不变),但其变化还是存在的。其结果可以在复频域中表示出来:在一个测量序列中,
在复频域中旋转,其旋转的频率即为相对速度
的标尺!对
再进行FFT,可以得到其变化的频率,从而得到相对速度。因为这里的FFT之后得到的是相对速度,所以我们这里称为“Speed-FFT”

由于每个Chirp可以得到一个相对距离R,所以相对距离的分辨率为:
而在一个序列中我们假设相对速度不变,因此相对速度的分辨率为:
注意:公式中各个物理量的表示可能与我们仿真所使用到的表示不同,如在仿真中用带宽表示。
2. LFM测速代码实现
-
参数设置
| 参数设置 | 参数含义 |
| fc | 载波频率4GHz |
| Fs | 采样率为200MHz(USRP最大采样率受限) |
| Ts | 采样周期Ts=1/FS=5ns |
| B | B=0.4Fs=80MHz(满足奈奎斯特带宽) |
| Tp | 一个Chrip信号的时宽10us,Tp=10e-6 |
| c | 光速,设置为3e8 |
| PRF | 每秒脉冲重复频率为200 |
| Tr | 脉冲重复周期等于1/PRF=5ms |
| lamda | 波长等于光速/载波频率=75cm(厘米波波段) |
| Rmax | 受到采样时间的限制Rmax = c/2*16*t,t为采样时间 |
| R_resolution | 距离分辨率=光速/两倍波长=c/(2B)=1.875m |
| N_pulse | 发射脉冲个数num_pulse=50 |
| t | 采样时间t = 0:1/Fs:Tp,采样时间,会决定最大检测距离 |
| N_samples | 采样点数N_samples=N_time/Fs |
-
仿真图像
| 第一个回波信号的距离幅度谱 测距(Range FFT) | 测距测速三维图像 |
![]() | ![]() |
-
matlab源码
%==========================================================================
%% 连续脉冲LFM雷达测距测速
%% 完美实现,没有bug
% matlab2021b
%==========================================================================
clear;clc;close all;
%% LFM参数设置
fc = 4e9; %载波频率
PRF = 2000; %脉冲重复频率
Tr = 1/PRF; %脉冲重复周期
B = 80e6; %带宽
Fs = 2.5*B; %采样频率
Ts = 1/Fs; %采样时间
Tp = 10e-6; %脉宽
c = 3e8;
lamda = c/fc; %载波波长
Kr = B/Tp; %调频斜率
N_pulse = 50; %脉冲个数(个数不能太少)
t = 0:1/Fs:Tp; %采样时间
N_samples = length(t); %采样点个数
N_targets= 5; %目标物体个数
Rmax = c/2*1*Tp; %最大检测距离(受到采样时间的限制,采样时间为16Tp)
Vmax = lamda*PRF/2; %目标最大速度,最大测速范围满足在第一盲速之内
R_targets = [1000,230,680,860,145];%物体的距离随机生成
RCS = 10*(exp(1i*2*pi*rand(1,N_targets)));%目标物体RCS,幅度为10,相位在(0,2pi)之间随机分布
V_targets = Vmax*((rand(1,N_targets))/2);%目标物体速度%% 接收矩阵sr计算
sr = zeros(N_pulse,N_samples);%sr的每一行表示一个回波信号所含的采样点,一共有50行不同回波信号构成
for i = 1:N_pulsedelay = (i-1)*Tr; %发送第i个Chrip信号时相对初始时间的时延sr_row = 0;% 内层for循环,一个目标一个目标来研究,对应每一个回波脉冲是由每一个目标回波之和组成for k=1:N_targetstao=2*(R_targets(k)-V_targets(k).*(delay+t))/c; %在当前时刻,雷达信号往返的时间(目标物体在运动,距离在变化)sr_temp=RCS(k).*rectpuls(t-tao-Tp/2,Tp).*exp(-1j*2*pi*fc*tao+1j*pi*Kr.*(t-tao-Tp/2).^2);sr_row=sr_row+sr_temp;end% 外层for循环,不同的脉冲,对应的delay是不同值,再代入来计算回波sr(i,:)=sr_row;
end
R_range = c*t/2; %在采样时间内,距离的范围
%% 脉冲压缩
% 参考信号st
st=rectpuls(t-Tp/2,Tp).*exp(1i*pi*Kr*(t-Tp/2).^2);%时域参考信号(将原始信号右移Tp/2)
stf=conj(fft(st));%匹配滤波器的频域特性
for i=1:N_pulsesr_mf(i,:)=ifft(fft(sr(i,:)).*stf); %分别对每一行脉冲压缩 频域脉冲压缩(匹配滤波mf)
end%% 图像输出
%----------------------------测距(Range FFT)------------------------------
% 第一个回波信号的距离幅度谱
figure(2);
plot(t*c/2,abs(sr_mf(1,:)))
title('第一个回波信号的距离幅度谱');
%----------------------------测速(Speed FFT)------------------------------
sr_speed=fft(sr_mf,[],1);
V=linspace(0,PRF,50)*lamda/2;% 尝试着画一下三维图
figure(4)
mesh(R_range,V,abs(sr_speed)/max(max(abs(sr_speed))));
xlabel('距离/m');
ylabel('速度/(m/s)');
zlabel('幅度/db');
title('目标距离速度信息一览');
-
代码分析

相关文章:
LFM雷达实现及USRP验证【章节3:连续雷达测距测速】
第一章介绍了在相对速度为0时候的雷达测距原理 目录 1. LFM测速 1.1 雷达测速原理 1.2 Chrip信号测速 2. LFM测速代码实现 参数设置 仿真图像 matlab源码 代码分析 第一章介绍了在相对速度为0时候的雷达测距原理,第二章介绍了基于LFM的雷达测距原理及其实现…...
COLMAP多视角视图数据可视化
这篇博文主要介绍多视角三维重建的实用工具COLMAP。为了让读者更快确定此文是否为自己想找的内容,我先用简单几句话来描述此文做的事情: 假设我们针对一个物体(人)采集了多个(假设60个)视角的照片ÿ…...
2023年全国最新高校辅导员精选真题及答案36
百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 92.校园文化形成与发展的主要影响因素有() A.学校的领导与管理活…...
ThreeJS-全屏和退出全屏、自适应大小(五)
下载新得组件 npm install gsap -S 新引入 import gsap from gsap //动画控制 代码: <template> <div id"three_div"> </div> </template> <script> import * as THREE from "three"; import {OrbitControls } f…...
等级保护2.0要求及所需设备清单
等级保护的工作流程包括定级、备案、建设整改、等级测评,核心思想在于建立“可信、可控、可管”的安全防护体系,使得系统能够按照预期运行,免受信息安全攻击和破坏。 三级等保要求及所需设备 三级等级保护指标项: 物理访问控制…...
【大数据之Hadoop】六、HDFS之NameNode、Secondary NameNode和DataNode的内部工作原理
NN和2NN的内部工作原理 对于NameNode的存放位置: 内存中:好处:计算快 坏处:可靠性差,断电后元数据会丢失 磁盘中:好处:可靠性搞 坏处:计算慢 内存磁盘中:效率低 所以设…...
小黑子—Java从入门到入土过程:第四章
Java零基础入门4.0Java系列第四章1. 顺序结构2. if语句3. switch 语句3.1 default的位置和省略3.2 case 穿透3.3 switch 新特性 (jdk12开始)4. for 循环5. while 循环6.do...while 循环7. 无限循环8. 跳转控制语句9. 练习9.1 逢七过9.2 平方根9.3 求质数…...
数据库原理及应用(四)——SQL语句(2)SQL基础查询以及常见运算符
一、SELECT语句基础 数据库查询是数据库的核心操作,SELECT 语句用于从数据库中选取数据。 SELECT [ALL/DISTINCT] <列名>,<列名>...FROM <表名或视图名>,<表名或视图名>[WHERE <条件表达式>][GROUP BY <列名1> [HAVING <条…...
(算法基础)Floyd算法
适用情景Floyd算法适用于多源汇最短路,也就是他问你比如说从3号点到6号点的最短路距离,比如说从7号点到20号点的最短路距离,而不是单源最短路(从1号点到n号点的最短路距离)。在这个算法当中允许负权边的存在。但在求最…...
SQL语法:浅析select之七大子句
Mysql版本:8.0.26 可视化客户端:sql yog 目录一、七大子句顺序二、演示2.1 from语句2.2 on子句2.3 where子句2.4 group by子句2.4.1 WITHROLLUP,加在group by后面2.4.2 是否可以按照多个字段分组统计?2.4.3 分组统计时,…...
中国人民大学与加拿大女王大学金融硕士——去有光的地方,并成为自己的光
光是我们日常生活中一个重要的元素,试想一下如果没有光,世界将陷入一片昏暗。人生路亦是如此,我们从追逐光、靠近光、直到自己成为光。人民大学与加拿大女王大学金融硕士项目是你人生路上的一束光吗 渴望想要成为一个更好的人,就…...
Python数据结构与算法篇(五)-- 二分查找与二分答案
1 二分法介绍 1.1 定义 二分查找又称折半查找、二分搜索、折半搜索等,是一种在静态查找表中查找特定元素的算法。 所谓静态查找表,即只能对表内的元素做查找和读取操作,不允许插入或删除元素。 使用二分查找算法,必须保证查找表中…...
小游戏也要讲信用
当下,小游戏鱼龙混杂,官方为能更好地保护用户、开发者以及平台的权益,近日宣布7月1日起试行小游戏主体信用分机制。 主体信用分是什么呢?简单来说,这是针对小游戏主体下所有小游戏帐号行为,对开发者进行评…...
贪心算法11
1. 贪心算法的概念 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心…...
【并发编程】JUC并发编程(彻底搞懂JUC)
文章目录一、背景二、什么是JUC?三、JUC框架结构四、JUC框架概述五、JUC中常用类汇总六、相关名词进程和线程进程线程创建线程的几种常见的方式并发和并行用户线程和守护线程七、synchronized 作用范围:八、Lock锁(重点)什么是 Lock锁类型Lock接口lock()…...
Compose 动画 (七) : 高可定制性的动画 Animatable
1. Animatable和animateDpAsState的区别是什么 Animatable是Android Compose动画的底层API,如果我们查看源码,可以发现animateDpAsState内部是调用的animateValueAsState,而animateValueAsState内部调用的是Animatable animateDpAsState比A…...
vue3组件传值
1.父向子传值 父组件 引入子组件 import Son from ./components/Son.vue 设置响应式数据 const num ref(99) 绑定到子组件 <Son :num"num"></Son> 子组件 引入defineProps import { defineProps } from vue; 生成实例接收数据 type设置接收类…...
小白开发微信小程序00--文章目录
一个小白,一个老牛,空手能不能套白羊,能不能白嫖?我告诉你,一切都so easy,这个系列从0到106,屌到上天,盖过任何一个,试问,网上讲微信小程序开发的,…...
随手记录第九话 -- Java框架整合篇
框架莫过于Spring了,那就以它为起点吧。 本文只为整理复习用,详细内容自行翻看以前文章。 1.Spring 有人说是Spring成就Java,其实也不是并无道理。 1.1 Spring之IOC控制反转 以XML注入bean的方式为入口,定位、加载、注册&…...
电影《铃芽之旅》观后感
这周看了电影《铃芽之旅》,整部电影是新海诚的新作。电影讲述的是女主铃芽为了关闭往门,在日本旅行中,遭遇灾难的故事。 (1)往昔记忆-往昔之物 电影中,有很多的“往门”,换成中国的话说…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...


