📶
WiFi CSI로 위치 분석은 어떻게 동작하나?
단일 WiFi 신호의 물리 계층 데이터를 레이더처럼 활용
일반적인 WiFi 신호 세기(RSSI)는 전체 신호 강도 하나만 측정하지만, 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
Fresnel 영역 모델링으로 인체와 신호의 물리적 상호작용 계산
5
FFT 분석으로 호흡(0.1~0.5Hz)·심박(0.8~2.0Hz) 주파수 대역 분리
6
AI(Attention + Graph 알고리즘)가 노이즈에서 인체 신호만 분리, 위치·행동 추정
장점
- ✓ 카메라 없이 프라이버시 보호
- ✓ 벽/장애물 뒤에서도 감지 가능
- ✓ 별도 착용 디바이스 불필요
- ✓ 호흡·심박 등 생체 신호까지 측정
- ✓ 기존 WiFi 인프라 활용 가능
단점
- ✗ 일반 공유기로는 불가 (CSI 추출 가능한 특수 펌웨어 필요)
- ✗ 다수의 ESP32 노드 배치 필요 (4~6개)
- ✗ 환경 변화(가구 이동 등)에 재보정 필요
- ✗ AI 모델 학습에 초기 데이터 수집 시간 소요
- ✗ RSSI 대비 구현 복잡도 높음
사용 사례
스마트홈 재실 감지 (조명/냉난방 자동 제어)
독거 노인 안전 모니터링 (낙상 감지)
침입 탐지 보안 시스템
수면 모니터링 (비접촉 호흡/심박)
스마트 오피스 공간 활용도 분석