Xiaojie雷达之路---毫米波雷达实战解析---相位差在速度测量中的关键作用

news2026/3/14 18:23:17
1. 从“听见”到“看清”毫米波雷达的速度感知秘诀大家好我是Xiaojie。在之前的分享里我们聊了毫米波雷达的基础特别是中频信号的频率如何像一把精准的尺子帮我们测量出目标的距离。今天我们要深入一步探讨一个更“动态”的话题——速度测量。你可能好奇雷达是怎么知道一个物体是静止还是以每小时100公里飞驰而过的答案就藏在中频信号的相位这个看似抽象的概念里。想象一下你站在湖边向平静的水面扔了两块小石头。两块石头激起的涟漪都会扩散开来。如果你仔细观察这两圈涟漪在某个固定点比如一片漂浮的树叶上的交汇情况你会发现由于你扔两块石头的时间有细微差别树叶的上下振动节奏会有所不同。这个振动的节奏差异就包含了“你扔石头的间隔时间”和“树叶本身的位置变化”双重信息。毫米波雷达测速原理上就有点像这个。它连续发射两个“Chirp”线性调频脉冲就像连续扔出两块“电磁波石头”。目标物体反射回来的“涟漪”回波经过混频后产生的中频信号其相位在前后两个Chirp周期内的变化就是我们解开速度之谜的关键钥匙。很多刚接触雷达的朋友会觉得相位比较玄乎不如频率和振幅直观。但我想说在感知微动和速度方面相位才是真正的“幕后英雄”。它敏感得超乎想象——对于77GHz的毫米波雷达目标哪怕只移动了1毫米大约是一张普通A4纸的厚度引起的相位变化可能高达180度这种极高的灵敏度让毫米波雷达不仅能测汽车速度还能检测人的心跳、胸腔起伏甚至是马达的微小振动。今天我就带你彻底搞懂如何利用两个连续Chirp信号之间的相位差精准计算出目标的速度并聊聊在实际项目中我们如何驾驭它的超高精度又该如何规避其中的陷阱。2. 相位差连接距离变化与速度的桥梁要理解相位差如何测速我们得先回到最根本的物理关系上。还记得我们推导过的那个核心公式吗对于一个静止的物体单个Chirp产生的中频信号其初始相位 φ 与目标的距离 d 存在固定关系。但当目标开始运动时故事就变得动态起来了。2.1 重温单个Chirp下的相位与距离关系首先快速回顾一下。雷达发射一个频率随时间线性增加的Chirp信号遇到目标反射回来会产生一个时间延迟 τ。这个 τ 2d/c其中 d 是距离c 是光速。发射信号和接收信号在混频器中相遇它们的频率相减得到了一个频率固定的中频IF信号。这个IF信号不仅有一个频率值 f_if还有一个初始相位 φ。这个相位 φ 从哪里来它本质上来源于发射信号在往返时间 τ 内累积的相位变化。对于载波频率为 f_c 的电磁波在时间 τ 内走过的相位周期数是 f_c * τ。由于是往返相位变化还要加倍。因此我们可以得到φ 2π * f_c * τ 4π * d / λ这里 λ 是雷达发射信号的载波波长λ c / f_c。这个公式告诉我们一个非常重要的结论对于单个Chirp中频信号的初始相位 φ 与目标的绝对距离 d 直接相关并且是线性关系φ 正比于 d。但是这里有个巨大的麻烦相位 φ 是以 2π 为周期循环的。比如当 4πd / λ 增加 2π 时相位 φ 又回到了原点。这意味着如果我们直接从一个Chirp的相位 φ 反推距离 d会得到无数个可能的解d, dλ/2, dλ, ...这被称为“相位模糊”。所以单靠一个Chirp的相位我们无法确定绝对距离。测距主要依靠的是中频信号的频率 f_if。2.2 两个Chirp引入的相位差捕捉微小的距离变化虽然单个相位有模糊性但当我们比较两个连续发射的Chirp时魔法就发生了。假设我们以固定的时间间隔 T_c连续发射两个完全一样的ChirpChirp 1 和 Chirp 2。如果目标是完全静止的那么这两个Chirp对应的回波延迟 τ 是一样的根据上面的公式它们产生的中频信号的初始相位 φ1 和 φ2 也应该完全相等。此时相位差 Δφ φ2 - φ1 0。现在让目标动起来。假设在两次发射的间隔时间 T_c 内目标相对于雷达的距离发生了变化移动了 Δd。那么对于第二个Chirp它的往返延迟 τ 也发生了变化对应的相位 φ2 也随之改变。关键点来了虽然我们无法精确知道 φ1 和 φ2 的绝对数值因为相位模糊但只要时间间隔 T_c 足够短短到目标的移动距离 Δd 远小于半个波长Δd λ/2我们就可以认为这两个相位值处于同一个 2π 周期内它们的差值 Δφ 是明确无误、没有模糊的这个相位差 Δφ 是多少呢根据公式它正比于距离的变化量 ΔdΔφ φ2 - φ1 (4π * (dΔd) / λ) - (4π * d / λ) 4π * Δd / λ看绝对距离 d 在相减时被消掉了我们得到了一个干净漂亮的公式相位差 Δφ 只与两次测量期间目标的距离变化量 Δd 成正比。这就完美避开了相位模糊的问题让我们能够精确地测量微小的距离变化。2.3 从距离变化到速度最后的临门一脚既然我们得到了 Δd而 Δd 是目标在已知时间间隔 T_c 内移动的距离那么目标的径向速度 v沿着雷达视线方向的速度不就呼之欲出了吗v Δd / T_c将 Δφ 4π * Δd / λ 代入消去 Δd我们得到速度 v 与相位差 Δφ 的直接关系v (λ * Δφ) / (4π * T_c)这就是利用双Chirp相位差测速的核心公式。我们通过测量两个连续Chirp回波中频信号之间的相位差 Δφ再结合已知的雷达波长 λ 和 Chirp间隔时间 T_c就能直接计算出目标在雷达径向上的运动速度。让我用一个更生活的类比来强化理解。这就像你用两个非常快的闪光灯间隔 T_c去拍一个正在向你滚来的皮球。两张照片里皮球在你手机屏幕上的位置差相当于相位差除以闪光灯的时间间隔就能算出皮球向你靠近的速度。毫米波雷达的“闪光灯”是Chirp脉冲“照片”是包含相位信息的复数中频信号“位置差”就是我们要提取的相位差 Δφ。3. 实战推演相位差测速的完整信号处理链理论很美妙但怎么在真实的雷达信号处理中把它“算”出来呢下面我就带你走一遍从原始数据到速度值的完整流程。这个过程在雷达的DSP或MCU中实时运行理解它对你调试算法、分析问题至关重要。3.1 第一步ADC采样与数据立方体构建雷达的接收天线收到回波信号经过混频、滤波、放大后得到模拟的中频信号。这个信号被ADC模数转换器以一定的采样率进行采样变成数字信号。对于每个发射的Chirp我们会在它的接收时间内采集N个ADC样本。假设我们连续发射了M个ChirpM至少为2通常更多用于测速那么我们就得到了一个二维数据矩阵大小为[M个Chirp, N个采样点]。在毫米波雷达中这通常被称为“慢时间-快时间”维数据。“快时间”维度采样点对应每个Chirp内的采样与距离相关“慢时间”维度Chirp索引对应不同Chirp的发射时刻与速度和相位变化相关。实际上如果有多个接收天线比如4个数据还会增加一个空间维度形成一个三维的“数据立方体”但今天我们聚焦在单天线下的速度测量可以暂时把它看作一个二维矩阵。3.2 第二步对每个Chirp做距离维FFTRange-FFT这是测距的标准步骤。我们对每个Chirp的N个采样点即数据矩阵的每一行单独做一次FFT。这次FFT是在“快时间”维度上进行的目的是将信号从时域转换到频域。FFT之后每个Chirp的数据从一个包含N个时域采样点的序列变成了一个包含N个频域“距离门”的序列。每个距离门对应一个特定的距离区间其复数幅度值代表了在那个距离上是否存在目标以及信号的强度。更重要的是这个复数包含了我们需要的相位信息。假设在某个距离门比如第k个上我们检测到了一个目标峰值。那么对于第m个Chirp我们在这个距离门上得到一个复数S(m, k) A(m, k) * e^(j*φ(m, k))。其中 A 是幅度φ 就是该Chirp下该目标反射信号在中频处的相位。3.3 第三步提取“慢时间”维度的相位序列现在我们固定距离门k也就是固定了目标所在的距离。然后我们沿着“慢时间”维度即不同的Chirp索引 m把同一个距离门k上的复数数据都提取出来。这样我们就得到了一个序列[S(1, k), S(2, k), ..., S(M, k)]。这个序列的幅度变化通常不大因为目标RCS变化慢但其相位 φ(m, k) 却会随着目标移动而发生变化。3.4 第四步计算相位差与速度解算对于最基本的双Chirp测速M2我们直接计算这两个Chirp在距离门k上的相位差Δφ angle(S(2, k)) - angle(S(1, k))这里angle()是取复数相位角的函数在C语言中是atan2(imag, real)在MATLAB/Python中是angle()或np.angle()。注意要确保相位差被包裹在(-π, π]的区间内通常函数会自动处理。然后将 Δφ 代入公式v (λ * Δφ) / (4π * T_c)即可算出目标的径向速度。如果 Δφ 为正说明相位在增加根据公式意味着目标正在远离雷达距离d增加如果 Δφ 为负则目标正在靠近。在实际的雷达芯片如TI的AWR系列SDK中这个过程被高度集成。你可能只需要配置好Chirp参数然后调用API读取处理后的检测目标列表其中就已经包含了速度信息。但知其然知其所以然当你发现测速不准时才能知道该从哪里入手检查是ADC数据有问题FFT配置错了还是相位提取受到了干扰4. 精度、模糊与极限相位差测速的“双刃剑”利用相位差测速其精度高得令人兴奋但也伴随着严格的限制和挑战。理解这些你才能在设计雷达应用时做出正确的权衡。4.1 令人惊叹的测速精度相位差测速的精度优势根植于相位对微小距离变化的极端敏感性。我们之前算过对于77GHz雷达λ≈3.9mm目标移动仅1mm就能引起180度的相位变化。这种敏感性直接转化为了极高的速度分辨率。速度分辨率指的是雷达能区分两个目标的最小速度差。其公式可以从相位差公式推导出来。两个速度相差 Δv 的目标其相位差相差Δ(Δφ) 4π * T_c * Δv / λ。当这个相位差刚好达到一个可分辨的界限时通常我们认为需要至少一个FFT的相位分辨率对应的 Δv 就是速度分辨率。实际上当我们发射M个ChirpM2并对其做第二次FFT速度维FFT也叫Doppler-FFT时速度分辨率有一个更标准的表达式Δv λ / (2 * M * T_c)这里 MT_c 是整个相干处理时间。可以看到**提高速度分辨率的方法有两种一是使用更长的波长λ更大二是增加相干处理时间MT_c更大**。对于固定频率的雷达只能通过发射更多Chirp或拉长Chirp间隔时间来提升速度分辨能力。在汽车雷达中为了平衡帧率和分辨率通常会精心设计这些参数。4.2 无法回避的速度模糊问题高灵敏度是一把双刃剑。因为相位是以 2π 为周期循环的所以相位差 Δφ 也只能在(-π, π]的主值区间内被唯一确定。这直接导致了速度模糊。从公式Δφ 4π * v * T_c / λ反推当 Δφ π 时对应的速度被称为最大不模糊速度v_max λ / (4 * T_c)这个公式的物理意义非常明确如果目标在一个Chirp间隔 T_c 内移动的距离 Δd 超过了 λ/4那么产生的相位变化就会超过 π在计算时就会被“折叠”回主值区间导致速度测量出现错误。例如一个实际是远离的目标可能因为相位折叠而被误判为靠近并且速度值也是错误的。参数示例值对最大不模糊速度的影响雷达波长 (λ)77GHz时约3.9mm波长越长v_max越大越不易模糊Chirp间隔时间 (T_c)50 μsT_c越小v_max越大但会减少相干处理时间计算出的 v_max约 19.5 m/s (70 km/h)超过此速度的目标会发生速度模糊这张表告诉我们对于77GHz雷达如果T_c设为50μs那么它能无模糊测量的最大速度只有约70公里/小时。这对于高速公路上的汽车测速来说是远远不够的。一辆时速120公里的车其径向速度很容易就超过这个限值。4.3 应对速度模糊的工程策略在实际工程中我们无法回避高速目标因此必须想办法解决或缓解速度模糊问题。有几种常见的策略多重Chirp设计这是最主流的方法。我们不只使用一种T_c而是设计两组甚至多组具有不同T_c的Chirp序列。例如一组是“短间隔”Chirp对用于测量高速但精度要求不高的场景另一组是“长间隔”Chirp对用于精确测量低速目标。通过比较不同序列下计算出的速度可能都是模糊的利用中国剩余定理等算法解算出真实的无模糊速度。这就像用两把刻度不同的尺子去量同一个物体通过对比读数来反推出真实长度。降低载波频率从公式看使用更长的波长更低的频率可以直接提高v_max。这就是为什么一些需要测量极高速目标如弹道测量的雷达会选用较低频段。但在车载和工业领域受限于天线尺寸和分辨率77GHz和79GHz是主流。利用目标跟踪信息在连续多帧的跟踪过程中如果目标速度是连续变化的可以通过跟踪滤波器如卡尔曼滤波来预测和纠正可能的速度模糊。当某一帧计算出的速度与预测值相差超过v_max时可以尝试加减一个模糊速度的整数倍2*v_max使其回到预测值附近。这需要强大的跟踪算法作为后盾。我在调试一个无人机测速项目时就踩过坑。最初只设了一组ChirpT_c为了追求高速度分辨率设得比较大。结果无人机快速飞过时速度值一会儿正一会儿负完全乱套。后来改用了“快慢结合”的双重Chirp方案虽然信号处理复杂度上去了但终于能稳定地输出正确的高速数据了。5. 超越基础从双Chirp到多Chirp与Doppler-FFT双Chirp相位差法是最直观的速度测量原理但在实际的高性能雷达中我们几乎从不只发射两个Chirp。发射一长串比如128个或256个连续的Chirp然后进行更复杂的处理才是标准做法。5.1 多Chirp与速度维FFT当我们发射M个ChirpM远大于2并对每个Chirp都做了距离维FFT之后我们对于某个特定的距离门k就得到了一个长度为M的“慢时间”序列S[1], S[2], ..., S[M]每个值都是一个复数。这个序列的相位随着Chirp索引也就是时间在变化。如果目标正在匀速运动那么距离随时间线性变化根据公式φ(m) 4π * d(m) / λ相位也会随时间线性变化。一个随时间线性变化的相位在频域看来是什么是一个单频信号因此我们对这个长度为M的复数序列再做一次FFT这次是在“慢时间”维度上进行的称为多普勒FFT或速度维FFT。这次FFT的结果会将信号从“慢时间”域转换到“多普勒频率”域。如果目标存在且正在运动我们就会在这个速度谱上看到一个峰值。这个峰值对应的频率索引f_d就是目标相位变化的频率称为多普勒频率。多普勒频率与速度的关系是v (λ * f_d) / 2注意这里的系数是2而不是4因为这次FFT分析的是相位随时间变化的频率其关系与经典多普勒公式一致。5.2 相位差法与Doppler-FFT法的联系与区别你可能已经发现了双Chirp相位差法其实就是M2时的Doppler-FFT的一个特例。当M2时做一次2点的FFT其效果就是计算两个点的相位差。Doppler-FFT是相位差法的广义化和优化。Doppler-FFT的优势非常明显更高的信噪比通过相干积累M个Chirp的能量可以将信号从噪声中更好地提取出来提高检测能力。更高的速度分辨率正如前面提到的速度分辨率Δv λ / (2 * M * T_c)M越大分辨率越高能区分更细微的速度差异。同时处理多个目标在一个距离门内如果有多个速度不同的目标Doppler-FFT会在速度谱上产生多个峰值从而将它们区分开。而双Chirp相位差法只能给出一个综合的相位差无法区分同距不同速的目标。那么相位差法是不是就没用了呢绝对不是。在以下场景它依然有独特价值超低功耗应用对于只需要检测“有无微动”如人体存在感应的应用发射两个Chirp计算一个相位差比发射几十个Chirp做全Doppler-FFT要省电得多。极高更新率当需要极高的数据刷新率时减少Chirp数量M小是唯一途径。此时可以用相位差法快速估算主要目标的速度。算法简化与快速验证在项目初期验证测速原理时用双Chirp方案写代码更简单逻辑更清晰有助于快速理解问题。5.3 一个简单的仿真代码示例理论说了这么多我们来看一小段Python仿真代码亲手“造”一个运动目标然后用双Chirp相位差法来测它的速度。这会让你对整个过程有最直观的感受。import numpy as np import matplotlib.pyplot as plt # 雷达参数设置以77GHz雷达为例 fc 77e9 # 载波频率 77 GHz c 3e8 # 光速 lamda c / fc # 波长约3.896mm Tc 50e-6 # Chirp间隔时间 50微秒 S 50e12 # Chirp斜率 50 MHz/us Fs 10e6 # ADC采样率 10 MHz Ns 256 # 每个Chirp采样点数 # 目标参数 R0 10.0 # 初始距离 10米 v 15.0 # 真实速度 15 m/s (朝向雷达为负) # 生成两个Chirp的中频信号 t np.arange(Ns) / Fs # 快时间轴 # 第一个Chirp tau1 2 * R0 / c f_if1 S * tau1 phi1 2 * np.pi * fc * tau1 # 初始相位 IF1 np.exp(1j * (2 * np.pi * f_if1 * t phi1)) # 第二个Chirp目标移动了 v*Tc R1 R0 v * Tc tau2 2 * R1 / c f_if2 S * tau2 phi2 2 * np.pi * fc * tau2 # 初始相位 IF2 np.exp(1j * (2 * np.pi * f_if2 * t phi2)) # 对每个Chirp做Range-FFT range_fft1 np.fft.fft(IF1) range_fft2 np.fft.fft(IF2) # 找到峰值所在的距离门这里简单用最大值实际中会用CFAR等算法 idx_peak np.argmax(np.abs(range_fft1)) # 提取该距离门上的复数峰值 S1 range_fft1[idx_peak] S2 range_fft2[idx_peak] # 计算相位差 (使用np.angle结果在[-pi, pi]之间) delta_phi np.angle(S2) - np.angle(S1) # 确保相位差在主值区间处理跨越2pi边界的情况 if delta_phi np.pi: delta_phi - 2 * np.pi elif delta_phi -np.pi: delta_phi 2 * np.pi # 根据相位差计算速度 v_measured (lamda * delta_phi) / (4 * np.pi * Tc) print(f目标真实速度: {v:.2f} m/s) print(f测量得到的相位差: {delta_phi:.4f} rad ({np.degrees(delta_phi):.2f} 度)) print(f根据相位差计算的速度: {v_measured:.2f} m/s) # 绘制第一个Chirp的距离谱 range_bins np.fft.fftfreq(Ns, 1/Fs) * c / (2 * S) # 将频率索引转换为距离 plt.figure() plt.plot(range_bins[:Ns//2], np.abs(range_fft1[:Ns//2])) plt.xlabel(距离 (米)) plt.ylabel(幅度) plt.title(第一个Chirp的距离谱 (Range-FFT)) plt.grid(True) plt.show()这段代码模拟了一个在10米外以15米/秒速度运动的点目标。运行后你会发现计算出的速度与设定的真实速度非常接近。你可以尝试修改v的值特别是将其设置为超过v_max lamda/(4*Tc)本例约19.5 m/s时观察相位差delta_phi如何发生折叠导致测速错误。这就是速度模糊的直观体现。6. 现实世界的挑战噪声、干扰与校准在理想的仿真环境里一切都很完美。但把雷达装上实际产品面对复杂的真实环境相位差测速会遇到一系列严峻挑战。这些挑战不解决再精妙的公式也是空中楼阁。6.1 相位噪声精度的天然敌人任何电子系统都存在噪声。对于雷达测相影响最大的是相位噪声。它来源于雷达本振LO信号的不纯净。理想的本振信号是完美的单频正弦波但实际的本振信号其频率和相位都有随机的微小抖动这就是相位噪声。相位噪声会直接“污染”我们测得的相位差 Δφ。即使目标完全静止两个Chirp测得的相位也不会完全相同会有一个随机的差值。这个随机差值的标准差就决定了速度测量的下限精度。相位噪声通常用频偏一定距离处的 dBc/Hz 来衡量是雷达芯片的一个关键指标。在软件上我们可以通过多次测量取平均来抑制随机相位噪声的影响。这也是为什么实际应用中即使只需要速度信息也往往会发射多个Chirp的原因之一——通过多个样本的统计平均可以更稳健地估计出真实的相位变化趋势。6.2 多目标与速度-距离耦合双Chirp相位差法有一个很强的假设在同一个距离门里只有一个运动目标。如果同一个距离门内存在两个速度不同的目标比如一辆车和旁边护栏的反射它们反射的信号会叠加在一起。此时我们测得的相位差是两个信号矢量和的相位它不等于任何一个目标的真实相位差会导致速度估计严重失真。这就是为什么在实际雷达中测速Doppler处理必须与测距Range处理和高分辨测角Beamforming紧密结合。我们需要先用距离和角度维度的信息将空间中的目标尽可能分离开来然后在每个被分离出来的“单元”内进行速度估计。先进的雷达算法如DBF、超分辨算法都是为了更好地实现这种空间分离。6.3 至关重要的系统校准相位测量对系统误差极其敏感。雷达的发射通道、接收通道、本振路径等任何微小的不对称或延迟都会在信号中引入一个固定的相位偏置。这个偏置如果不校准掉会被误认为是目标运动产生的相位差导致“零速”目标被检测出虚假速度。因此DCO直流偏移校准和相位校准是毫米波雷达生产或上电初始化时必不可少的步骤。校准通常在无反射的暗室或特定环境下进行目的是测量出系统固有的幅相误差并在后续的信号处理中将其补偿掉。TI的毫米波雷达芯片提供了完善的校准API但理解其必要性能帮助你在调试时判断一个问题究竟是算法错误还是校准未做好。我记得第一次自己做雷达板的时候没做校准就直接测速结果发现桌子上的静止纸盒居然显示有每秒0.5米的速度来回飘忽。排查了半天硬件最后才想起来是相位校准没做。运行了校准程序后纸盒的速度立刻归零那一刻对“校准”二字的重要性有了刻骨铭心的认识。7. 相位差测速的典型应用场景理解了原理和挑战我们来看看相位差及其扩展的Doppler处理在哪些实际场景中大放异彩。它的高灵敏度和直接测量微动的能力打开了许多传统传感器无法触及的应用大门。7.1 汽车雷达从自适应巡航到盲区监测这是毫米波雷达最广为人知的应用。在汽车自适应巡航控制ACC中雷达需要精确测量前方车辆的相对速度以控制本车加速或刹车。相位差测速提供了连续、直接的速度矢量比通过距离差分算出的速度更平滑、更及时。在盲区监测BSD和变道辅助LCA中雷达需要检测侧后方快速接近的车辆。这些场景下目标可能从极近距离快速切入对速度测量的实时性和准确性要求极高。通过优化Chirp参数如使用更短的T_c来提高最大不模糊速度相位差测速能可靠地完成这个任务。7.2 生命体征监测隔空感知心跳与呼吸这是相位差高灵敏度特性的绝佳体现。人的胸腔因呼吸和心跳会产生周期性的微动幅度从毫米到厘米级。传统摄像头或红外传感器容易受环境光、遮挡影响而毫米波雷达可以穿透衣物、薄被非接触地测量这些微动。在这个应用里我们关心的不是目标的绝对速度而是相位随时间变化的周期性模式。我们将雷达对准人的胸腔提取固定距离门对应人的位置上的相位随时间变化的序列。对这个相位序列进行时频分析比如做FFT可以在频谱上清晰地看到呼吸频率0.1-0.5 Hz和心跳频率0.8-2 Hz对应的峰值。我在参与一个睡眠监测项目时就用一个简单的79GHz雷达模块成功地从一米外检测到了人的呼吸暂停事件其波形与专业医用传感器记录的结果有很高的一致性。7.3 工业传感振动检测与液位测量在工业领域相位差测速化身为高精度的振动传感器。通过将雷达对准旋转的电机、涡轮机或桥梁结构分析其反射信号的相位变化可以提取出设备的振动频率和幅度用于预测性维护。另一个有趣的应用是液位测量。当雷达对准一个液体容器表面时液面的微小波动哪怕只有微米级也会引起相位变化。通过分析这些相位波动不仅可以非接触地测量平均液位甚至可以分析液体的性质如粘度或检测容器内是否有搅拌等动作。7.4 手势识别与智能家居在消费电子领域毫米波雷达正被用于手势识别。手部的运动速度、方向、轨迹都可以通过分析多个雷达接收通道上的相位差序列来精确捕捉。相比于摄像头雷达不受光线影响保护隐私相比于超声波雷达精度更高、范围更广。通过设计特定的手势模板和识别算法可以实现隔空滑动、点击、旋转等丰富的交互。从汽车到医疗从工厂到家庭相位差这颗隐藏在毫米波雷达信号中的“珍珠”正被工程师们用各种巧妙的算法串接起来创造出一个个感知世界的全新方式。它的核心魅力就在于将抽象的电磁波相位转化为了对我们物理世界运动最直观、最灵敏的度量。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…