Files
micarrsim/docs/activity-detection.md
T

5.7 KiB
Raw Blame History

전 대역 활동 검출 모델

이 문서는 위치 추정 전에 ADC 대역에서 관측되는 신호 변화를 찾는 보조 분석의 의미와 한계를 정의한다. 검출기는 Scene의 음원 주파수·위치·개수를 입력으로 받지 않으며, 검출 결과를 위치 정답이나 분석 대역으로 자동 변환하지 않는다.

관측 경계

  • 입력은 사용자가 고른 물리 마이크 채널 하나의 시간 샘플이다. 여러 채널의 waveform 평균, power 평균, 최대값, 투표는 배열 형상과 TDOA에 따라 다른 결과를 만들기 때문에 기본 알고리즘에 포함하지 않는다.
  • 실수 ADC의 관측 범위는 (0\ldots F_s/2)이다. anti-alias filter가 없는 현재 시뮬레이션에서는 (F_s/2)를 넘는 아날로그 성분도 샘플링되지만, 검출기가 보는 것은 접힌 ADC bin이다.
  • 검출된 ADC bin만으로 아날로그 alias order, spectral inversion 전의 원 주파수, 음원 수 또는 위치를 식별할 수 없다. 배열 설계 비교에서는 같은 ADC bin에 대응하는 아날로그 주파수 가설을 별도 Experiment band로 명시해 비교한다.
  • 정확한 DC와 Nyquist bin은 실수 성분 하나뿐이어서 내부 complex FFT bin과 통계 모델이 다르다. CFAR의 CUT와 reference cell에서 제외한다.

CA-CFAR와 OS-CFAR

CFAR는 한 STFT frame 안의 좁은 spectral outlier를 찾는다. frame 또는 마이크 사이의 평균을 내지 않고 각 frame을 독립적으로 검사한다. 좌우 training cell을 각각 (R)개, guard cell을 각각 (G)개 쓰며 (N=2R)이다.

CA-CFAR는 training power의 평균 (Z)를 사용한다.

[ Y_b > \alpha Z,\qquad \alpha=N\left(P_{fa}^{-1/N}-1\right) ]

OS-CFAR는 training power를 오름차순 정렬한 뒤 명시한 1-based rank (k)의 (Y_{(k)})를 사용한다.

[ Y_b > \alpha Y_{(k)},\qquad P_{fa}=\prod_{j=0}^{k-1}\frac{N-j}{N-j+\alpha} ]

OS-CFAR multiplier는 이 단조식을 수치적으로 풀어 구한다. 다른 (N,k)의 값을 재사용하지 않는다. 두 방식은 독립 결과이며 합의, winner 선택 또는 위치 map 융합을 하지 않는다.

여기서 (P_{fa})는 CUT와 모든 training cell의 power가 독립·동일 평균의 지수 분포라는 square-law complex-Gaussian 모델 아래에서만 성립하는 tested CUT 하나당 명목 오경보율이다. posterior probability, confidence, frame 전체의 오경보율 또는 실측 보정값이 아니다. Hann window의 인접 bin 상관, 마이크 주파수 응답, colored noise, 잔향, noise-floor 경계와 off-bin leakage는 이 전제를 깨뜨린다. 결과에는 원 power, reference statistic, threshold, ratio와 model-derived-not-empirically-calibrated 상태를 그대로 남긴다.

full symmetric reference window를 만들 수 없는 edge bin은 reference 수를 줄이거나 wrap하지 않고 untested로 남긴다. 검출된 모든 bin을 반환하며 top-K, NMS, gap merge, persistence 또는 임의 대역 padding을 적용하지 않는다.

CA-CFAR는 Finn–Johnson의 adaptive threshold detector를 기준선으로 삼고, OS-CFAR는 다중 target/clutter 환경을 다룬 Rohling의 order-statistic CFAR를 따른다. 비균질 배경에서의 한계는 Gandhi–Kassam, window leakage의 해석은 Harris를 참고한다.

Spectral flux onset

갑자기 시작되는 broadband 또는 tonal 변화를 보는 별도 지표는 Dixon의 linear-magnitude spectral flux를 사용한다. Hamming-window STFT의 연속 frame에 대해

[ d[n,k]=\max(0,|X[n,k]|-|X[n-1,k]|),\qquad SF[n]=\sum_k d[n,k] ]

를 계산한다. per-bin 양의 차이와 합계 원값을 모두 보존하며 log compression, 전역 정규화, SuperFlux 일부 또는 마이크 융합을 섞지 않는다.

실시간 peak 선택은 Böck·Krebs·Schedl의 causal peak picker를 별도 단계로 쓸 수 있다. 현재 frame이 과거 (w_1) frame의 local maximum이고, 과거 (w_3) frame 평균보다 사용자가 지정한 (\delta)만큼 크며, 마지막 검출에서 (w_5) frame보다 멀 때 onset으로 표시한다. (\delta)는 확률이 아닌 운용 임계값이고 환경 데이터로 보정해야 한다. 논문에서 음악 데이터로 최적화한 값을 보편 default나 물리 상수로 취급하지 않는다.

Spectral flux는 onset novelty이지 지속 activity detector가 아니다. 정상 상태의 tone은 첫 상승 뒤 flux가 거의 0이 되며, slow attack은 여러 frame에 분산되어 threshold를 넘지 못할 수 있다. vibrato, tremolo와 확률적 noise 변화는 false trigger를 만들 수 있다. STFT frame을 모두 받은 뒤에야 판단할 수 있으므로 실제 availability latency는 최소 (N/F_s), 갱신 간격은 (H/F_s)다.

배열 설계에서의 사용 순서

  1. 물리 마이크 한 개와 검출 알고리즘·파라미터를 명시한다.
  2. raw ADC-bin 검출 또는 raw onset curve와 모든 설정을 비교한다.
  3. 관심 ADC bin을 선택하되, 이것을 주파수 정답이나 bandwidth 추정으로 부르지 않는다.
  4. baseband 또는 명시한 초과-Nyquist 아날로그 가설을 Experiment band로 추가한다.
  5. 같은 Scene·Array·가설에서 DAS, PHAT, GCC-PHAT, MUSIC의 raw map과 실패 양상을 비교한다. 서로 다른 band의 map은 알려진 별도 wideband 방법을 구현하기 전까지 자동 결합하지 않는다.