FMCW 雷达乘员检测:多普勒呼吸放大与半静态人体感知——CPD 儿童检测的雷达方案(论文解读)

论文信息

  • 标题: Doppler-Domain Respiratory Amplification for Semi-Static Human Occupancy Detection Using Low-Resolution SIMO FMCW Radar
  • 发表: arXiv(2026年1月25日)
  • 核心贡献: 多普勒域呼吸信号放大技术,检测座舱内半静态人体(如 sleeping child)

1. 核心问题

1.1 CPD 儿童检测挑战

场景 难度 原因
活动儿童 ⭐ 易 运动多普勒信号强
静坐儿童 ⭐⭐ 中 微动信号弱
睡眠儿童 ⭐⭐⭐⭐⭐ 极难 仅呼吸信号,极微弱
空座椅 — 需排除误报

1.2 半静态人体检测

“半静态”定义: 人体几乎不动,仅有呼吸和心跳的微弱运动。

信号 强度 频率
肢体运动 强 (>1mm) 0.5-5 Hz
呼吸 弱 (~0.5mm) 0.2-0.5 Hz
心跳 极弱 (~0.1mm) 1-1.5 Hz

2. 多普勒呼吸放大技术

2.1 关键参数

参数 规格
雷达类型 FMCW SIMO(单发单收)
分辨率 低分辨率(低成本)
频段 60 GHz(座舱专用)
呼吸幅度 ~0.5 mm 胸壁位移
检测距离 0.5-2 m(座舱内)
检测时间 5-10 秒累积

2.2 信号处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import numpy as np
from scipy.signal import butter, filtfilt

class DopplerRespiratoryAmplifier:
"""
多普勒域呼吸放大器

论文:arXiv 2026-01
用于FMCW雷达半静态人体检测
"""

def __init__(self, fs=20, f_low=0.2, f_high=0.5):
"""
Args:
fs: 多普勒采样率 (Hz)
f_low: 呼吸频段下限 (Hz)
f_high: 呼吸频段上限 (Hz)
"""
self.fs = fs
# 带通滤波器(呼吸频段)
self.b, self.a = butter(4, [f_low/(fs/2), f_high/(fs/2)], btype='band')

def amplify_respiration(self, doppler_signal):
"""
放大呼吸信号

Args:
doppler_signal: (N_samples,) 多普勒域原始信号

Returns:
amplified: 放大后的呼吸信号
energy: 呼吸频段能量
"""
# 带通滤波提取呼吸频段
filtered = filtfilt(self.b, self.a, doppler_signal)

# 能量累积
energy = np.sum(filtered ** 2) / len(filtered)

# 放大(归一化到0-1)
if energy > 0:
amplified = filtered / np.max(np.abs(filtered))
else:
amplified = filtered

return amplified, energy

def detect_occupant(self, doppler_signal, threshold=1e-6):
"""
检测半静态乘员

Args:
doppler_signal: (N_samples,) 多普勒信号
threshold: 检测阈值

Returns:
is_occupied: bool
energy: 呼吸频段能量
"""
_, energy = self.amplify_respiration(doppler_signal)
is_occupied = energy > threshold
return is_occupied, energy


# 测试
if __name__ == "__main__":
detector = DopplerRespiratoryAmplifier(fs=20)

# 模拟空座椅信号(噪声)
np.random.seed(42)
noise = np.random.randn(200) * 0.001
occupied, energy = detector.detect_occupant(noise)
print(f"空座椅: 检测={'有人' if occupied else '空'}, 能量={energy:.2e}")

# 模拟呼吸信号(0.3Hz + 噪声)
t = np.arange(200) / 20
breathing = 0.01 * np.sin(2 * np.pi * 0.3 * t) + np.random.randn(200) * 0.001
occupied, energy = detector.detect_occupant(breathing)
print(f"呼吸人体: 检测={'有人' if occupied else '空'}, 能量={energy:.2e}")

3. Euro NCAP CPD 场景对照

Euro NCAP CPD 场景 雷达检测方案 可行性
后排睡眠儿童 60GHz MIMO雷达 + 呼吸放大 ✅
后排座椅空 呼吸能量低于阈值 ✅
儿童被遮蔽(毯子) 雷达穿透性好 ✅
宠物在座椅 呼吸频率不同(动物更快) ⚠️ 需区分

4. 对 IMS 的开发启示

优先级 任务 时间
P0 60GHz FMCW 雷达选型 2027 Q1
P0 呼吸放大算法实现 2027 Q1
P1 座舱多径干扰消除 2027 Q2
P1 儿童/成人/宠物区分 2027 Q2
P2 雷达+摄像头融合 CPD 2027 Q3

5. 总结

多普勒呼吸放大技术为 CPD 儿童检测提供了纯雷达方案,无需摄像头,天然隐私友好。低分辨率 SIMO 雷达成本低,适合量产部署。核心挑战在于座舱多径干扰和儿童/宠物区分。


参考来源:

  • Doppler-Domain Respiratory Amplification, arXiv(2026-01-25)
  • Euro NCAP 2026 CPD Protocol
  • TI IWR6843AOP 60GHz 雷达数据手册