CSI_DATA 한 줄은 무엇인가?

Serial Monitor에 출력된 CSI_DATA는 ESP32-S3가 WiFi 패킷을 수신할 때마다 출력하는 CSI 로그다. 이번 작업에서 CSI_DATA가 출력되었다는 것은 ESP32 내부의 CSI callback이 정상적으로 동작했다는 의미다.

출력 형태는 설정과 코드 버전에 따라 조금씩 달라질 수 있지만, 일반적으로 다음과 같은 정보가 포함된다.

CSI_DATA,
role,
mac,
rssi,
rate,
channel,
timestamp,
csi_length,
[CSI Raw Data 배열]

각 필드의 의미

  • CSI_DATA: 이 줄이 CSI 데이터임을 나타내는 표시
  • role: 데이터를 출력한 보드의 역할. 현재 화면에서는 AP로 표시됨
  • mac: WiFi 패킷과 관련된 MAC 주소
  • rssi: 수신 신호 세기
  • rate: WiFi 전송 속도 관련 정보
  • channel: WiFi 채널 정보
  • timestamp: ESP32 내부 기준 시간 정보
  • csi_length: CSI Raw Data 배열의 길이
  • CSI Raw Data 배열: 실제 분석에 사용할 핵심 원본 데이터

I/Q 데이터란?

CSI Raw Data 배열은 단순한 숫자 목록처럼 보이지만, 실제로는 WiFi 신호의 복소수 정보를 담고 있다. 이 값은 I와 Q 성분으로 해석할 수 있다.

  • I: In-phase 성분
  • Q: Quadrature 성분

I/Q 데이터는 WiFi 신호의 세기와 위상 정보를 계산하기 위한 기본 재료다.

CSI Raw Data
    ↓
I / Q 값 분리
    ↓
Amplitude 계산
    ↓
Phase 계산
    ↓
움직임 패턴 분석

Amplitude 계산

Amplitude는 신호 세기의 변화를 의미한다. I와 Q 값이 있을 때 amplitude는 다음 식으로 계산할 수 있다.

Amplitude = sqrt(I² + Q²)

사람이 움직이면 WiFi 신호의 세기 변화가 발생하고, 이 변화가 amplitude 패턴에 반영될 수 있다. 초기 구현에서는 phase보다 amplitude 중심 분석이 더 직관적이고 안정적이므로 우선 활용하기 좋다.

Phase 계산

Phase는 신호의 위상 변화를 의미한다. I와 Q 값이 있을 때 phase는 다음 식으로 계산할 수 있다.

Phase = atan2(Q, I)

Phase는 움직임에 민감한 정보를 포함할 수 있지만, 노이즈나 보정 문제가 있을 수 있어 초기 단계에서는 amplitude 분석을 먼저 진행하고, 이후 고도화 단계에서 phase를 추가로 활용하는 방식이 적합하다.

현재 작업에서 확인한 의미

이번 작업의 Serial Monitor 화면에서 CSI_DATA가 반복적으로 출력되었다. 이는 다음 흐름이 실제로 성공했다는 의미다.

active_sta
    ↓
WiFi packet 송신

active_ap
    ↓
packet 수신
    ↓
ESP32 WiFi 드라이버가 CSI 생성
    ↓
CSI callback 실행
    ↓
CSI_DATA 출력

따라서 이번 결과는 CareWave의 WiFi Sensing 데이터 수집 단계가 실제 보드에서 동작했음을 보여준다.

← 2026.05.20 작업 페이지로 돌아가기