Spectrum SDR
Live Spectrum Analyzer for Radio Astronomy
This application is designed specifically for radio astronomy to record, visualize, and process the spectra of weak astronomical radio sources, such as the 21cm neutral Hydrogen line. It provides real-time signal processing and advanced post-processing tools to reveal faint signals buried in background noise.
System Requirements
The application requires a connected SDR (Software Defined Radio) device supported by SoapySDR. Users must ensure that the SoapySDR framework is installed on their operating system, including all vendor-specific hardware drivers and the corresponding SoapySDR modules for their device. Additionally, Python 3 is required along with the following libraries: PyQt5, pyqtgraph, numpy, matplotlib, and the SoapySDR Python bindings.
Core Features
- Hardware Control: Adjustable center frequency, gain factor, integration time with dynamic smoothing, and configurable FFT resolution.
- Background Subtraction: Two dedicated options to remove hardware bandpass characteristics:
- Hardware approach using a physical 50-ohm load.
- Software approach using frequency shifting (Frequency Switching).
- Polynomial Baseline Fitting: Calculates and subtracts a polynomial fit from the baseline to flatten the spectrum, actively excluding the central +/- 500 kHz range to protect the target spectral line from being flattened.
- Spectrum Smoothing: Applies dynamic moving average filters to reduce high-frequency noise across adjacent frequency bins.
- Baseline Alignment: Features a manual offset setting and an Auto-Zeroing function to perfectly align the noise floor to the 0 dB baseline for accurate comparisons.
- Data Management: Save current spectrum data as CSV files, load previous reference files, and analyze them side-by-side with live data.
- Scientific Plotting: Generate high-quality, publication-ready plots using Matplotlib, including an interactive dialog to append comprehensive observation metadata (target object, location, antenna, feed, LNB, and Tsys).

