spectrogram — ONED signal op

• Data kinds: signal → image2d

• Call: import fullseye as fs; fs.ledger.spectrogram(x, rate=1.0, win=256, hop=None) (implementation को सीधे call करना हो तो import dsp; dsp.spectrogram(x, rate=1.0, win=256, hop=None), registry से लेना हो तो ops1d.get("spectrogram"))

• Ledger के ज़रिए return value: fullseye.ledger.spectrogram(...) केवल घोषित out type image2d का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.spectrogram.raw(...) का उपयोग करें, या dsp.spectrogram को सीधे call करें।

• मूल function का return: (freqs, times, S) — S が本体

उपयोग

STFT magnitude spectrogram -> (freqs, times, S), जहाँ S का shape (n_freqs, n_frames) है। Hann window वाला; *hop* का default win//2 है।

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

Same raw convention as spectrum, but a different divisor. Each column is the unnormalised |rfft(frame * hann(win))|, so it is not an amplitude either — and dividing by 2/win is *wrong* here, because the Hann window has already thrown away part of the signal. The correct one-sided amplitude conversion divides by the window's coherent gain::

w = np.hanning(win)

amp = S * (2.0 / w.sum()) # bins 1 .. win/2-1; DC / Nyquist: 1/w.sum()

Measured on a unit sine at a bin centre (rate = 16000 Hz, 1000 Hz, amplitude exactly 1.0, win = 256): the raw column peak is 63.7497786196906; * 2/win gives 0.49804514546633283 (too small by exactly the Hann coherent gain sum(w)/win = 0.498046875), while * 2/sum(w) gives 0.9999965273676957. Only the second one is the amplitude that was actually in the signal.

Peak *positions*, frame-to-frame ratios and any dB *difference* are unaffected by either factor. This function returns magnitudes only — the phase is discarded, so it cannot be inverted; use acoustics.stft / acoustics.istft for a round-trip.

संदर्भ (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 जुड़ता है (image2d को input के रूप में लेते हैं)

—

इसी category के (signal)

lowpass · highpass · bandpass · envelope · rms · local_std · quantize · companding_mu_law


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

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