Skip to content

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

Name Kind API Guide Gallery Example Design
_sweep_ends function          
_SynthEngine class   Waveforms — what you can generate     The Payload as a Data Source
Waveform amplitude & composition
bits function   Field reference
Waveforms — what you can generate
Power Spectra & Measurements
ADC Quantisation — 3–8 Bits
M-PSK Receiver — Pull-in, Lock, and BER
adc_demo
carrier_acq_rrc_demo
carrier_nda_seeding_demo
+15 more
A Frame as a Description
A Frame as a Description — the measurement record
A Receiver Built from a Frame Description
+10 more
bpsk function   Field reference
Scenes — composing in time
Waveforms — what you can generate
type="symbols" — Bring Your Own Constellation wfmgen_demo Waveform amplitude & composition
API taxonomy: the DSP building-block hierarchy and its naming axis
Receiver Test Harness
bpsk_map function bpsk_map     dsss_burst_demo
dsss_receiver_demo
 
chirp function   Field reference
Scenes — composing in time
Waveforms — what you can generate
A Streaming Spectrogram spectrogram_demo  
Composer class Composer Reading captures
Scenes — composing in time
Waveforms — what you can generate
+2 more
A Crowded Band — Many Signals, One Parallel prepare
One Cache Slot for a Whole Background Field
Waveform I/O — One Capture, Four File Types
+2 more
acq_surface_demo
burst_capture_demo
costas_demo
+22 more
Waveform amplitude & composition
wfmgen — the waveform generator
API taxonomy: the DSP building-block hierarchy and its naming axis
+2 more
crc16 function crc16 Waveforms — what you can generate A Message Over DSSS, Received and Deframed   A Frame as a Description
A Receiver Built from a Frame Description
The Payload as a Data Source — the measurement record
+1 more
draws function draws     async_dsss_receiver_spec_demo
dsss_burst_ber_demo
wfmgen — the waveform generator
dsss_spread function dsss_spread   wfmgen — One Engine, Every Waveform
DSSS Acquisition — Pd / Pfa vs Es/N0
   
ENDIAN constant          
FC_SOURCE constant          
field_bits function field_bits Fields — bits, written as text DsssBurstReceiver — the Composed Burst Chain ccsds_link_demo
data_source_link_demo
dsss_burst_ber_demo
+5 more
A Frame as a Description
A Frame as a Description — the measurement record
A Receiver Built from a Frame Description
+2 more
FOLLOW_END constant          
Frame class Frame Waveforms — what you can generate A CCSDS CADU, as a Frame Description
DsssBurstReceiver — the Composed Burst Chain
  A Frame as a Description
A Frame as a Description — the measurement record
A Receiver Built from a Frame Description
+4 more
FrameCheck class FrameCheck        
FrameDesc class FrameDesc Waveforms — what you can generate A Framed Link, Checked by Its Description
A CCSDS CADU, as a Frame Description
A Message Over DSSS, Received and Deframed
+2 more
burst_capture_demo
ccsds_link_demo
data_source_link_demo
+8 more
A Frame as a Description
A Receiver Built from a Frame Description
DsssBurstReceiver: the burst chain, composed in C
FS_SOURCE constant          
FTYPE constant          
Gold class Gold     acq_surface_demo
async_despread_demo
async_dsss_pool_demo
+4 more
 
mls_poly function mls_poly   wfmgen — One Engine, Every Waveform detector2d_acq_demo
dll_theory_demo
 
noise function   Field reference
Scenes — composing in time
Waveforms — what you can generate
Composing a Scene — .sum(), .add(), and Headroom
A Streaming Spectrogram
AsyncDsssReceiver: a signal's lifecycle
+1 more
async_despread_demo
async_dsss_receiver_lifecycle
awgn_demo
+13 more
Waveform amplitude & composition
Detection Sizing — the four laws behind one prefix
One correlator: the step-3 design
+1 more
Plan class Plan Scenes — composing in time
Waveforms — what you can generate
A Crowded Band — Many Signals, One Parallel prepare
One Cache Slot for a Whole Background Field
DsssBurstReceiver — the Composed Burst Chain
  wfmgen — the waveform generator
API taxonomy: the DSP building-block hierarchy and its naming axis
BurstBank — the coarse-Doppler bank as one C object
+1 more
PlanFromBlob function PlanFromBlob Scenes — composing in time      
PlanFromFile function PlanFromFile Scenes — composing in time      
PN class PN   AsyncDsssReceiver: the specification link async_dsss_receiver_spec_demo
burst_capture_demo
carrier_nda_seeding_demo
+8 more
A Frame as a Description
A Frame as a Description — the measurement record
API taxonomy: the DSP building-block hierarchy and its naming axis
pn function   Field reference
Fields — bits, written as text
Scenes — composing in time
+1 more
wfmgen — One Engine, Every Waveform
DSSS Acquisition — Pd / Pfa vs Es/N0
DsssBurstReceiver — the Composed Burst Chain
  A Frame as a Description
A Frame as a Description — the measurement record
A Receiver Built from a Frame Description
+4 more
prepare function prepare Scenes — composing in time
Waveforms — what you can generate
A Crowded Band — Many Signals, One Parallel prepare
One Cache Slot for a Whole Background Field
crowded_band_demo
dsss_burst_ber_demo
plan_background_demo
wfmgen — the waveform generator
BurstBank — the coarse-Doppler bank as one C object
The Doppler channel — one parameter, both clocks and the carrier
qpsk function   Field reference
Scenes — composing in time
Waveforms — what you can generate
A Crowded Band — Many Signals, One Parallel prepare
type="symbols" — Bring Your Own Constellation
Four WCDMA Carriers — PSD, band_power, AccTrace
crowded_band_demo
plan_background_demo
symbols_demo
+4 more
One home for the waveform enum tables
Waveform amplitude & composition
wfmgen — the waveform generator
qpsk_map function qpsk_map        
rc_h function rc_h     symsync_demo  
Reader class Reader Reading captures
Waveforms — what you can generate
Writing captures — output & file types
Waveform I/O — One Capture, Four File Types wfm_io_demo Capture files — one reader, one writer, four containers
wfmgen — the waveform generator
Telemetry — zero-cost scalar taps for running pipelines
+1 more
rotate function          
rrc_h function rrc_h     ratesync_demo  
rrc_taps function rrc_taps   wfmgen — One Engine, Every Waveform
CarrierAcquisition: RRC Pulse Shaping
carrier_acq_rrc_demo
wfm_rrc_response
MPSK Receiver
Receiver Test Harness
SAMPLE_MODE constant          
SampleClock class SampleClock Scenes — composing in time
Real-Time Pacing & Timestamping
Waveform I/O — One Capture, Four File Types async_dsss_receiver_lifecycle
mpsk_doppler_profile_demo
mpsk_telemetry_capture_demo
+1 more
Telemetry — zero-cost scalar taps for running pipelines
Segment class Segment Scenes — composing in time
Waveforms — what you can generate
A Crowded Band — Many Signals, One Parallel prepare
Composing a Scene — .sum(), .add(), and Headroom
type="symbols" — Bring Your Own Constellation
+1 more
acq_surface_demo
burst_capture_demo
costas_demo
+21 more
A Frame as a Description
Waveform amplitude & composition
wfmgen — the waveform generator
+2 more
STAGE_CONV constant       ccsds_link_demo  
STAGE_CRC16 constant       burst_capture_demo
data_source_link_demo
dsss_burst_receiver_demo
+4 more
 
STAGE_INTERLEAVE constant          
STAGE_RANDOMISE constant       ccsds_link_demo  
STAGE_RS constant       ccsds_link_demo  
STAGE_USER constant       frame_own_stage_demo  
StreamSink class StreamSink Real-Time Pacing & Timestamping Waveform I/O — One Capture, Four File Types
wfmgen — One Engine, Every Waveform
graceful_shutdown_demo
wfm_realtime_stream
 
STYPE constant          
Synth class Synth Scenes — composing in time
Waveforms — what you can generate
type="symbols" — Bring Your Own Constellation
wfmgen — One Engine, Every Waveform
AsyncDsssPool: emitters that come and go
+5 more
async_despread_demo
async_dsss_pool_demo
async_dsss_pool_scene
+6 more
A Frame as a Description
The Payload as a Data Source
Waveform amplitude & composition
+4 more
T0_SOURCE constant          
Timeline class Timeline Scenes — composing in time     wfmgen — the waveform generator
API taxonomy: the DSP building-block hierarchy and its naming axis
tone function   Field reference
Waveforms — what you can generate
A Streaming Spectrogram carrier_acq_rrc_demo
ddc_fn_demo
fir_demo
+4 more
Waveform amplitude & composition
wfm_awgn_amplitude function wfm_awgn_amplitude   AsyncDsssReceiver: a signal's lifecycle
AsyncDsssReceiver: the specification link
async_despread_demo
async_dsss_pool_demo
async_dsss_pool_scene
+4 more
Waveform amplitude & composition
wfmgen — the waveform generator
wfm_ebno_to_snr_db function wfm_ebno_to_snr_db       Waveform amplitude & composition
write_blue_header function write_blue_header   Waveform I/O — One Capture, Four File Types    
Writer class Writer Reading captures
Waveforms — what you can generate
Writing captures — output & file types
Composing a Scene — .sum(), .add(), and Headroom
Waveform I/O — One Capture, Four File Types
type="symbols" — Bring Your Own Constellation
+1 more
wfm_composition_demo
wfm_io_demo
Capture files — one reader, one writer, four containers
wfmgen — the waveform generator
Telemetry — zero-cost scalar taps for running pipelines

Guide pages in this domain

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 — BurstDemod and DsssBurstReceiver told 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:LEN and --data names 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.