Calterah 6T6R 60GHz AiP 雷达:Euro NCAP 2026 CPD 量产级方案深度拆解

核心观点: Calterah(加特兰)Lancang-USRR 采用业界首个 6T6R AiP 封装 60GHz 雷达芯片,36 个虚拟通道实现 4cm 距离分辨率,专为 Euro NCAP 2026 CPD 场景设计。本文从芯片架构、天线集成、信号处理到 CPD 算法链路进行深度拆解,并给出 IMS 集成路线。

1. 背景:Euro NCAP 2026 CPD 硬件门槛

Euro NCAP 2026 协议要求 CPD(Child Presence Detection)在以下场景中实现近零误报检测:

场景编号 描述 检测要求
CPD-01 后排无人的基线 无误报
CPD-02 后排成人正常乘坐 不误报为儿童
CPD-03 儿童在后排座椅睡着 ≤10s 检测到
CPD-04 儿童被毛毯覆盖 ≤30s 检测到
CPD-05 婴儿在后排-facing 儿童座椅 ≤10s 检测到
CPD-06 座椅放置重物(书包等) 不误报为活体

关键挑战: 传统 3T4R(12 通道)雷达的角度分辨率不足,难以区分”座椅上的书包”和”被毯子盖住的儿童”,导致误报率偏高。

2. Calterah Lancang-USRR 芯片架构

2.1 核心规格

参数 规格 对比 3T4R
频段 57-64 GHz(60GHz) 相同
带宽 最大 3.6 GHz 相同
距离分辨率 ~4cm(150GHz chirp) 相同
发射天线 6TX 3TX
接收天线 6RX 4RX
虚拟通道数 36(6T×6R MIMO) 12
天线集成方式 AiP(Antenna-in-Package) PCB 板载天线
封装尺寸 与 4T4R 无 AiP 模块相当 —

2.2 AiP 技术解析

AiP 核心优势:

优势项 技术说明 OEM 收益
超紧凑集成 天线在封装内,无需 PCB 天线区域 模块体积缩小 40%+
一致性 RF 性能 封装阶段统一校准天线 批量一致性 ≥99%
简化设计 OEM 无需设计复杂 PCB 天线 开发周期缩短 2-3 月
系统成本 芯片单价略高,但整体 BOM 下降 系统成本降低 20-30%

2.3 6T6R MIMO 虚拟阵列

6T6R 通过 MIMO(多输入多输出)技术生成 36 个虚拟通道:

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
import numpy as np

def mimo_virtual_array(ntx: int, nrx: int) -> np.ndarray:
"""
计算 MIMO 虚拟阵列位置

Args:
ntx: 发射天线数
nrx: 接收天线数

Returns:
virtual_positions: 虚拟天线位置数组
"""
# TX 间距为 d_tx,RX 间距为 d_rx
# 虚拟阵列位置 = ntx * pos_rx + pos_tx
d = 0.5 # 半波长间距 (λ/2 at 60GHz ≈ 2.5mm)

tx_positions = np.arange(ntx) * d * nrx # TX 间距放大 nrx 倍
rx_positions = np.arange(nrx) * d

virtual_positions = []
for tx in tx_positions:
for rx in rx_positions:
virtual_positions.append(tx + rx)

return np.array(sorted(virtual_positions))

# 对比
array_6t6r = mimo_virtual_array(6, 6)
array_3t4r = mimo_virtual_array(3, 4)
array_4t4r = mimo_virtual_array(4, 4)

print(f"6T6R 虚拟通道数: {len(array_6t6r)}")
print(f"3T4R 虚拟通道数: {len(array_3t4r)}")
print(f"4T4R 虚拟通道数: {len(array_4t4r)}")
print(f"6T6R vs 3T4R 角度分辨率提升: {len(array_6t6r)/len(array_3t4r):.1f}x")
print(f"6T6R vs 4T4R 角度分辨率提升: {len(array_6t6r)/len(array_4t4r):.1f}x")

# 输出:
# 6T6R 虚拟通道数: 36
# 3T4R 虚拟通道数: 12
# 4T4R 虚拟通道数: 16
# 6T6R vs 3T4R 角度分辨率提升: 3.0x
# 6T6R vs 4T4R 角度分辨率提升: 2.2x

3. CPD 信号处理链路

3.1 从原始 ADC 到生命体征检测

3.2 杂波抑制(Clutter Rejection)

CPD 最核心的技术挑战是从复杂的车内反射中分离出儿童的微弱呼吸信号:

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import numpy as np
from scipy import signal as sig

def static_clutter_removal(range_profile: np.ndarray) -> np.ndarray:
"""
静态杂波去除

消除来自座椅、车身、天花板等静态反射体的信号,
只保留动态成分(如呼吸引起的微小位移)。

Args:
range_profile: 距离向 FFT 结果, shape=(n_chirps, n_range_bins)

Returns:
dynamic_profile: 去除静态杂波后的动态距离剖面
"""
# 方法1: 均值相消
static_component = np.mean(range_profile, axis=0, keepdims=True)
dynamic_profile = range_profile - static_component

# 方法2: 高通滤波(可选,进一步提升)
# 对每个距离门沿 chirp 维度做差分
dynamic_profile = np.diff(dynamic_profile, axis=0, prepend=dynamic_profile[:1])

return dynamic_profile


def extract_breathing_signal(
phase_data: np.ndarray,
fps: int = 20,
freq_min: float = 0.1,
freq_max: float = 1.0
) -> np.ndarray:
"""
从相位数据中提取呼吸信号

Args:
phase_data: 解卷绕后的相位序列, shape=(n_samples,)
fps: 帧率(chirp 速率)
freq_min: 呼吸频率下限 (Hz), 默认 0.1 (6次/分)
freq_max: 呼吸频率上限 (Hz), 默认 1.0 (60次/分)

Returns:
breathing_signal: 滤波后的呼吸信号
"""
nyquist = fps / 2
b, a = sig.butter(4, [freq_min/nyquist, freq_max/nyquist], btype='band')
breathing_signal = sig.filtfilt(b, a, phase_data)

return breathing_signal


def detect_vital_signs(
breathing_signal: np.ndarray,
fps: int = 20,
threshold: float = 0.5
) -> dict:
"""
检测生命体征

Args:
breathing_signal: 滤波后的呼吸信号
fps: 帧率
threshold: 检测阈值(微伏级别位移)

Returns:
result: 检测结果
"""
# FFT 分析频率成分
freqs = np.fft.rfftfreq(len(breathing_signal), 1/fps)
fft_mag = np.abs(np.fft.rfft(breathing_signal))

# 在呼吸频带内寻找峰值
mask = (freqs >= 0.1) & (freqs <= 1.0)
peak_idx = np.argmax(fft_mag[mask])
peak_freq = freqs[mask][peak_idx]
peak_amp = fft_mag[mask][peak_idx]

# 判断是否为活体
is_alive = peak_amp > threshold

return {
'is_alive': is_alive,
'breathing_rate': peak_freq * 60, # 次/分钟
'signal_amplitude': peak_amp,
'confidence': min(peak_amp / (threshold * 2), 1.0)
}


# 完整 CPD 检测流程测试
if __name__ == "__main__":
np.random.seed(42)

# 模拟 60GHz 雷达数据
n_chirps = 200 # 10秒 @ 20fps
n_range_bins = 64

# 场景1: 座椅无人(只有静态杂波)
range_data_empty = np.random.randn(n_chirps, n_range_bins) * 0.1 + 5.0

# 场景2: 儿童在座椅上(有呼吸信号)
t = np.linspace(0, 10, n_chirps)
breathing = 0.3 * np.sin(2 * np.pi * 0.35 * t) # 21次/分呼吸
range_data_child = np.random.randn(n_chirps, n_range_bins) * 0.1 + 5.0
range_data_child[:, 30] += breathing # 距离门30处有呼吸信号

# 场景3: 毛毯覆盖儿童(呼吸信号减弱)
range_data_covered = range_data_child.copy()
range_data_covered[:, 30] *= 0.3 # 信号衰减 70%

for name, data in [("无人", range_data_empty),
("儿童", range_data_child),
("毛毯覆盖", range_data_covered)]:
dynamic = static_clutter_removal(data)
phase = np.angle(np.fft.fft(dynamic, axis=0)[:, 30])
phase = np.unwrap(phase)
breathing = extract_breathing_signal(phase, fps=20)
result = detect_vital_signs(breathing, fps=20, threshold=0.5)

print(f"\n场景: {name}")
print(f" 检测到活体: {result['is_alive']}")
print(f" 呼吸频率: {result['breathing_rate']:.1f} 次/分")
print(f" 信号幅度: {result['signal_amplitude']:.3f}")
print(f" 置信度: {result['confidence']:.1%}")

3.3 6T6R 对 CPD 的具体提升

技术指标 3T4R (12ch) 4T4R (16ch) 6T6R (36ch) 提升说明
角度分辨率 ~15° ~12° ~7° 精确定位到具体座椅位置
SNR 基线 +1.2dB +3.5dB 更弱呼吸信号可检测
多目标分离 模糊 一般 清晰 区分后排左右座椅
俯仰角感知 有限 有限 支持 检测地板上的儿童
毛毯穿透 可检测 可检测 可靠检测 衰减余量更大

4. mmWave vs UWB:CPD 方案选择

Calterah 同时布局了 mmWave 和 UWB 两条路线,两者定位不同:

维度 60GHz mmWave UWB
带宽 3.6 GHz ~500 MHz
距离分辨率 ~4cm ~30cm
角度分辨率 MIMO 阵列支持 有限(1T2R/2T3R)
穿透性 较低(高频衰减) 较好(低频穿透)
功耗 中等(~200mW) 低功耗(~50mW)
活体检测精度 高(相位级精度) 中等
成本 中等 低
Euro NCAP 2026 适配 核心方案 辅助方案

Calterah 定位:

  • mmWave:CPD 核心传感器,满足 Euro NCAP 2026 高可靠性要求
  • UWB:低功耗存在检测,用于常驻待机模式(车辆锁定后低功耗扫描)

5. Murata + Smart Eye 融合架构对比

与 Calterah 的单芯片方案对比,Murata 联合 Smart Eye 展示了另一种融合路线:

维度 Calterah 6T6R 单芯片 Murata 60GHz + 摄像头融合
架构 雷达为主 雷达 + 光学 AI 融合
摄像头 不需要 需要 1-2 个车内摄像头
低光环境 不受影响 摄像头降级,雷达补盲
遮挡处理 雷达穿透毛毯 摄像头受阻,雷达补盲
BOM 成本 单芯片 + PCB 雷达模块 + 摄像头模组 + ISP
功能覆盖 CPD + OMS(基础) DMS + OMS + CPD(全功能)
软件可扩展 有 通过 OTA 扩展(手势识别、生命体征等)
竞品对标 Bosch / Continental Bosch / Aptiv

IMS 开发启示: 如果系统已有 DMS 摄像头,Murata 方案可以复用现有摄像头实现 CPD + OMS 全功能,而 Calterah 方案适合独立 CPD 模块(无摄像头依赖)。

6. IMS 集成路线建议

6.1 硬件选型矩阵

IMS 配置 CPD 传感器 DMS 传感器 总 BOM 适用车型
基础版 Calterah 6T6R mmWave 摄像头 DMS ¥800-1200 中端车
融合版 Murata 60GHz + 摄像头 共用 ¥1200-1800 高端车
经济版 UWB 存在检测 摄像头 DMS ¥500-800 入门车

6.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
# IMS CPD 模块集成伪代码(概念设计)

class CPDModule:
"""CPD 模块接口"""

def __init__(self, radar_config: dict):
self.radar = RadarSensor(
chip="calterah_lancang_usrr",
frequency=60e9, # 60 GHz
bandwidth=3.6e9, # 3.6 GHz
ntx=6, nrx=6,
fps=20
)
self.clutter_filter = ClutterRemoval(method="mean_subtract")
self.vital_detector = VitalSignDetector(
freq_range=(0.1, 1.0), # Hz
min_amplitude=0.5, # mm 微位移
min_confidence=0.8
)
self.seat_map = SeatMapping() # 距离门→座椅位置映射

def run_cpd_cycle(self) -> dict:
"""执行一次 CPD 检测周期"""
# 1. 获取雷达原始数据
raw_data = self.radar.acquire(n_chirps=200)

# 2. 信号处理
range_profile = self.radar.range_fft(raw_data)
dynamic = self.clutter_filter.remove(range_profile)
phase = self.radar.extract_phase(dynamic)
breathing = self.vital_detector.filter(phase)

# 3. 生命体征检测
result = self.vital_detector.detect(breathing)

# 4. 座椅定位
seat = self.seat_map.locate(result.range_bin)

return {
'detection': result.is_alive,
'seat_position': seat,
'breathing_rate': result.breathing_rate,
'confidence': result.confidence,
'timestamp': self.radar.timestamp
}

def get_cpd_status(self) -> dict:
"""获取 CPD 状态(供 IVI/HMI 显示)"""
return {
'status': 'monitoring', # monitoring | alert | idle
'rear_left': self._check_seat('rear_left'),
'rear_right': self._check_seat('rear_right'),
'rear_center': self._check_seat('rear_center'),
}

6.3 Euro NCAP 2026 测试场景对照

场景 Calterah 6T6R 预期表现 测试要点
CPD-01 空座基线 ✅ 静态杂波滤除后无误报 测试 24h 误报率
CPD-02 成人乘坐 ✅ 体型差异可区分 多体型被试
CPD-03 儿童睡眠 ✅ 10s 内检测(21次/分呼吸) 3-6 岁儿童
CPD-04 毛毯覆盖 ⚠️ 信号衰减 70%,6T6R 余量足够 厚毛毯测试
CPD-05 婴儿座椅 ✅ 距离门可区分 rear-facing 安装
CPD-06 重物 ✅ 无呼吸信号,不误报 10kg 书包

7. 总结与开发启示

核心发现

  1. 6T6R 是 CPD 量产新标准:36 个虚拟通道带来 3 倍角度分辨率提升和 3.5dB SNR 增益,是 Euro NCAP 2026 CPD 场景的可靠硬件基础
  2. AiP 是降本关键:天线封装集成简化 OEM 设计,整体系统成本下降 20-30%
  3. mmWave + UWB 双路线:mmWave 主打高精度 CPD,UWB 覆盖低功耗待机
  4. 融合方案是趋势:Murata + Smart Eye 的雷达+摄像头融合方案可覆盖 DMS+OMS+CPD 全功能

IMS 开发优先级

优先级 任务 时间节点
P0 评估 Calterah Lancang-USRR 开发套件 2026 Q4
P0 搭建 CPD 信号处理链路(Range-FFT → 杂波抑制 → 相位提取 → 呼吸检测) 2026 Q4
P1 Euro NCAP CPD 6 场景测试验证 2027 Q1
P1 座椅距离门标定与映射 2027 Q1
P2 UWB 低功耗待机模式开发 2027 Q2
P2 雷达+摄像头融合架构评估 2027 Q2

供应链联系

厂商 角色 联系人/渠道
Calterah(加特兰) 60GHz 雷达 SoC 上海总部,韩国市场拓展中
Murata 雷达+摄像头融合模组 日本,Smart Eye 合作
TI IWR6843AOP 替代方案 美国,60GHz 4T4R
NovelIC ACAM 方案 欧洲,CPD 专用

参考来源:

  • Calterah VP Wang Binbin 采访(e4ds.com,2026-09)
  • Murata + Smart Eye InCabin 展示(auto-innovations.net,2026-09)
  • Euro NCAP 2026 CPD Protocol 官方文档