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 125 126 127 128 129 130 131 132 133 134
| """ UWB vs 60GHz 穿透性物理仿真
波长决定穿透性: - UWB (~7GHz, λ≈4.3cm): 可穿透座椅/毯子 - 60GHz (λ≈5mm): 被座椅/毯子阻挡
衰减模型: 衰减 = α * d * f² 其中 α 为材料衰减系数, d 为厚度, f 为频率 """
import numpy as np
def calculate_attenuation(frequency_ghz: float, material: str, thickness_cm: float) -> dict: """ 计算雷达信号穿透材料的衰减 Args: frequency_ghz: 频率 (GHz) material: 材料 thickness_cm: 厚度 (cm) """ material_coeff = { 'air': 0.0, 'cotton': 0.02, 'wool_blanket': 0.05, 'seat_foam': 0.08, 'seat_leather': 0.12, 'plastic': 0.15, 'metal': 10.0, } alpha = material_coeff.get(material, 0.05) attenuation = alpha * thickness_cm * (frequency_ghz ** 1.5) detectable = attenuation < 40 return { 'frequency': frequency_ghz, 'material': material, 'thickness': thickness_cm, 'attenuation_db': round(attenuation, 2), 'detectable': detectable }
print("=" * 70) print("UWB vs 60GHz 穿透性对比") print("=" * 70)
materials = [ ('wool_blanket', 2.0, '婴儿毯 (2cm)'), ('seat_foam', 5.0, '座椅海绵 (5cm)'), ('seat_leather', 1.0, '座椅皮革 (1cm)'), ('cotton', 1.0, '棉衣物 (1cm)'), ('plastic', 0.5, '塑料件 (0.5cm)'), ]
print(f"\n{'场景':<25s} {'UWB(7GHz)衰减':>15s} {'60GHz衰减':>15s} {'UWB':>6s} {'60GHz':>6s}") print("-" * 70)
for mat, thick, label in materials: uwb = calculate_attenuation(7.0, mat, thick) fmcw = calculate_attenuation(60.0, mat, thick) print(f"{label:<25s} {uwb['attenuation_db']:>12.1f} dB {fmcw['attenuation_db']:>12.1f} dB" f" {'✅' if uwb['detectable'] else '❌':>5s} {'✅' if fmcw['detectable'] else '❌':>5s}")
print(f"\n{'='*70}") print("CPD 关键场景检测能力") print(f"{'='*70}")
scenarios = [ {"name": "后排座椅儿童(无遮挡)", "attenuation_uwb": 5, "attenuation_60": 15}, {"name": "毯下婴儿", "attenuation_uwb": 15, "attenuation_60": 45}, {"name": "座椅后方儿童", "attenuation_uwb": 20, "attenuation_60": 55}, {"name": "后备箱儿童", "attenuation_uwb": 25, "attenuation_60": 60}, {"name": "安全座椅+毯子", "attenuation_uwb": 22, "attenuation_60": 50}, ]
print(f"\n{'场景':<25s} {'UWB衰减':>10s} {'60GHz衰减':>10s} {'UWB检测':>8s} {'60GHz':>8s}") print("-" * 65) for s in scenarios: uwb_ok = s['attenuation_uwb'] < 40 fmcw_ok = s['attenuation_60'] < 40 print(f"{s['name']:<25s} {s['attenuation_uwb']:>8} dB {s['attenuation_60']:>8} dB" f" {'✅' if uwb_ok else '❌':>7s} {'✅' if fmcw_ok else '❌':>7s}")
print(f"\n{'='*70}") print("UWB 双模架构优势") print(f"{'='*70}") print(""" ┌────────────────────────────────────────────────────┐ │ UWB 双模: 数字钥匙 + 雷达感知 │ ├────────────────────────────────────────────────────┤ │ │ │ 模式1: 测距 (Ranging) │ │ ├── 用途: CCC 数字钥匙, 安全进入 │ │ ├── 原理: 两个UWB设备间距离测量 │ │ └── 标准: IEEE 802.15.4ab / FiRa │ │ │ │ 模式2: 雷达 (Radar) │ │ ├── 用途: CPD, 乘员监测, 手势控制 │ │ ├── 原理: 发射脉冲→分析反射CIR │ │ └── 优势: 同一芯片, 无需额外传感器 │ │ │ │ BOM 影响: │ │ ┌──────────────┬──────────────┬──────────┐ │ │ │ 传统方案 │ UWB双模方案 │ 节省 │ │ │ ├──────────────┼──────────────┼──────────┤ │ │ │ UWB锚点×4 │ UWB锚点×4 │ - │ │ │ │ 60GHz雷达×2 │ (复用UWB) │ ~$20 │ │ │ │ 摄像头×1 │ 摄像头×1 │ - │ │ │ │ 总成本 │ 总成本 │ 节省~$20 │ │ │ │ ~$80 │ ~$60 │ -25% │ │ │ └──────────────┴──────────────┴──────────┘ │ │ │ │ CIR 感知管道: │ │ 发射UWB脉冲 → 接收反射 → CIR分析 → 分类 │ │ ↓ │ │ ┌────────┴────────┐ │ │ │ 存在检测 │ │ │ │ 呼吸频率 │ │ │ │ 手势识别 │ │ │ │ 乘员位置 │ │ │ └─────────────────┘ │ └────────────────────────────────────────────────────┘ """)
|