news 2026/5/6 20:57:55

FMCW 雷达工作原理通俗讲解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FMCW 雷达工作原理通俗讲解

一、为什么现在越来越多设备用的是 FMCW 雷达?

近年来,FMCW(调频连续波)雷达成为毫米波感知的绝对主流。从智能汽车、智能家居,到工业液位计、安防雷达、生命体征检测,背后的核心技术几乎都是 FMCW。

原因很简单:

  • 功耗低
  • 精度高
  • 成本低
  • 能同时测距离 + 速度 + 角度
  • 模块化成熟(77GHz / 60GHz / 24GHz)

因此,现在是学习 FMCW 雷达最好的时代。


二、FMCW 雷达一句话核心原理(先讲人话)

FMCW 的本质,就是比较“我现在发的频率”和“回波的频率”之间的差,从而解出距离。

FMCW 发出去的是一个频率随时间线性变化的信号(Chirp)
目标回来的信号是一个被延迟的版本
两者相减 → 得到一个拍频信号
拍频 ∝ 距离。

非常优雅。


三、发射信号是一条“斜坡”(Chirp Waveform)

FMCW 不像一般无线电那样只发固定频率,而是:

频率从 f0 连续扫到 f0+B,形成一条上升的斜坡。

数学表达:
f ( t ) = f 0 + k t , k = B T chirp f(t) = f_0 + kt,\quad k=\frac{B}{T_\text{chirp}}f(t)=f0+kt,k=TchirpB

其中:

  • B 为扫频带宽
  • Tchirp 为 chirp 时长
  • k 为调频斜率(Hz/s)

四、回波信号只是“被延迟”的自己

目标距离 R,会导致回波延迟:

τ = 2 R c \tau = \frac{2R}{c}τ=c2R

因此回波信号可理解为:

发射信号向右平移了 τ。


五、混频 —— FMCW 的灵魂步骤

发射信号 Tx 与延迟回波 Rx 做乘法(混频):

beat ( t ) = T x ( t ) ⋅ R x ∗ ( t ) \text{beat}(t) = Tx(t)\cdot Rx^*(t)beat(t)=Tx(t)Rx(t)

会得到一个低频正弦信号(拍频):

f b e a t = k ⋅ τ f_{beat} = k \cdot \taufbeat=kτ

代入 τ:

f b e a t = 2 k R c f_{beat} = \frac{2kR}{c}fbeat=c2kR


六、拍频如何转换成“距离”?

根据上式可反推距离:

R = c ⋅ f b e a t 2 k R = \frac{c \cdot f_{beat}}{2k}R=2kcfbeat

这就是 FMCW 测距的基本原理。


七、如果目标在动,会出现多普勒频移

目标速度 v 会引入额外频移:

f d = 2 v λ f_d = \frac{2v}{\lambda}fd=λ2v

FMCW 中最终的频率变成:

f = f b e a t ± f d f = f_{beat} \pm f_df=fbeat±fd

于是通过:

  • 快时间 FFT → 距离
  • 慢时间 FFT → 速度

即可得到Range-Doppler Map(距离-速度图)


八、生活类比:理解 FMCW 的最好方式

你可以把 FMCW 理解为:

你吹一个一直变尖的哨子,听回声的音调差,就知道墙有多远。


九、为什么 FMCW 比脉冲雷达更受欢迎?

特性FMCW脉冲雷达
功耗✅ 低❌ 高
成本✅ 低❌ 高
抗噪性能✅ 强一般
距离分辨率
多目标分辨
噪声系数需求

FMCW 已成为毫米波雷达的绝对主流。


🔟 真正的核心亮点:FMCW 距离谱动画(MATLAB演示)

FMCW 的理论虽然不难,但如果能看到:

  • 发射信号
  • 回波信号
  • 拍频信号
  • FFT 距离谱随目标移动而变化

那么理解速度会提升 10 倍。

因此,下面提供一个可直接运行的 MATLAB 动画脚本

它能生成一段 MP4 动画,演示:

目标距离从 10m 移动到 40m 时,距离谱(Beat Frequency FFT)如何随之漂移。


10.1 动画内容示意(逻辑)

动画包含两部分可视化:

① 上半部分(Time Domain)

  • 蓝色:Tx 发射信号
  • 红色:Rx 回波信号
  • 绿色:Beat 拍频

随着距离变远:

  • Rx 延迟变大
  • Beat 频率升高

② 下半部分(Range Spectrum)

  • 对混频后的 Beat 做 FFT
  • 峰值出现的位置就是“目标距离”

随着目标移动:

  • 峰值会从 10m → 40m 平滑移动
  • 直观展示 FMCW 测距的原理

10.2 MATLAB 动画脚本(可直接运行)

将以下代码保存为:

fmcw_range_spectrum_animation.m

然后在 MATLAB 里直接运行,会生成:

fmcw_range_spectrum.mp4

👉 完整脚本如下(含注释)

%% FMCW 雷达距离谱动画演示% 作者:雷达物联% 功能:生成一段目标由近到远移动时,FMCW 距离谱(Range Spectrum)的动画clear;clc;close all;%% 1. 基本物理与雷达参数c=3e8;% 光速 (m/s)fc=77e9;% 载频 77 GHzB=200e6;% 调频带宽 200 MHzTchirp=40e-6;% 单个 Chirp 时长 40 usslope=B/Tchirp;% 调频斜率 (Hz/s)Fs=2e6;% 采样率 2 MHz(示意用,可根据需要调整)Ns=round(Tchirp*Fs);% 每个 chirp 的采样点数t=(0:Ns-1)/Fs;% 时间轴%% 2. 目标运动设定(从 10m 移动到 40m)R_start=10;% 起始距离 (m)R_end=40;% 结束距离 (m)Nframes=120;% 动画帧数(也等价于 chirp 个数)R_vec=linspace(R_start,R_end,Nframes);% 每帧的目标距离%% 3. 视频输出设置(生成 MP4 文件)videoFileName='fmcw_range_spectrum.mp4';v=VideoWriter(videoFileName,'MPEG-4');v.FrameRate=30;% 帧率open(v);%% 4. Figure 初始化fig=figure('Color','k','Position',[1001001200675]);% 预先计算 FFT 尺寸和距离轴Nfft=2^nextpow2(Ns);fbeat=(0:Nfft/2-1)*Fs/Nfft;% 拍频频率轴(正频)R_axis=c*fbeat/(2*slope);% 映射到距离轴maxRangeToShow=80;% 图上显示的最大距离(m)%% 5. 动画主循环fork=1:Nframes Rk=R_vec(k);% 当前帧目标距离tau=2*Rk/c;% 往返时间延迟% ---------- 5.1 生成 Tx & Rx ----------% 发射信号 (FMCW Chirp)tx=exp(1j*2*pi*(fc*t+0.5*slope*t.^2));% 回波信号:时间延迟后的 chirpt_delay=t-tau;rx=exp(1j*2*pi*(fc*t_delay+0.5*slope*t_delay.^2));rx(t<tau)=0;% 在信号“还没回来”之前置 0,避免非物理% ---------- 5.2 混频得到 beat signal ----------beat=tx.*conj(rx);% ---------- 5.3 对 beat 做 FFT 得到距离谱 ----------BF=fft(beat,Nfft);BF=BF(1:Nfft/2);% 只取正频PBF=abs(BF);% 幅度谱PBF=PBF/max(PBF);% 归一化,方便显示%% ---------- 5.4 绘图 ----------clf(fig);% 上半部分:时间域信号(只画一小段)subplot(2,1,1);Ns_show=min(500,Ns);% 显示前 500 个点plot(t(1:Ns_show)*1e6,real(tx(1:Ns_show)),'Color',[0.20.81.0]);hold on;plot(t(1:Ns_show)*1e6,real(rx(1:Ns_show)),'Color',[1.00.40.4]);plot(t(1:Ns_show)*1e6,real(beat(1:Ns_show)),'Color',[0.61.00.6]);grid on;set(gca,'Color',[0.050.050.1],'XColor',[0.90.90.9],'YColor',[0.90.90.9]);xlabel('Time (\mus)','Color',[0.90.90.9]);ylabel('Amplitude','Color',[0.90.90.9]);title(sprintf('Time-domain Signals (R = %.1f m)',Rk),'Color',[0.950.950.95]);legend({'Tx','Rx','Beat'},'TextColor',[0.90.90.9],'Location','northeast');% 下半部分:距离谱subplot(2,1,2);stem(R_axis,PBF,'Marker','none','LineWidth',1.5,'Color',[0.20.81.0]);xlim([0maxRangeToShow]);ylim([01.05]);grid on;set(gca,'Color',[0.050.050.1],'XColor',[0.90.90.9],'YColor',[0.90.90.9]);xlabel('Range (m)','Color',[0.90.90.9]);ylabel('Normalized Magnitude','Color',[0.90.90.9]);title('FMCW Range Spectrum (Beat Frequency FFT)','Color',[0.950.950.95]);% 标记当前目标距离hold on;[~,idxPeak]=max(PBF);R_peak=R_axis(idxPeak);line([R_peak R_peak],[01.05],'Color',[10.50],'LineStyle','--','LineWidth',1.2);text(R_peak,1.02,sprintf(' %.1f m',R_peak),'Color',[10.80.4],...'HorizontalAlignment','left','VerticalAlignment','top','FontSize',10);% 整体标题sgtitle('FMCW Radar – Moving Target Range Spectrum Animation',...'Color',[0.950.950.95],'FontSize',14);drawnow;% 将当前帧写入视频frame=getframe(fig);writeVideo(v,frame);end%% 6. 结束close(v);disp(['动画已生成:',videoFileName]);

10.3 运行效果示意(动画逻辑)

运行后你会看到:

  • 发射信号 Tx:蓝色
  • 回波信号 Rx:红色
  • 拍频信号 Beat:绿色
  • FFT 距离谱:下半部分的尖峰
  • 尖峰会随帧数从 10m → 40m 平滑移动

这是极清晰、极直观的 FMCW 测距动态演示。


十一、最终总结

FMCW 的思想非常优雅:

用时间换频率,用频率换距离。

通过 MATLAB 的可视化动画,我们不再仅仅停留在公式上,而是能够“看到”:

  • 回波延迟 → 拍频变化
  • 拍频变化 → FFT 峰值移动
  • 峰值移动 → 距离连续变化

这正是 FMCW 雷达测距的本质。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 9:09:40

Keye-VL-1.5:重新定义多模态视频理解的技术突破

Keye-VL-1.5&#xff1a;重新定义多模态视频理解的技术突破 【免费下载链接】Keye-VL-1_5-8B 项目地址: https://ai.gitcode.com/hf_mirrors/Kwai-Keye/Keye-VL-1_5-8B 在人工智能多模态交互领域&#xff0c;视频理解长期面临时序信息捕捉、长上下文处理与跨模态推理的…

作者头像 李华
网站建设 2026/5/2 15:15:03

你还在用轮询?C#实时物联网通信的7种高级模式(含源码级示例)

第一章&#xff1a;你还在用轮询&#xff1f;重新定义C#物联网通信范式在物联网&#xff08;IoT&#xff09;系统中&#xff0c;设备与服务之间的实时通信至关重要。传统的轮询机制通过定时向服务器发起请求以获取最新状态&#xff0c;不仅增加了网络负载&#xff0c;还导致延迟…

作者头像 李华
网站建设 2026/4/30 17:23:20

TCR型SVC仿真实战手记

TCR型SVC静止无功补偿器仿真模型 &#xff08;1&#xff09;基本思路&#xff1a;采集母线电压母线电流、TCR支路电流。 进行FFT&#xff0c;分离得到实部和虚部&#xff0c;通过steinmetz原理计算需要补偿的导纳大小&#xff0c;再通过查表得到TCR需要的导通角&#xff0c;完成…

作者头像 李华
网站建设 2026/5/1 2:38:33

联想Battery report准确吗,会显示错误吗

关于联想电脑生成的电池报告(Battery Report)的准确性,其核心数据本身是可靠的,但报告的解读和某些特定情况可能导致用户产生疑问。以下是详细说明: 报告的准确性基础 电池报告是通过系统命令 powercfg /batteryreport 生成的,该功能是Windows操作系统内置的官方工具。…

作者头像 李华