Assured Spectrum: Examples
Each example is a verified run of a guided tour script from the shipped python/examples/
bundle (see PROGRESSION.md for the full 01→06 sequence). Run the guided tour
first: it narrates the scenario, explains each metric, and shows when to trust the result. Use
the production one-liner when wiring the same API call into your pipeline.
Beta release. Products in this catalog other than the SolvSRK family and SolvScout / SolvTune are beta — suitable for trials and evaluation; APIs and packaging may change before GA. Do not deploy beta builds in production programs without a signed agreement with Resonix. Activate a trial license before running examples — see Install and Licensing.
Journeys
Example 1: Journey 01 — First contact
Version, license, simplest successful call. Every support ticket starts with the package version. Machine-locked .lic files gate production use.
Walkthrough:
-
What you are doing — Confirm the native library loads, see your license state, and run the smallest API call that proves Assured Spectrum is alive: deinterleave a clean two-emitter PDW batch.
-
Version — Every support ticket starts with the package version.
version: 0.1.0native: 0.1.0
-
License — Machine-locked .lic files gate production use.
license_valid: True
-
Simplest call — Hand in TOA / RF / PW / amplitude arrays and get stream labels back. No training data. Default method is bounded_coherence.
pulses: 60streams: 2purity: 1.0wall_s: 0.0— Purity near 1.0 on this clean toy batch is expected.
Guided tour output (from a verified run):
Version, license, simplest successful call
-- Act 1 - What you are doing --
-> Confirm the native library loads, see your license state, and run the smallest API call that proves Assured Spectrum is alive: deinterleave a clean two-emitter PDW batch.
-- Act 2 - Version --
-> Every support ticket starts with the package version.
version: 0.1.0
native: 0.1.0
-- Act 3 - License --
-> Machine-locked .lic files gate production use.
license_valid: True
-- Act 4 - Simplest call --
-> Hand in TOA / RF / PW / amplitude arrays and get stream labels back. No training data. Default method is bounded_coherence.
pulses: 60
streams: 2
purity: 1.0
wall_s: 0.0
-> Purity near 1.0 on this clean toy batch is expected.
-- Run complete --
next_journey: 02_deinterleave.pycd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/01_first_contact.py
# Production one-liner — same API call you ship:
python -c "import assuredspectrum as a; print(a.__version__, a.license_valid())"Example 2: Journey 02 — Core deinterleave
Primary product value on a realistic toy PDW problem. Four parallel arrays — the front-end report format. AssuredSpectrum(bound=3.0) is the product entry point.
Walkthrough:
-
The problem — Two emitters share a contested TOA timeline. Their RF centres are separated (~250 MHz) and each has a stable PRI. Assured Spectrum assigns every pulse to a stream without knowing emitter IDs.
-
Input PDW — Four parallel arrays — the front-end report format.
n_pulses: 80rf_min_mhz: 9199.6rf_max_mhz: 9450.4true_emitters: 2
-
Deinterleave — AssuredSpectrum(bound=3.0) is the product entry point.
streams_found: 2stream_counts: {0: 40, 1: 40}purity: 1.0method: bounded_coherence
Guided tour output (from a verified run):
Primary product value on a realistic toy PDW problem
-- Act 1 - The problem --
-> Two emitters share a contested TOA timeline. Their RF centres are separated (~250 MHz) and each has a stable PRI. Assured Spectrum assigns every pulse to a stream without knowing emitter IDs.
-- Act 2 - Input PDW --
-> Four parallel arrays — the front-end report format.
n_pulses: 80
rf_min_mhz: 9199.6
rf_max_mhz: 9450.4
true_emitters: 2
-- Act 3 - Deinterleave --
-> AssuredSpectrum(bound=3.0) is the product entry point.
streams_found: 2
stream_counts: {0: 40, 1: 40}
purity: 1.0
method: bounded_coherence
-- Run complete --
next_journey: 03_configuration.pycd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/02_deinterleave.py
# Production one-liner — same API call you ship:
python examples/journeys/02_deinterleave.pyExample 3: Journey 03 — Configuration
Knobs that matter: bound, window, RF tolerance, n_streams. Lower B shrinks per-pulse influence. On a clean batch both settings still separate the streams; the knob matters under dense overlap. Zero means auto-discover from RF clusters (capped at 16).
Walkthrough:
-
Defaults — Production defaults match the DEINT lab profile.
method: 0bound: 3.0window: 15rf_tol_mhz: 60.0n_streams: 0
-
Tighten the bound — Lower B shrinks per-pulse influence. On a clean batch both settings still separate the streams; the knob matters under dense overlap.
purity_B3: 1.0purity_B15: 1.0
-
n_streams=0 — Zero means auto-discover from RF clusters (capped at 16).
auto_streams: 2
Guided tour output (from a verified run):
Knobs that matter: bound, window, RF tolerance, n_streams
-- Act 1 - Defaults --
-> Production defaults match the DEINT lab profile.
method: 0
bound: 3.0
window: 15
rf_tol_mhz: 60.0
n_streams: 0
-- Act 2 - Tighten the bound --
-> Lower B shrinks per-pulse influence. On a clean batch both settings still separate the streams; the knob matters under dense overlap.
purity_B3: 1.0
purity_B15: 1.0
-- Act 3 - n_streams=0 --
-> Zero means auto-discover from RF clusters (capped at 16).
auto_streams: 2
-- Run complete --
next_journey: 04_methods.pycd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/03_configuration.py
# Production one-liner — same API call you ship:
python -c "import assuredspectrum as a; c=a.config_defaults(); print(c.bound, c.window)"Example 4: Journey 04 — Methods
bounded_coherence (product) vs CDIF baseline. On clean separated RF both methods can look fine. CDIF collapses under dense contested overlap — that is the DEINT-1 finding. Here we just prove both paths are wired.
Walkthrough:
-
Available methods — Same PDW arrays, different assignment algorithms.
methods: ['bounded_coherence', 'cdif']
-
Side-by-side — On clean separated RF both methods can look fine. CDIF collapses under dense contested overlap — that is the DEINT-1 finding. Here we just prove both paths are wired.
bc_purity: 1.0cdif_purity: 0.9bc_streams: 2cdif_streams: 2
Guided tour output (from a verified run):
bounded_coherence (product) vs CDIF baseline
-- Act 1 - Available methods --
-> Same PDW arrays, different assignment algorithms.
methods: ['bounded_coherence', 'cdif']
-- Act 2 - Side-by-side --
-> On clean separated RF both methods can look fine. CDIF collapses under dense contested overlap — that is the DEINT-1 finding. Here we just prove both paths are wired.
bc_purity: 1.0
cdif_purity: 0.9
bc_streams: 2
cdif_streams: 2
-- Run complete --
next_journey: 05_dense_pdw.pycd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/04_methods.py
# Production one-liner — same API call you ship:
python -c "import assuredspectrum as a; print(sorted(a.METHODS))"Example 5: Journey 05 — Dense contested PDW
Six emitters with distinct PRI / RF from the Moridain default library. This is the density class where classical CDIF fails in DEINT-1; the product method is built for that regime. Cap n_streams at 6 and measure cluster purity.
Walkthrough:
-
Scenario — Six emitters with distinct PRI / RF from the Moridain default library. This is the density class where classical CDIF fails in DEINT-1; the product method is built for that regime.
n_pulses: 180n_emitters: 6
-
Deinterleave — Cap n_streams at 6 and measure cluster purity.
streams_found: 6purity: 1.0wall_s: 0.001counts: {0: 30, 1: 30, 2: 30, 3: 30, 4: 30, 5: 30}
Guided tour output (from a verified run):
Six-emitter synthetic batch (lab-style emitter library)
-- Act 1 - Scenario --
-> Six emitters with distinct PRI / RF from the Moridain default library. This is the density class where classical CDIF fails in DEINT-1; the product method is built for that regime.
n_pulses: 180
n_emitters: 6
-- Act 2 - Deinterleave --
-> Cap n_streams at 6 and measure cluster purity.
streams_found: 6
purity: 1.0
wall_s: 0.001
counts: {0: 30, 1: 30, 2: 30, 3: 30, 4: 30, 5: 30}
-- Run complete --
next_journey: 06_limits.pycd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/05_dense_pdw.py
# Production one-liner — same API call you ship:
python examples/journeys/05_dense_pdw.pyExample 6: Journey 06 — Limits
When the product refuses — and what it is NOT. Assured Spectrum separates interleaved PDW into streams. It does not identify emitters, recognize modulation, or replace a threat library. Those sit downstream. It also does not denoise raw I/Q — that is Assured Signal's job on a different Assured Sensing path.
Walkthrough:
-
Too few pulses — Deinterleave needs at least four PDW reports. Shorter batches raise a RuntimeError with failure_mode too_short.
error: assuredspectrum_deinterleave failed: too_short (need at least 4 pulses (got 2))
-
What this product is NOT — Assured Spectrum separates interleaved PDW into streams. It does not identify emitters, recognize modulation, or replace a threat library. Those sit downstream. It also does not denoise raw I/Q — that is Assured Signal's job on a different Assured Sensing path.
is_emitter_id: Falseis_modulation_recognition: Falseis_iq_denoiser: Falseis_pdw_stream_separator: True
Guided tour output (from a verified run):
When the product refuses — and what it is NOT
-- Act 1 - Too few pulses --
-> Deinterleave needs at least four PDW reports. Shorter batches raise a RuntimeError with failure_mode too_short.
error: assuredspectrum_deinterleave failed: too_short (need at least 4 pulses (got 2))
-- Act 2 - What this product is NOT --
-> Assured Spectrum separates interleaved PDW into streams. It does not identify emitters, recognize modulation, or replace a threat library. Those sit downstream. It also does not denoise raw I/Q — that is Assured Signal's job on a different Assured Sensing path.
is_emitter_id: False
is_modulation_recognition: False
is_iq_denoiser: False
is_pdw_stream_separator: True
-- Run complete --
next_journey: Nonecd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/06_limits.py
# Production one-liner — same API call you ship:
python examples/journeys/06_limits.pyExample bundle
Every journey is a domain scenario with narrated acts — run the guided tour first to see what each number means, then copy the production one-liner into your pipeline.
| Resource | Purpose |
|---|---|
PROGRESSION.md | Ordered runbook — journeys 01→06 with dual commands |
COVERAGE.md | Capability matrix — which APIs each journey exercises |
APPLICATIONS.md | Where the product applies in real programs |
run_examples.py | Interactive menu to launch any journey |
Guided journeys
| # | Script | Scenario |
|---|---|---|
| 01 | 01_first_contact.py | Version, license, simplest successful call |
| 02 | 02_deinterleave.py | Primary product value on a realistic toy PDW problem |
| 03 | 03_configuration.py | Knobs that matter: bound, window, RF tolerance, n_streams |
| 04 | 04_methods.py | bounded_coherence (product) vs CDIF baseline |
| 05 | 05_dense_pdw.py | Six emitters with distinct PRI / RF from the Moridain default library. This is the density… |
| 06 | 06_limits.py | When the product refuses — and what it is NOT |
Run from the python/ directory after install and license activation.
Set ASSURED_SPECTRUM_QUIET=1 only when you want silent CLI runs (no narration).