Expand description
§dsfb-rf — DSFB Structural Semiotics Engine for RF Signal Monitoring
What this crate is, in one paragraph. A deterministic, no_std,
zero-unsafe observer that reads residual streams — PLL innovation,
AGC error, channel-equaliser residual, matched-filter discrepancy,
GNSS tracking-loop residual, scheduler EWMA, beamformer weight-update
innovation — which existing RF receivers already compute, and structures
them into a typed grammar of human-readable episodes. DSFB does not
replace matched filters, Kalman/Luenberger observers, CFAR, or ML
classifiers; it augments them by giving operators a structural view of
what those systems discard. Removing DSFB leaves the upstream receiver
chain unchanged.
See the forward-looking programmatic framing below.
Invariant Forge LLC — Prior art under 35 U.S.C. § 102. Commercial deployment requires a separate written license. Reference implementation: Apache-2.0. licensing@invariantforge.net
§Sovereign Spectrum Governance
dsfb-rf implements Sovereign Spectrum Governance — a command-and-control (C2) architecture for the RF electromagnetic domain that elevates spectrum management from a reactive utility service to a proactive, structurally-aware C2 capability.
Traditional spectrum management detects events after thresholds are crossed. Sovereign Spectrum Governance detects the trajectory toward events before they occur, providing governance actors with actionable structural intelligence at the physics timescale — not the incident-response timescale.
The four pillars of Sovereign Spectrum Governance in this crate:
- Structural anticipation — grammar episodes begin before envelope violations (Theorem 1). The governance actor is notified of drift direction before any threshold is crossed.
- Traceable authority — every policy decision is backed by a deterministic
audit chain (
dsfb_traceability.json) from raw IQ residual to policy output. No black-box inference, no probabilistic ambiguity in the C2 chain. - Non-interference sovereignty — the observer contract guarantees that the governance layer does not modify, degrade, or interfere with the governed RF system. Sovereignty is exercised through observation alone.
- Distributed corroboration — BFT swarm consensus (
swarm_consensus.rs) and baseline sanity checks (calibration::swarm_baseline_sanity_check) prevent adversarial contamination of the governance baseline.
§Overview
This crate implements the DSFB Structural Semiotics Engine for RF signal monitoring as described in:
de Beer, R. (2026). DSFB-RF Structural Semiotics Engine for RF Signal Monitoring — A Deterministic, Non-Intrusive Observer Layer for Typed Structural Interpretation of IQ Residual Streams in Electronic Warfare, Spectrum Monitoring, and Cognitive Radio (v1.0). Invariant Forge LLC. Zenodo. DOI: 10.5281/zenodo.19702330
The engine is a read-only, non-intrusive, deterministic observer layer that sits above existing RF receiver infrastructure (matched-filter banks, CFAR detectors, AGC loops, PLLs, spectrum analyzers) and interprets the IQ residual streams those systems already produce.
§Semiotic Decimation for High-Rate Deployment
At 1 GSPS and above, the full semiotic pipeline can be time-budgeted via
the DecimationAccumulator (engine::DecimationAccumulator):
use dsfb_rf::engine::{DsfbRfEngine, DecimationAccumulator};
use dsfb_rf::platform::PlatformContext;
// 1 GSPS, 100 kHz structural monitoring rate
let mut eng = DsfbRfEngine::<10, 4, 8>::new(0.1, 2.0)
.with_decimation(10_000);
// observe_decimated() returns None for 9999 samples, Some on the 10000th
let ctx = PlatformContext::operational();
let result = eng.observe_decimated(0.05, ctx);
// DSFB monitors the *envelope* of the physics, not the cycle of the carrier.§Architectural Contract
- Observer-only: the
observe()method takes&selfand&[f32](immutable references only). There is no mutable write path into any upstream data structure. #![no_std]: the core modules link against neither the Rust standard library nor any OS runtime. Deployable on bare-metal FPGA softcores (RISC-V, Cortex-M4F) without an OS or heap allocator.#![no_alloc]: all internal structures use fixed-capacity array-backed types. No heap allocation in any hot path.- Zero
unsafe: nounsafeblocks, noUnsafeCell, noRefCellin any observer code path. Enforced at compile time by#.
§Non-Claims (from paper §11)
This crate does not provide:
- Emitter classification or modulation recognition
- Calibrated Pd/Pfa guarantees
- Hard real-time latency bounds under FPGA/DSP deployment
- Adversarial robustness against spoofing or smart jamming
- ITAR determination or export-control assessment
- MIL-STD-461G, DO-178C, or 3GPP TS 36.141 compliance
§Feature Flags
| Feature | Description |
|---|---|
| (none) | Core engine: no_std + no_alloc + zero unsafe |
alloc | Opt-in heap via alloc crate for host-side tooling |
std | Opt-in std library for pipeline and output modules |
serde | JSON artifact serialization (requires std) |
paper_lock | Headline metric enforcement for reproducibility |
experimental | Exploratory extensions not validated in the companion paper (tda, quantum_noise, rg_flow). Excluded from the paper-lock metric set. |
§Usage (bare-metal, no_std)
use dsfb_rf::{DsfbRfEngine, PolicyDecision};
use dsfb_rf::platform::PlatformContext;
// W=10 drift window, K=4 persistence, M=8 heuristics bank capacity
let mut engine = DsfbRfEngine::<10, 4, 8>::new(0.1_f32, 2.0_f32);
let residual_norm: f32 = 0.045; // |r(k)| from your receiver
let ctx = PlatformContext::operational();
let result = engine.observe(residual_norm, ctx);
let decision: PolicyDecision = result.policy;
// decision: Silent | Watch | Review | Escalate
// upstream receiver: UNCHANGEDRe-exports§
pub use engine::DsfbRfEngine;pub use engine::NonIntrusiveContract;pub use engine::NON_INTRUSIVE_CONTRACT;pub use grammar::GrammarState;pub use grammar::ReasonCode;pub use heuristics::HeuristicsBank;pub use heuristics::MotifEntry;pub use heuristics::Provenance;pub use heuristics::SemanticDisposition;pub use syntax::MotifClass;pub use policy::PolicyDecision;pub use sign::SignTuple;pub use envelope::AdmissibilityEnvelope;pub use dsa::DsaScore;pub use platform::PlatformContext;pub use platform::WaveformState;pub use platform::SnrFloor;pub use lyapunov::LyapunovEstimator;pub use lyapunov::LyapunovResult;pub use lyapunov::StabilityClass;pub use trust::HretEstimator;pub use trust::HretParams;pub use trust::HretResult;pub use regime::RegimeEnvelope;pub use regime::RegimeEnvelopeParams;pub use regime::EnvelopeMode;pub use regime::RfRegime;pub use regime::GrammarTrustScalar;pub use regime::EnvelopeUpdateResult;pub use detectability::DetectabilityClass;pub use detectability::SemanticStatus;pub use detectability::DetectionStrengthBand;pub use detectability::DetectabilityBound;pub use detectability::DetectabilitySummary;pub use detectability::DetectabilityTracker;pub use detectability::DetectabilityThresholds;pub use fixedpoint::quantize_q16_16;pub use fixedpoint::dequantize_q16_16;pub use fixedpoint::q16_16_to_f32;pub use fixedpoint::quantize_f32;pub use fixedpoint::mul_q16_16;pub use fixedpoint::add_q16_16;pub use fixedpoint::MODE_LABEL;pub use disturbance::RfDisturbance;pub use disturbance::DisturbanceLog;pub use disturbance::DisturbanceHypothesis;pub use disturbance::DisturbanceClassifier;pub use impairment::ImpairmentVector;pub use impairment::ScintillationClass;pub use impairment::apply_iq_imbalance;pub use impairment::apply_dc_offset;pub use impairment::apply_pa_compression;pub use impairment::quantization_noise_std;pub use impairment::apply_phase_noise;pub use impairment::apply_scintillation;pub use impairment::classify_s4;pub use impairment::doppler_residual_floor;pub use impairment::apply_all as apply_impairments;pub use impairment::lcg_step;pub use impairment::lcg_uniform;pub use impairment::sin_approx;pub use impairment::cos_approx;pub use audit::StageResult;pub use audit::AuditReport;pub use audit::SigMfAnnotation;pub use attractor::DelayEmbedding;pub use attractor::AttractorResult;pub use attractor::NoiseAttractorState;pub use pragmatic::PragmaticGate;pub use pragmatic::PragmaticConfig;pub use dna::AllanVarianceEstimator;pub use dna::HardwareDna;pub use dna::DnaMatchResult;pub use dna::DnaVerdict;pub use dna::cosine_similarity;pub use dna::verify_dna;pub use dna::AUTHENTICATION_THRESHOLD;pub use dna::ALLAN_TAUS;pub use uncertainty::CrlbFloor;pub use physics::PhysicsModel;pub use physics::ArrheniusModel;pub use physics::AllanVarianceModel;pub use physics::PhysicsConsistencyResult;pub use physics::evaluate_physics_consistency;pub use stationarity::reverse_arrangements_test;pub use stationarity::ReverseArrangementsResult;pub use stationarity::BootstrapIntegrityAlert;pub use stationarity::check_bootstrap_integrity;pub use stationarity::StationarityVerdict;pub use stationarity::StationarityConfig;pub use stationarity::verify_wss;pub use complexity::PermutationEntropyEstimator;pub use complexity::PermEntropyResult;pub use complexity::PermEntropyRegime;pub use calibration::run_rho_sweep;pub use calibration::run_wpred_grid;pub use calibration::run_config_grid;pub use calibration::check_calibration_window;pub use calibration::RhoSweepResult;pub use calibration::RhoSweepCell;pub use calibration::WpredGrid;pub use calibration::WpredCell;pub use calibration::ConfigGrid;pub use calibration::ConfigCell;pub use calibration::CalibWindowIntegrity;pub use calibration::NOM_EPISODES;pub use calibration::NOM_PRECISION;pub use calibration::NOM_RECALL;pub use calibration::NOM_TP;pub use calibration::NOM_FP;pub use waveform_context::WaveformSchedule;pub use waveform_context::TransitionWindow;pub use waveform_context::TransitionKind;pub use waveform_context::SuppressionDecision;pub use waveform_context::suppress_escalation;pub use waveform_context::freq_hop_window;pub use waveform_context::burst_start_window;pub use waveform_context::power_change_window;pub use math::exp_f32;pub use math::ln_f32;pub use energy_cost::LandauerAudit;pub use energy_cost::LandauerClass;pub use energy_cost::landauer_audit;pub use energy_cost::structural_energy_joules;pub use energy_cost::structural_power_watts;pub use energy_cost::thermal_noise_power;pub use energy_cost::gaussian_entropy_nats;pub use energy_cost::K_BOLTZMANN;pub use fisher_geometry::GaussPoint;pub use fisher_geometry::ManifoldTracker;pub use fisher_geometry::DriftGeometry;pub use fisher_geometry::fisher_rao_distance;pub use fisher_geometry::fisher_rao_distance_exact;pub use fisher_geometry::geodesic_curvature;pub use high_dynamics::LorentzFactor;pub use high_dynamics::HighDynamicsSettings;pub use high_dynamics::high_dynamics_settings;pub use high_dynamics::relativistic_doppler_hz;pub use high_dynamics::classical_doppler_hz;pub use high_dynamics::relativistic_correction_residual_hz;pub use high_dynamics::C_LIGHT_M_S;pub use high_dynamics::MACH_1_SEA_LEVEL_M_S;pub use swarm_consensus::GrammarVote;pub use swarm_consensus::SwarmConsensus;pub use swarm_consensus::compute_consensus;pub use swarm_consensus::consensus_grammar_state;pub use swarm_consensus::GovernanceTag;pub use swarm_consensus::NodeGovernanceReport;pub use swarm_consensus::swarm_governance_report;pub use swarm_consensus::MAX_SWARM_NODES;pub use heuristics::KnownClockClass;pub use heuristics::classify_clock_instability;pub use engine::DecimationAccumulator;pub use calibration::swarm_baseline_sanity_check;pub use calibration::BaselineConsensusAlert;pub use fisher_geometry::RobustManifoldMode;pub use fisher_geometry::GaussPointRobust;pub use fixedpoint::PeriodicResyncConfig;pub use fixedpoint::apply_periodic_resync;
Modules§
- attractor
- Delay-coordinate attractor embedding, correlation dimension D₂, and Koopman operator proxy for RF residual streams.
- audit
- Continuous Rigor 4-stage audit report for benchmark examples.
- calibration
- Calibration sensitivity sweeps: ρ-perturbation, W_pred grid, config landscape.
- complexity
- Information-theoretic complexity estimation (MDL/Kolmogorov framing). Quantifies how well the nominal model describes the current residual trajectory. Information-theoretic complexity estimation for residual trajectories.
- detectability
- Rich deterministic detectability taxonomy (DSFB-Lattice §IV–V).
- disturbance
- RF disturbance taxonomy: DDMF-derived classification with RF mapping.
- dna
- Hardware DNA authentication via Allan variance fingerprinting.
- dsa
- Deterministic Structural Accumulator (DSA) score. Deterministic Structural Accumulator (DSA) score.
- energy_
cost - Landauer thermodynamic cost estimation for computational inference operations.
- engine
- Main engine: composes all stages into a single deterministic observer. Main engine: composes all pipeline stages into a single deterministic observer.
- envelope
- Admissibility envelope E(k) = {r : ‖r‖ ≤ ρ(k)}. Admissibility envelope E(k) = {r : ‖r‖ ≤ ρ(k)}.
- fisher_
geometry - Fisher-Rao information geometry on the Gaussian statistical manifold.
- fixedpoint
- Q16.16 fixed-point ingress path for FPGA and bare-metal deployment.
- grammar
- Grammar FSM: Admissible | Boundary[reason] | Violation. Grammar FSM: Admissible | BoundaryReasonCode | Violation
- heuristics
- Heuristics bank H: fixed-capacity typed RF motif library. Heuristics bank H: fixed-capacity typed RF motif library.
- high_
dynamics - Relativistic Doppler corrections for hypersonic and exo-atmospheric platforms.
- impairment
- Hardware and channel impairment injection for Continuous Rigor pipelines.
- lyapunov
- Lyapunov stability analysis: finite-time Lyapunov exponents for residual trajectory divergence quantification. Lyapunov stability analysis for residual trajectory divergence.
- math
- Residual sign tuple: (‖r‖, ṙ, r̈) — the semiotic manifold coordinate. no_std math utilities — Newton-Raphson sqrt, exp, ln, floor, round and basic statistics.
- physics
- Physics-of-failure mapping and semiotic horizon characterization. Maps grammar states to candidate physical mechanisms (Arrhenius, Leeson, etc.). Physics-of-failure mapping and semiotic horizon characterization.
- platform
- Platform context: waveform transitions, SNR floor, regime suppression. Platform context: waveform transitions, SNR floor, regime suppression.
- policy
- Policy engine: Silent | Watch | Review | Escalate. Policy engine: Silent | Watch | Review | Escalate.
- pragmatic
- Pragmatic information gating for SOSA/MORA backplane traffic shaping.
- regime
- Regime-switched admissibility envelopes and grammar trust scalars.
- sign
- Residual sign tuple: (‖r‖, ṙ, r̈)
- standards
- Industry standards: VITA 49.2 VRT, SigMF annotations, MIL-STD-461G masks, SOSA/MORA alignment structs, and 3GPP/ITU-R envelope mappings. Industry standards integration: VITA 49.2, SigMF, SOSA/MORA.
- stationarity
- Wide-Sense Stationarity (WSS) verification for calibration windows. Applies the Wiener-Khinchin pre-condition before envelope radius is set. Wide-Sense Stationarity (WSS) verification for the calibration window.
- swarm_
consensus - Byzantine-Fault-Tolerant (BFT) semiotic consensus from distributed DSFB-RF nodes.
- syntax
- Syntax layer: classify sign tuples into named temporal motifs. Syntax layer: classify sign tuples into named temporal motifs.
- trust
- Hierarchical Residual-Envelope Trust (HRET) for multi-channel RF receivers.
- uncertainty
- GUM-compliant uncertainty budget (ISO/IEC Guide 98-3) for envelope ρ. Type A (statistical) + Type B (systematic) uncertainty decomposition. GUM-compliant uncertainty budget for admissibility envelopes.
- waveform_
context - Waveform transition schedule for grammar-escalation suppression.
- zero_
copy - Zero-copy residual source trait for DMA buffer integration. Enables tap into memory-mapped IQ buffers without CPU copy overhead. Zero-copy residual source trait for DMA buffer integration.