stft_cola_check — ACOUSTICS transform op

• Data kinds: कोई नहीं → table (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)

• Call: import fullseye as fs; fs.ledger.stft_cola_check(window='hann', win=256, hop=None) (implementation को सीधे call करना हो तो import acoustics; acoustics.stft_cola_check(window='hann', win=256, hop=None), registry से लेना हो तो opsacoustics.get("stft_cola_check"))

उपयोग

क्या यह (window, hop) जोड़ी COLA को संतुष्ट करती है, और कितनी सटीकता से?

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

COLA — the analysis windows summing to a constant over the hop lattice — is what lets plain overlap-add work without a division. It is *not* required by istft, which is weighted, but it is required by anything that overlap-adds modified frames without renormalising, and getting it wrong produces a periodic amplitude ripple at rate/hop Hz that looks like tremolo rather than like a bug.

Returns a dict: cola (bool), constant (the mean of the overlap sum), max_deviation (absolute), relative_deviation, nola (bool), min_squared_sum, plus the geometry.

Measured (periodic windows, relative_deviation of the plain sum):

======== ==== ==== ================== ======== ====

window win hop relative_deviation constant COLA

======== ==== ==== ================== ======== ====

hann 256 128 4.44e-16 1.00 yes

hann 256 64 2.22e-16 2.00 yes

hann 256 85 1.48e-03 1.506 no

hamming 256 128 2.06e-16 1.08 yes

blackman 256 128 1.91e-01 0.84 no

blackman 256 64 3.97e-16 1.68 yes

boxcar 256 128 0.00e+00 2.00 yes

======== ==== ==== ================== ======== ====

The two blackman rows are the useful ones: the same window is COLA at hop = win/4 and 19 % off at hop = win/2, so "which window" is not the question — the pair is. The boxcar row was worth measuring rather than

assuming: a rectangular window at 50 % overlap sums to exactly 2 and is COLA, which is the opposite of the usual intuition about it. Note also that the constant is not 1 in general — an overlap-add that does not divide by it is off by a *gain*, which is the failure that looks like a working system.

Raises ValueError: unknown / all-zero window, hop outside [1, win], win outside [2, MAX_WINDOW].

उपयोग की विस्तृत guide

• acoustic_condition_monitoring family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• acoustic_condition_monitoring — py -3.11 examples/acoustic_condition_monitoring.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

istft

इसी category के (transform)

stft · istft


*Provenance: acoustics.py — ACOUSTICS operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.