feat: add standard full-band activity detectors
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
# 전 대역 활동 검출 모델
|
||||
|
||||
이 문서는 위치 추정 전에 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](https://www.rsp-italy.it/Electronics/Magazines/RCA%20Review/_contents/RCA%20Review%201968-09.pdf)를
|
||||
기준선으로 삼고, OS-CFAR는 다중 target/clutter 환경을 다룬
|
||||
[Rohling의 order-statistic CFAR](https://doi.org/10.1109/TAES.1983.309350)를
|
||||
따른다. 비균질 배경에서의 한계는
|
||||
[Gandhi–Kassam](https://doi.org/10.1109/7.7185), window leakage의 해석은
|
||||
[Harris](https://doi.org/10.1109/PROC.1978.10837)를 참고한다.
|
||||
|
||||
## Spectral flux onset
|
||||
|
||||
갑자기 시작되는 broadband 또는 tonal 변화를 보는 별도 지표는
|
||||
[Dixon의 linear-magnitude spectral
|
||||
flux](https://www.dafx.de/paper-archive/2006/papers/p_133.pdf)를 사용한다.
|
||||
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](https://www.cp.jku.at/research/papers/Boeck_etal_ISMIR_2012.pdf)를
|
||||
별도 단계로 쓸 수 있다. 현재 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 방법을
|
||||
구현하기 전까지 자동 결합하지 않는다.
|
||||
Reference in New Issue
Block a user