docs: explain receive beam pattern workflow
This commit is contained in:
@@ -76,6 +76,41 @@ Tone과 band의 검증 범위는 0–1 MHz다. 이는 Nyquist cutoff가 아니
|
||||
마이크 응답과 희소 경로 모델의 명시적 정밀도 범위다. public sampling helper는 비정상적으로
|
||||
작은 sample rate에서도 최대 513개 fold segment를 넘기 전에 거부한다.
|
||||
|
||||
## 수신 빔 패턴 API
|
||||
|
||||
`beam-pattern.js`의 `computeReceiveBeamPattern()`은 Scene과 ADC 없이 microphone geometry의
|
||||
narrowband far-field conventional delay-and-sum receive array factor를 계산합니다.
|
||||
|
||||
~~~js
|
||||
import { computeReceiveBeamPattern } from "./packages/acoustics-core/beam-pattern.js";
|
||||
|
||||
const pattern = computeReceiveBeamPattern({
|
||||
array,
|
||||
frequencyHz: 49_125,
|
||||
speedOfSound: 343,
|
||||
cut: "xz",
|
||||
steeringAngleDeg: 0,
|
||||
sampleCount: "auto",
|
||||
dbFloor: -60,
|
||||
});
|
||||
~~~
|
||||
|
||||
파수는 `2π frequencyHz / speedOfSound`이며 `frequencyHz`를 temporal ADC alias로 접지 않습니다.
|
||||
결과는 `1/M` weight의 raw normalized complex·power·dB와 별도의 display-floor buffer를 보존합니다.
|
||||
이상적으로 보정된 무지향성 point microphone의 geometry-only 응답이므로
|
||||
`sensitivityDb`, `phaseOffsetDeg`, `frequencyResponse`, element directivity, 방과 near-field는
|
||||
포함하지 않습니다.
|
||||
|
||||
XZ는 0°=+Z/90°=+X, YZ는 0°=+Z/90°=+Y, XY는 0°=+X/90°=+Y인 great-circle 단면입니다.
|
||||
투영 maximum baseline `D`와 angle 수 `N`에서
|
||||
`2 k D sin(π/N) ≤ π/8` phase-step criterion을 검사합니다. 이는 모든 lobe 검출 보장이 아니라
|
||||
metric sampling 정책입니다. 미충족 시 raw samples만 반환하고 HPBW와 sampled peak 해석을
|
||||
`resolution-unresolved`로 남깁니다. HPBW도 sampled half-power bracket이 있을 때만 raw analytic
|
||||
response를 48회 이분하며, 비상수 all-above grid를 360° 폭으로 만들지 않습니다.
|
||||
|
||||
마이크 수·baseline pair·angular sample·phasor evaluation은 큰 반복과 할당 전에 상한을 검사합니다.
|
||||
portable 결과 계약과 상태별 의미는 [수신 빔 패턴 문서](../../docs/beam-pattern.md)를 참고하세요.
|
||||
|
||||
## 위치 추정 알고리즘
|
||||
|
||||
`localization-algorithms.js`의 registry와 `localization.js`의 generic API가 다음 네 경로를
|
||||
|
||||
Reference in New Issue
Block a user