mirror of
https://github.com/miek/inspectrum.git
synced 2026-03-09 01:37:07 +01:00
4eff54ba42b6174ebf84f603ef992c1470c673ff
Currently, SpectrogramPlot::getLine() uses the sample parameter to determine the index of the first sample that is used to calculate the FFT for a particular spectrogram line. Since the FFT is in some sense an average of fftSize samples, this causes features (such as the start and end of packet bursts) to appear somewhat sooner in the spectrogram compared to their actual locations in the IQ file. This improves the time alignment of the spectrogram plot by making sample refer to the middle sample of the FFT (so the samples used to compute the FFT start at sample - fftSize / 2. For the beginning of the file we need to make an exception, because if we try to fetch samples before the beginning of the file, then inputSource->getSamples() returns nullptr. SpectrogramPlot::getLine() handles this gracefully, but an ugly red bar appears at the beginning of the file when the FFT size and zoom are large. To solve this, we cheat and force the FFT to start at the beginning of the file. To be more precise we could pad the beginning with zeros instead. Signed-off-by: Daniel Estévez <daniel@destevez.net>
inspectrum
inspectrum is a tool for analysing captured signals, primarily from software-defined radio receivers.
Try it
Prerequisites
- cmake >= 3.1
- fftw 3.x
- liquid-dsp >= v1.3.0
- pkg-config
- qt5
Build instructions
Build instructions can be found here: https://github.com/miek/inspectrum/wiki/Build
Run
./inspectrum [filename]
Input
inspectrum supports the following file types:
*.sigmf-meta, *.sigmf-data- SigMF recordings*.cf32,*.cfile- Complex 32-bit floating point samples (GNU Radio, osmocom_fft)*.cf64- Complex 64-bit floating point samples*.cs32- Complex 16-bit signed integer samples (SDRAngel)*.cs16- Complex 16-bit signed integer samples (BladeRF)*.cs8- Complex 8-bit signed integer samples (HackRF)*.cu8- Complex 8-bit unsigned integer samples (RTL-SDR)*.f32- Real 32-bit floating point samples*.f64- Real 64-bit floating point samples (MATLAB)*.s16- Real 16-bit signed integer samples*.s8- Real 8-bit signed integer samples*.u8- Real 8-bit unsigned integer samples
If an unknown file extension is loaded, inspectrum will default to *.cf32.
Note: 64-bit samples will be truncated to 32-bit before processing, as inspectrum only supports 32-bit internally.
Features
- Large (100GB+) file support
- Spectrogram with zoom/pan
- Plots of amplitude, frequency, phase and IQ samples
- Cursors for measuring period, symbol rate and extracting symbols
- Export of selected time period, filtered samples and demodulated data
Contact
- #inspectrum on libera.chat
Languages
C++
96.3%
CMake
3.7%
