Skip to main content

Crate dsfb_rf

Crate dsfb_rf 

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

  1. Structural anticipation — grammar episodes begin before envelope violations (Theorem 1). The governance actor is notified of drift direction before any threshold is crossed.
  2. 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.
  3. 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.
  4. 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 &self and &[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: no unsafe blocks, no UnsafeCell, no RefCell in any observer code path. Enforced at compile time by #![forbid(unsafe_code)] (see src/lib.rs crate attribute).

§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

FeatureDescription
(none)Core engine: no_std + no_alloc + zero unsafe
allocOpt-in heap via alloc crate for host-side tooling
stdOpt-in std library for pipeline and output modules
serdeJSON artifact serialization (requires std)
paper_lockHeadline metric enforcement for reproducibility
experimentalExploratory 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: UNCHANGED

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