📶

WiFi CSIによる位置分析はどう動くのか?

単一WiFi信号の物理層データをレーダーのように活用

一般的なWiFi信号強度(RSSI)は全体の信号強度1つだけを測定しますが、CSI(Channel State Information)は各サブキャリア(56個)別の振幅と位相データをすべて測定します。WiFi信号が空間を移動する際に人体に反射・吸収・回折しますが、CSIはこの変化をミリメートルレベルで検知できます。ESP32-S3のようなCSI対応チップを搭載したノード4~6個を部屋に配置すると、N×(N-1)個のリンクが形成され多角的に空間をスキャンします。チャネル1、6、11で同時に収集すると3×56=168個の仮想サブキャリアで空間解像度を最大化します。RuViewプロジェクトがこの技術のオープンソース実装です。

構造ダイアグラム

RSSI vs CSI: 情報量の違い
📊
RSSI(一般WiFi)
信号強度1個の値
-67 dBm
vs
📈
CSI (ESP32-S3)
56サブキャリア x 振幅+位相
168データポイント
ノード配置 & メッシュリンク
📡
Node 1
ch 1,6,11
📡
Node 2
|
🚶
反射/吸収/回折
|
📡
Node 3
N x (N-1) links
📡
Node 4
信号処理パイプライン
CSI収集
168 data points
Hampel
外れ値除去
SpotFi
到来角(AoA)
Fresnel
物理モデリング
FFT
周波数分析
AI (RuVector)
Attention + Graph
検知可能な情報
📍
位置追跡
cm単位
🏃
動き検知
行動分類
🫁
呼吸
0.1~0.5 Hz
💓
心拍
0.8~2.0 Hz
🚨
転倒検知
急激な変化
核心原理: 人が息をする時に胸郭が数mm動き、これがWiFi位相変化として現れる

動作フロー

1

ESP32-S3ノード4~6個を部屋に配置、互いにWiFi信号を送受信しN×(N-1)リンクを形成

2

各リンクでチャネル1、6、11のCSIデータ(56サブキャリア × 振幅+位相)をリアルタイム収集

3

Hampelフィルタで異常値除去、SpotFiアルゴリズムで信号到来角(AoA)推定

4

フレネル領域モデリングで人体と信号の物理的相互作用を計算

5

FFT分析で呼吸(0.1~0.5Hz)・心拍(0.8~2.0Hz)周波数帯域を分離

6

AI(Attention + Graphアルゴリズム)がノイズから人体信号のみを分離、位置・行動を推定

メリット

  • カメラなしでプライバシー保護
  • 壁/障害物の背後でも検知可能
  • 別途ウェアラブルデバイス不要
  • 呼吸・心拍など生体信号まで測定
  • 既存WiFiインフラの活用が可能

デメリット

  • 一般ルーターでは不可(CSI抽出可能な特殊ファームウェアが必要)
  • 多数のESP32ノード配置が必要(4~6個)
  • 環境変化(家具移動など)に再キャリブレーションが必要
  • AIモデル学習に初期データ収集時間が必要
  • RSSI比で実装複雑度が高い

ユースケース

スマートホーム在室検知(照明/空調自動制御) 独居高齢者安全モニタリング(転倒検知) 侵入検知セキュリティシステム 睡眠モニタリング(非接触呼吸/心拍) スマートオフィス空間活用度分析

参考資料