【雷达原理】雷达测距原理及实现方法

目录

  • 一、雷达测距原理
    • 1.1 基本原理
    • 1.2 实现方法
    • 1.3 与距离有关的概念
  • 二、MATLAB仿真实验
    • 2.1 应用案例
    • 2.2 MATLAB代码

一、雷达测距原理

1.1 基本原理

我们知道,电磁波的传播速度为光速 c c c,若雷达与目标之间的距离为 R R R,则雷达发出的电磁波到达目标,再经过目标反射后被雷达接收到,所用的时间 τ τ τ 为:
τ = 2 R c τ=\frac{2R}{c} τ=c2R
时间 τ τ τ 称为发射信号与回波信号的时延,对于LFMCW雷达,在一个调制周期内,发射信号与接收信号的差频 f b f_{b} fb 为:
f b = μ τ f_{b}=μτ fb=μτ
进而可以得到: f b = μ 2 R c f_{b}=μ\frac{2R}{c} fb=μc2R,说明目标与雷达之间的相对距离 R R R 跟信号混频后的差频 f b f_{b} fb 成正比。
一般情况下,雷达的调频斜率 μ μ μ 是固定的,电磁波在空气中的传播速度 c c c 约为 3 × 1 0 8 3×10^{8} 3×108,所以要测量目标的距离 R R R,只需要计算差频 f b f_{b} fb 即可。

1.2 实现方法

发射信号与接收信号经过混频、低通滤波等处理后,得到中频信号(IF),此时的中频信号为模拟信号,需要用ADC将模拟信号转换为数字信号,才可以进行后续处理。ADC采样后的信号为离散点,借助离散傅里叶变换(DFT),将中频信号从时域变换到频域,从而计算出信号的频率。

在实际工程应用中,为了计算的实时性,通常采用离散傅里叶变换的快速算法——快速傅里叶变换(FFT)来实现信号的时频转换。

1.3 与距离有关的概念

(1)最大测量距离
设中频信号的频率为 f I F f_{IF} fIF f I F = f b = μ 2 R c f_{IF}=f_{b}=μ\frac{2R}{c} fIF=fb=μc2R,所以目标的最大可测量距离为:
R m a x = f I F m a x c 2 μ R_{max}=\frac{f_{IF_{max}}c}{2μ} Rmax=2μfIFmaxc
而信号经过ADC采样后,可测量的信号最大频率受限于采样率 F s F_{s} Fs,即 F s > = f I F m a x = μ 2 R m a x c F_{s}>=f_{IF_{max}}=μ\frac{2R_{max}}{c} Fs>=fIFmax=μc2Rmax,从而得到:
R m a x = F s c 2 μ R_{max}=\frac{F_{s}c}{2μ} Rmax=2μFsc
实际上,无论是奈奎斯特采样还是带通采样,采样后可测量到有效的信号最大频率小于等于 F s / 2 F_{s}/2 Fs/2

(2)距离点精度
距离点精度表示在频域上,一个频率点(频率分辨率)对应的目标距离,设中频信号的采样点为 N N N,进行 F F T FFT FFT 的点数为 N f f t N_{fft} Nfft,此时的频率分辨率为 △ f = F s N f f t △f=\frac{F_{s}}{N_{fft}} f=NfftFs,从而得到距离点精度为:
R p o i n t = c 2 μ F s N f f t R_{point}=\frac{c}{2μ}\frac{F_{s}}{N_{fft}} Rpoint=2μcNfftFs
(3)距离分辨力
距离分辨率是指雷达对距离相近的两个目标的分辨能力。设两个目标与雷达之间的距离差为 △ R △R R,则在频域上其频率相差为 △ f = △ R ⋅ 2 μ c △f=\frac{△R·2μ}{c} f=cR2μ
△ f > 1 T = > △ R ⋅ 2 μ c > 1 T = > △ R > c 2 μ ⋅ T △f>\frac{1}{T}=> \frac{△R·2μ}{c}>\frac{1}{T}=> △R> \frac{c}{2μ·T} fT1=>cR2μT1=>R>2μTc
又因为带宽 B = μ ⋅ T B=μ·T B=μT,所以 △ R > c 2 B △R>\frac{c}{2B} R2Bc,因此,距离分辨率的计算公式为:
R p o i n t = c 2 B R_{point}= \frac{c}{2B} Rpoint=2Bc
由距离点精度的计算公式易知,若信号进行 F F T FFT FFT 的点数 N f f t = N = F s ⋅ T N_{fft}=N=F_{s}·T Nfft=N=FsT,则有 △ R = c 2 B △R= \frac{c}{2B} R=2Bc

(4)距离测量精度
距离测量精度是指雷达对目标的距离测量值与目标到雷达的真实距离之间的误差。噪声是影响雷达测量的最主要因素,通常采用测量值与真实值之差的均方根值来度量雷达的测距误差,即测距精度。
计算公式为:
σ R = c 2 B ⋅ s q r t ( 2 S N R ) σ_{R}=\frac{c}{2B·sqrt({2SNR})} σR=2Bsqrt(2SNR)c

二、MATLAB仿真实验

2.1 应用案例

(1)对固定目标的测量
设定一个距离为R1=1000m的目标,利用雷达测距方法在MATLAB上进行仿真验证,对混频后的信号加汉明窗,进行4096点FFT,得到其频谱图如下:
在这里插入图片描述
由图可知,目标峰值点出现在x=138的位置,根据距离点精度的计算公式 R p o i n t = c 2 μ F s N f f t R_{point}=\frac{c}{2μ}\frac{F_{s}}{N_{fft}} Rpoint=2μcNfftFs,得到 R p o i n t = 7.3192 R_{point}=7.3192 Rpoint=7.3192,所以目标距离测量结果为:
R m e = R p o i n t ∗ ( 138 − 1 ) = 1002.7 m R_{me}=R_{point}*(138-1)=1002.7m Rme=Rpoint(1381)=1002.7m
与目标实际位置1000m,存在2.7m的测距误差。

(2)不同带宽下的距离分辨率

2.2 MATLAB代码

(1)对固定目标的测量

clc;
clear;
close all;%% LFM信号参数
B = 20e6;       % 带宽
T = 100e-6;      % 脉冲宽度
u = B/T;        % 调频斜率
fs = 2*B;       % 采样率
N = T*fs;       % 采样点数c = physconst('LightSpeed');        % 光速
f0 = 77e9;                          % 载频
Lambda = c/f0;                      % 波长R_max = fs*c/(2*u);     % 最大测量距离
%% 模拟信号
t = linspace(0,T,N);
Phase_t = @(f0,u,t) 2*pi*(f0*t+1/2*u*t.^2);        % LFM信号的相位表达式Signal_Tx = rectpuls(t-T/2,T).*exp(1j*Phase_t(f0,u,t));        % 发射信号R0 = 1000;           % 静止目标
tao = 2*R0/c;       % 目标回波的时延
Signal_Rx = rectpuls(t-T/2,T).*exp(-1j*Phase_t(f0,u,(t-tao)));        % 接收信号% 混频
Signal_Mix = Signal_Tx.*Signal_Rx;% 测距
win = hamming(N);       % 加窗
Nfft = 4096;            % FFT点数
R_point = (fs/Nfft)*c/(2*u);    % 距离点精度
delta_R = c/(2*B);              % 距离分辨率
fft_Data = fft(Signal_Mix.*win',Nfft);
figure;
subplot(2,1,1);plot(abs(fft_Data));title('距离维fft');xlim([0 400]);
subplot(2,1,2);plot(mag2db(abs(fft_Data)));title('距离维fft(db)');xlim([0 400]);

(2)不同带宽下的距离分辨率

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/150345.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

QT实现tcp服务器客户端

服务器.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//实例化一个服务器server new QTcpServer(this);// 此时,服务器已经成功进入监听状态…

LVGL_基础控件滑动条slider

LVGL_基础控件滑动条slider 1、创建滑动条控件 // 创建一个 slider 组件(对象),他的父对象是活动屏幕对象 lv_obj_t *slider lv_slider_create(lv_scr_act()); LV_LOG_USER("lv_slider_get_value(slider) %d", lv_slider_get_value(slider));/* 设置位…

全屋灯具选购指南,如何选择合适的灯具。福州中宅装饰,福州装修

灯具装修指南 灯具就像我们家里的星星,在黑暗中带给我们明亮,可是灯具如果选择的不好,这个效果不仅体现不出来,还会让人觉得烦躁。 灯具到底该怎么选呢?装修灯具有哪些注意事项呢?给大家做了一个总结&#…

基于springboot的论坛网站

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 普通管理员管理 交流论坛 交流论坛评论 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了…

C语言qsort函数

排序qsort int int cmp(const void *a, const void *b) {return *(int *)a - *(int *)b;//先强转成int型,后解引用取值比较大小 }字符串数组 char a[] “hello world” //字符串数组,存放的是字符 int cmp(const void *a, const void *b) {return *(…

罗彻斯特大学探讨ChatGPT等人工智能将如何影响高等教育

人工智能聊天机器人ChatGPT持续引起互联网用户的热议,它能够回答关于各个领域的问题,创作歌曲、食谱,起草电子邮件等等。罗切斯特的教职员工和管理人员就他们如何处理 ChatGPT 以及它如何影响未来的教学和学习提出了他们的想法。 “让这项技…

快排(三种单趟排序法,递归非递归算法)

快排发明者:霍尔 (Sir Charles Antony Richard Hoare) 是一位英国计算机科学家。 计算机领域的爵士——托尼霍尔(Tony Hoare)(1934年1月11日出生),英文全称Sir Charles Antony Richard Hoare,常被称为Tony Hoare或者C. A. R. Hoare,1959年博士毕业于

idea清空缓存类

解决办法 网上有很多是让你去清空什么maven依赖,但假如这个项目是你不可以大刀阔斧的话 可以清空idea缓存 选择 Invalidate 开头的 然后全选 运行重启idea OK

FISCO BCOS(三十七)———FISCOBCOS应用开发,交易hash、区块高度的获取

这个需求怎么做? 交易hash的获取方式有很多,这里先介绍一种方式。 根据块高查询区块信息 https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Front/interface.html那我们如何知道现在的区块高度是多少? https://webasedoc.readthedocs.io/zh_CN/latest/docs/W…

VSCode Intellij IDEA CE 数据库连接

VSCode & Intellij IDEA CE 数据库连接 大概记一下现在正在用的几个工具/插件 VSCode VSCode 里面的工具我下载了很多,如果只是链接 MySQL 的话,可能用 Jun Han 这位大佬的 MySQL 就好了: 使用这个插件直接打开 .sql 文件单击运行就能…

nodejs+vue临沂特色产品销售平台elementui

从实际工作出发,对过去的临沂特色产品销售平台存在的问题进行分析,完善用户的使用体会。采用计算机系统来管理信息 提高了工作的效率。 随着信息化社会的形成和微电子技术日新月异的发展,临沂特色产品销售平台是针对目前临沂特色产品销售…

win10、win11彻底永久关闭自动更新的方法

win10、win11彻底永久关闭自动更新的方法 前言彻底关闭自动更新方法步骤一、禁用Windows Update服务二、在组策略里关闭Win10自动更新相关服务四、在注册表中关闭Win10自动更新 完结 前言 win系统的自动更新可谓是非常顽固,很多用户在网上试了各种关闭win系统自动更…

Ubuntu 20.04源码安装sysbench 1.0.20,源码安装sysstat v12.7.2

源码安装sysbench 1.0.20 参考的博客:《压测数据库1: Ubuntu 20 安装sysbench1.0.20》 sudo apt install -y automake libtool pkg-config下载依赖包,需要注意的是我这台计算机已经安装过mysql,所以我没有安装libmysqlclient-de…

【重拾C语言】六、批量数据组织(二)线性表——分类与检索(主元排序、冒泡排序、插入排序、顺序检索、对半检索)

目录 前言 六、批量数据组织——数组 6.1~3 数组基础知识 6.4 线性表——分类与检索 6.4.1 主元排序 6.4.2 冒泡排序 6.4.3 插入排序 6.4.4 顺序检索(线性搜索) 6.4.5 对半检索(二分查找) 算法比较 前言 线性表是一种常…

NPM 常用命令(九)

目录 1、npm link 1.1 使用语法 1.2 描述 2、npm login 2.1 描述 3、npm logout 3.1 描述 4、npm ls 4.1 使用语法 4.2 描述 5、npm org 5.1 使用语法 5.2 示例: 6、npm outdated 6.1 使用语法 6.2 描述 6.3 示例 7、npm owner 7.1 使用语法 7.2…

windows 任务计划自动提交 笔记到github 、gitee

一、必须有个git仓库托管到git上。 这个就不用说了,自己在github或者码云上新建一个仓库就行了。 二、创建自动提交脚本 这个bat脚本是在windows环境下使用的。 注意:windows定时任务下 调用自动提交git前,必须先进入该git仓库目录&#x…

机器学习---RBM、KL散度、DBN

1. RBM 1.1 BM BM是由Hinton和Sejnowski提出的一种随机递归神经网络,可以看做是一种随机生成的 Hopfield网络,是能够通过学习数据的固有内在表示解决困难学习问题的最早的人工神经网络之 一,因样本分布遵循玻尔兹曼分布而命名为BM。BM由二…

力扣 -- 1745. 分割回文串 IV

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:bool checkPartitioning(string s) {int ns.size();vector<vector<bool>> dp(n,vector<bool>(n));for(int in-1;i>0;i--){for(int ji;j<n;j){if(s[i]s[j]){dp[i][j]i1<j?dp[i…

C++设计模式-外观(Facade)

目录 C设计模式-外观&#xff08;Facade&#xff09; 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-外观&#xff08;Facade&#xff09; 一、意图 为子系统中的一组接口提供一个一致的界面&#xff0c;Facade模式定义了一个高层接口&#xff0c;这个接…

解决dockerfile创建镜像时pip install报错的bug

项目场景&#xff1a; 使用docker-compose创建django容器 问题描述 > [5/5] RUN /bin/bash -c source ~/.bashrc && python3 -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple: 0.954 Looking in indexes: https://…