fix: expose physical aliasing and delayed arrivals

This commit is contained in:
2026-08-29 10:21:33 +09:00
parent e048ccbadc
commit de0053eae3
38 changed files with 3086 additions and 214 deletions
+16 -2
View File
@@ -1,3 +1,5 @@
import { describeFrequencyAliasing } from "/packages/acoustics-core/sampling.js";
export const DEFAULT_VIEW_PLANE = Object.freeze({
xMin: -0.6,
xMax: 0.6,
@@ -192,8 +194,20 @@ export function changeSignalType(source, type, firstAudioAssetId = "") {
}
}
export function describeSignal(signal) {
if (signal.type === "tone") return `${signal.frequency} Hz tone`;
export function describeSignal(signal, sampleRate) {
if (signal.type === "tone") {
if (!Number.isFinite(sampleRate)) return `${signal.frequency} Hz tone`;
const observation = describeFrequencyAliasing(signal.frequency, sampleRate);
const alias = observation.aliased
? ` → ADC ${observation.adcFrequencyHz} Hz alias`
: "";
const edge = observation.dcEdge
? " · DC phase-degenerate edge"
: observation.nyquistEdge
? " · Nyquist phase-degenerate edge"
: "";
return `${signal.frequency} Hz tone${alias}${edge}`;
}
if (signal.type === "noise") return `${signal.color} noise`;
if (signal.type === "asset") return `asset · ${signal.assetId || "미선택"}`;
return "알 수 없는 신호";