Product documentation — installation, licensing, and integration guides.
Assured Spectrum
Examples

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:

  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.

  2. Version — Every support ticket starts with the package version.

    • version: 0.1.0
    • native: 0.1.0
  3. License — Machine-locked .lic files gate production use.

    • license_valid: True
  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.

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.py
cd 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:

  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.

  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
  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

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.py
cd 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.py

Example 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:

  1. Defaults — Production defaults match the DEINT lab profile.

    • method: 0
    • bound: 3.0
    • window: 15
    • rf_tol_mhz: 60.0
    • n_streams: 0
  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
  3. 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.py
cd 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:

  1. Available methods — Same PDW arrays, different assignment algorithms.

    • methods: ['bounded_coherence', 'cdif']
  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

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.py
cd 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:

  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
  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}

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.py
cd 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.py

Example 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:

  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))
  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

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: None
cd 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.py

Example 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.

ResourcePurpose
PROGRESSION.mdOrdered runbook — journeys 01→06 with dual commands
COVERAGE.mdCapability matrix — which APIs each journey exercises
APPLICATIONS.mdWhere the product applies in real programs
run_examples.pyInteractive menu to launch any journey

Guided journeys

#ScriptScenario
0101_first_contact.pyVersion, license, simplest successful call
0202_deinterleave.pyPrimary product value on a realistic toy PDW problem
0303_configuration.pyKnobs that matter: bound, window, RF tolerance, n_streams
0404_methods.pybounded_coherence (product) vs CDIF baseline
0505_dense_pdw.pySix emitters with distinct PRI / RF from the Moridain default library. This is the density…
0606_limits.pyWhen 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).