← Back to project catalogue
GP-EC-1EJIRBXElectronicsReady

RF Spectrum Occupancy Analyser

A completed receive-only RF engineering laboratory for measuring channel occupancy, occupied bandwidth, noise thresholds, events, and measurement uncertainty from complex baseband signals.

RF Spectrum Occupancy Analyser project visual
GP-EC-1EJIRBX · Electronics
  • Python
  • NumPy
  • SciPy
  • Pandas
  • Matplotlib
  • SigMF
  • Jupyter

Project definition

Problem statement

Spectrum occupancy depends on both the observed signals and the measurement configuration. Noise drift, spectral leakage, threshold choice, frequency offset, and revisit time can change whether a channel appears occupied.

The engineering problem is to define occupancy precisely, calibrate a transparent receive-only detector, measure its performance against known truth, and retain the conditions under which it fails.

Project objectives

  • Generate repeatable complex-baseband recordings for seven RF traffic and noise conditions.
  • Calculate a Hann-window spectrogram and integrate power over eight declared channels.
  • Estimate an independent noise reference and apply a configurable relative threshold.
  • Measure channel-frequency occupancy, frequency-bin occupancy, resource occupancy, and events.
  • Quantify sensitivity to threshold, FFT resolution, window, revisit time, noise drift, frequency offset, and observation duration.
  • Report detector recall, specificity, balanced accuracy, occupancy error, and uncertainty.

Project structure

Project components

01

Signal model

Generates reproducible noise, steady carriers, bursts, adjacent signals, low-SNR signals, and frequency-agile traffic.

02

Spectral processor

Segments complex samples, applies the selected window, and calculates time-frequency power.

03

Occupancy detector

Calibrates channel thresholds from independent noise and produces bin, channel, resource, and event decisions.

04

Experiment runner

Runs the baseline cases and seven controlled sensitivity studies plus paired Monte Carlo trials.

05

Evidence package

Exports CSV, JSON, NPZ, SigMF, figures, tests, references, and editable documentation.

Methodology

Project workflow

  1. 01
    Configure

    Read the retained sample rate, channel plan, FFT, overlap, threshold, seed, and observation duration.

  2. 02
    Generate

    Create a labelled complex-baseband recording for the selected traffic scenario.

  3. 03
    Calibrate

    Use an independent noise-only recording to determine the channel detection thresholds.

  4. 04
    Analyse

    Calculate the spectrogram, channel power, decisions, events, occupancy definitions, and confidence intervals.

  5. 05
    Compare

    Inspect baseline accuracy and the retained threshold, revisit, drift, offset, resolution, and duration limits.

Demonstration scenario

Run the mixed-traffic recording, inspect the eight-channel waterfall, compare known and detected activity, and calculate three occupancy definitions. Then increase revisit time, noise drift, and frequency offset to show where a detector that performs well at baseline begins to lose events or assign occupancy to the wrong channel.

Engineering

Tools and method

Tools
The project uses Python, NumPy, SciPy, Pandas, Matplotlib, SigMF, Jupyter for subject analysis, simulation, and results.
Signal generation
Python and NumPy create complex thermal noise and scheduled channel signals at a 256 ksample per second baseband rate.
Spectral analysis
SciPy and NumPy implement the Hann-window spectrogram and channel-power integration.
Statistics
SciPy calculates exact binomial confidence intervals, while Pandas retains every experiment row.
Figures
Matplotlib creates fourteen labelled measurement, sensitivity, uncertainty, and performance figures.
Verification
Forty-one tests, branch coverage, dependency checks, a vulnerability audit, and release validation support the delivered result.

Testing

Evaluation

Evaluation measures

  • Signal recall and noise-only specificity across the seven baseline scenarios
  • Balanced accuracy and spectral resource occupancy error
  • Event recall as the effective revisit interval increases
  • False occupancy under positive noise-floor drift
  • Channel assignment error under common frequency offset
  • Confidence-interval width as observation duration changes
  • Distribution of accuracy across 120 paired Monte Carlo trials

Project boundaries

  • The retained evidence is synthetic and does not claim real occupancy at the nominal 915 MHz metadata frequency.
  • The project is receive-only and contains no transmitter, protocol decoder, or interference function.
  • The amplitudes are numerical dBFS-related values and are not calibrated dBm or field-strength measurements.
  • One receiver, antenna, time, and location cannot represent a wider geographic area.
  • Any hardware extension requires legal and institutional permission, receiver calibration, documented equipment, and review of the relevant spectrum rules.

Included

  1. 01Eight-channel synthetic complex-baseband RF laboratory
  2. 02Seven baseline traffic, noise, interference, and frequency-agile scenarios
  3. 03Independent noise calibration and threshold-based occupancy detector
  4. 04Channel occupancy, bin occupancy, spectral resource occupancy, events, and confidence intervals
  5. 05Threshold, resolution, window, revisit, noise-drift, frequency-offset, and duration studies
  6. 06A 120-run paired Monte Carlo experiment and 723 retained result records
  7. 07Representative SigMF recording and fourteen labelled project figures
  8. 08Forty-one automated tests with 100 percent core coverage
  9. 09Complete project files, calculations, results, and analysis material in a private GitHub repository
  10. 10A 70-page project report in PDF and editable Word formats
  11. 11A 15-page setup and usage guide in PDF and editable Word formats
  12. 12Fifty annotated references with licensed literature-image provenance

Project record

No information is collected on this page.

Permanent project ID
GP-EC-1EJIRBX
Catalogued
21 Aug 2026
Completed
26 Aug 2026
Verified
26 Aug 2026
Demonstration
Included in repository

Handover

After purchase

  1. 01
    Payment is confirmed

    The project is marked unavailable and cannot be purchased again.

  2. 02
    Repository access is granted

    The buyer's submitted GitHub account receives access to the private repository.

  3. 03
    The purchase record is delivered

    The certification sheet is prepared from the reviewed buyer details and sent privately by email.