Waveform generation (wfm)¶
Compose, generate and stream any waveform: the Synth, scenes and Plans, codes, frames, and the wfmgen tool.
Python module doppler.wfm. Area: Sources.
Classes and functions¶
Guide pages in this domain¶
- Capture I/O
- Field reference
- Fields — bits, written as text
- Reading captures
- Scenes — composing in time
- Waveform Generator — wfmgen
- Waveforms — what you can generate
- Writing captures — output & file types
Gallery pages in this domain¶
- A Crowded Band — Many Signals, One Parallel prepare — twenty RRC carriers in one segment, prepared in parallel across cores;
Plan.render(enable=...)thins them for free. - A Frame You Built, Generated —
wfm_source_t.frame: a source carries the description a caller built, so a layout no flag spells reaches the samples;--acq-code,--syncand--crcbuild one throughdp_wfm_frame_fixed() - A Framed Link, Checked by Its Description — framed BPSK/QPSK from one
FrameDesc, received byMpskReceiver, judged byFrameDesc.check. - Composing a Scene — .sum(), .add(), and Headroom — sum, add, headroom; a SoI under a CW interferer over one noise floor.
- One Cache Slot for a Whole Background Field —
background=Truefolds a static emitter population into a single pre-summed cache entry: 67x smaller, and the whole field becomes one overridable control. - Waveform I/O — One Capture, Four File Types — one capture written to raw / CSV / BLUE / SigMF and read back.
- type="symbols" — Bring Your Own Constellation — pi/4-QPSK and 16-QAM from an arbitrary complex stream.
- wfmgen — One Engine, Every Waveform — tone / PN / QPSK / BPSK from one declarative
Synth.
Design pages in this domain¶
- A Frame as a Description — a frame as a list of fields and a list of stages, each carrying the span it covers: why a chain of optional transforms cannot express CCSDS, and how a caller adds a stage doppler has never heard of
- A Frame as a Description — the measurement record — the dated record behind it: the survey that counted seven spellings of a field, the prototype that proved one grammar lossless, and how the CCSDS sites were settled, under the same section letters
- A Receiver Built from a Frame Description —
BurstDemodandDsssBurstReceivertold the frame instead of its length: the sync word, the frame and burst lengths and the CRC verdict derived from one description, the callers that compute them by hand today, and the order of work - Capture files — one reader, one writer, four containers — the file I/O subsystem underneath
Reader/Writer: why the file type is decided by content, why one keyword codec serves both directions, why provenance is a value rather than a caveat, and what a streaming writer costs at close - Ending a capture — spooling an endless stream to disk while reading it back — the disk third of that contract: spooling an endless stream to disk while reading it back, why Ctrl+C must reach the reader through the file rather than around it, and what owning both ends of the file buys
- One home for the waveform enum tables — a name table's ORDER is the C enum value, so a second copy mis-maps a flag instead of failing: what owns the tables, and the gate that holds the manifest, the header and the C enums to each other
- The Payload as a Data Source — a frame declares
data:LENand--datanames where the bits come from (a file, a literal, stdin, a seeded stream): fill, idle frames, run length, what is deleted, and the unknowns - The Payload as a Data Source — the measurement record — the chunker prototyped before any C, and the three rules it changed
- Waveform amplitude & composition — level/power conventions for wfmgen
- wfmgen — the waveform generator — the spine for the tool: modulations, impairments and output streams from three interchangeable faces, which gate keeps each promise, and the eight things still unknown about it
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.
- Signal sources: AWGN Generator
- Channel impairment: The Doppler channel — one parameter, both clocks and the carrier, The Doppler channel — the measurement record
- Spectral analysis: A Streaming Spectrogram, Four WCDMA Carriers — PSD, band_power, AccTrace, Power Spectra & Measurements, Spectral & Measurement API Map, The Spectrogram — chunks in, rows out, The Spectrogram — the measurement record
- Measurement suite: Measurement Suite — single-tone ADC / spectral metrics
- Acquisition: BurstBank — the coarse-Doppler bank as one C object, CarrierAcquisition: RRC Pulse Shaping, One correlator: the step-3 design, The acquisition surface: the DSSS search engine
- Tracking & synchronization: M-PSK Receiver — Performance Characterisation, M-PSK Receiver — Pull-in, Lock, and BER, MPSK Receiver, Receiver Test Harness, Symbol Timing on a Rate Cascade
- Detection statistics: Detection Sizing — the four laws behind one prefix
- Spread spectrum (DSSS): A Message Over DSSS, Received and Deframed, AsyncDsssPool: emitters that come and go, AsyncDsssPool: ten emitters through six receivers, AsyncDsssReceiver and AsyncDsssPool — continuous DSSS, from spec to object, AsyncDsssReceiver and AsyncDsssPool — the measurement record, AsyncDsssReceiver: a signal's lifecycle, AsyncDsssReceiver: the specification link, DSSS Acquisition — Pd / Pfa vs Es/N0, DsssBurstReceiver — the Composed Burst Chain, Streaming Async Despreader,
DsssBurstReceiver: the burst chain, composed in C - Channel coding: Interleaving — spreading a burst across codewords, Name Your Own Code — and What Happens Past the Radius, The FEC Receive Half, The Viterbi Decoder
- CCSDS literals: A CCSDS CADU, as a Frame Description
- Streaming: Real-Time Pacing & Timestamping, Streaming — one envelope, six roles, two planes
- Telemetry: Telemetry — zero-cost scalar taps for running pipelines
- Stopping a run (interrupt): Ending a wait — one contract for network, memory and disk
- Sample-format conversion (cvt): ADC Quantisation — 3–8 Bits, cvt Quantization Noise
- Utilities: API taxonomy: the DSP building-block hierarchy and its naming axis, State Serialization — the standard bytes interface