Spectral analysis¶
FFTs, correlators, power spectra and spectrograms.
Python module doppler.spectral. Area: Spectral.
Classes and functions¶
Guide pages in this domain¶
- Delay-Doppler Search — where a code is and how fast it is rotating: one map, batches of frames, and the hypothesis bank for an unknown carrier, with
DelayDoppler - Power Spectra & Measurements — PSD estimation, tone and NPR measurement
- Streaming Spectrograms — any-size chunks in, every row of a waterfall out, the same rows however the stream is cut (C and Python)
Gallery pages in this domain¶
- 2-D Acquisition Grid — GPS/CDMA Doppler × code-phase search with Šidák-corrected CFAR.
- A Streaming Spectrogram — a chirp and a tone as one row per 64 samples, in power and in dB, on a DC-centred axis.
- Correlation and Detection — coherent integration, 2-D template matching, streaming CFAR.
- Delay-Doppler Search — a delay-Doppler map, a coarse carrier bank and the refine that recovers its straddle loss, plus a batch of hypotheses in one call.
- Four WCDMA Carriers — PSD, band_power, AccTrace — four RRC channels measured with
PSDandAccTrace.
Design pages in this domain¶
- Corr2D batches: many maps in one call — many frames in one call: every map, or a coherent, power-sum, power-max or per-map-peak reduction, on one C fold loop that never touches the dwell
- Corr2D hypothesis bank: operation order — pre-design study for #2683/#2670: which stages a bank of carrier and rate hypotheses shares, fractional carrier offsets mixed per fraction on an L = 4 grid, and the cost each ordering saves, timed in C
- Corr2D: decoupled (interpolated) inverse length — decoupled, pffft-friendly inverse FFT size + free sub-bin interpolation
- Spectral & Measurement API Map — module dependency graph
- The Spectrogram — chunks in, rows out — chunks in, rows out: the use cases, the seven guarantees and the six things not yet known, why a spectrogram is PSD per frame rather than a second kernel, and the order the program is built in
- The Spectrogram — the measurement record — the dated record: PSD's kernel promoted byte-for-byte, a timing that turned out bimodal, and the prototype that found a bug in its own test
Used in other domains¶
Pages filed under another domain that name a symbol of this module, or link to or from a page filed here: a class used for another task is found from both sides, never re-filed.
- Waveform generation (wfm): Composing a Scene — .sum(), .add(), and Headroom
- Spectrum analyzer: Spectrum Analyzer
- Measurement suite: Measurement Suite — ADC characterisation, Measurement Suite — single-tone ADC / spectral metrics, Measurement Suite — two-tone IMD/TOI & notched-noise NPR
- Acquisition: Acquiring a Repeated Preamble, CarrierAcquisition: RRC Pulse Shaping, One Python class: the step-4 design, One correlator: the step-3 design, The acquisition surface — the measurement record, The acquisition surface: the DSSS search engine
- Spread spectrum (DSSS): AsyncDsssReceiver and AsyncDsssPool — the measurement record, DSSS Burst Acquisition, DsssBurstReceiver: the burst chain, composed in C
- Buffers: The ring buffer — measurements and the record, The ring buffer — one contiguous view of a stream
- Sample-format conversion (cvt): cvt Quantization Noise
- Utilities: API taxonomy: the DSP building-block hierarchy and its naming axis, Checkpoint & Resume, State Serialization — the standard bytes interface