All Projects → xmikos → Soapy_power

xmikos / Soapy_power

Licence: mit
Obtain power spectrum from SoapySDR devices (RTL-SDR, Airspy, SDRplay, HackRF, bladeRF, USRP, LimeSDR, etc.)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Soapy power

Qspectrumanalyzer
Spectrum analyzer for multiple SDR platforms (PyQtGraph based GUI for soapy_power, hackrf_sweep, rtl_power, rx_power and other backends)
Stars: ✭ 677 (+669.32%)
Mutual labels:  fft, radio, sdr, rtl-sdr, software-defined-radio, hackrf
Gqrx
Software defined radio receiver powered by GNU Radio and Qt.
Stars: ✭ 1,934 (+2097.73%)
Mutual labels:  fft, sdr, rtl-sdr, hackrf
RTLion
Multipurpose RTL-SDR Framework for RTL2832 based DVB-T receivers
Stars: ✭ 88 (+0%)
Mutual labels:  radio, sdr, rtl-sdr, software-defined-radio
Airspy Fmradion
Software decoder for FM/AM broadcast radio with AirSpy R2 / Mini, Airspy HF+, and RTL-SDR
Stars: ✭ 59 (-32.95%)
Mutual labels:  radio, sdr, rtl-sdr, software-defined-radio
Easy Sdr
This project is about creation of affordable and easy-to-manufacture prototypes of PCBs which are used to expand the capabilities of existing low-cost SDR receivers based on RTL2832U chip.
Stars: ✭ 275 (+212.5%)
Mutual labels:  radio, sdr, rtl-sdr, hackrf
urh
Universal Radio Hacker: Investigate Wireless Protocols Like A Boss
Stars: ✭ 9,060 (+10195.45%)
Mutual labels:  radio, sdr, rtl-sdr, hackrf
gqrx
Software defined radio receiver powered by GNU Radio and Qt.
Stars: ✭ 2,345 (+2564.77%)
Mutual labels:  sdr, rtl-sdr, fft, hackrf
Rtlsdr Scanner
A cross platform Python frequency scanning GUI for the OsmoSDR rtl-sdr library
Stars: ✭ 544 (+518.18%)
Mutual labels:  radio, sdr, rtl-sdr
Gnss Sdr
GNSS-SDR, an open-source software-defined GNSS receiver
Stars: ✭ 801 (+810.23%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
Sdrangel
SDR Rx/Tx software for Airspy, Airspy HF+, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube
Stars: ✭ 1,058 (+1102.27%)
Mutual labels:  sdr, rtl-sdr, hackrf
rtlsdr-wsprd
WSPR daemon for RTL receivers
Stars: ✭ 93 (+5.68%)
Mutual labels:  radio, sdr, rtl-sdr
vor-python-decoder
Decodes VOR signal from WAV file to get the bearing to your position
Stars: ✭ 33 (-62.5%)
Mutual labels:  radio, sdr, rtl-sdr
Rfsec Toolkit
RFSec-ToolKit is a collection of Radio Frequency Communication Protocol Hacktools.无线通信协议相关的工具集,可借助SDR硬件+相关工具对无线通信进行研究。Collect with ♥ by HackSmith
Stars: ✭ 1,085 (+1132.95%)
Mutual labels:  radio, sdr, hackrf
RTLSDR-Airband
Multichannel AM/NFM demodulator
Stars: ✭ 487 (+453.41%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
Openwebrx
Open source, multi-user SDR receiver software with a web interface
Stars: ✭ 813 (+823.86%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
RF-List
RFSec tools
Stars: ✭ 98 (+11.36%)
Mutual labels:  radio, sdr, hackrf
Pysdr
A guide for using Python as a software-defined radio (SDR) framework, for extremely rapid development of SDR apps/research with beautiful GUIs
Stars: ✭ 60 (-31.82%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
Adsb Out
📶 1090ES ADS-B Out Add-on
Stars: ✭ 74 (-15.91%)
Mutual labels:  radio, sdr, hackrf
Hackrf
low cost software radio platform
Stars: ✭ 4,286 (+4770.45%)
Mutual labels:  radio, sdr, hackrf
Localradio
📻 LocalRadio is "Radio for Cord-Cutters" – a Software-Defined Radio (SDR) app for your Mac and mobile devices. With an inexpensive RTL-SDR USB device, LocalRadio provides a casual, home-based radio listening experience for your favorite local frequencies - FM broadcasts/free music/news/sports/weather/public safety & aviation scanner/etc.
Stars: ✭ 269 (+205.68%)
Mutual labels:  radio, sdr, rtl-sdr

soapy_power

Obtain power spectrum from SoapySDR devices (RTL-SDR, Airspy, SDRplay, HackRF, bladeRF, USRP, LimeSDR, etc.)

Requirements

  • Python 3 <https://www.python.org>_
  • NumPy <http://www.numpy.org>_
  • SimpleSoapy <https://github.com/xmikos/simplesoapy>_
  • SimpleSpectral <https://github.com/xmikos/simplespectral>_
  • Optional: pyFFTW <https://github.com/pyFFTW/pyFFTW>_ (for fastest FFT calculations with FFTW library)
  • Optional: SciPy <https://www.scipy.org>_ (for faster FFT calculations with scipy.fftpack library)

You should always install SciPy or pyFFTW, because numpy.fft has horrible memory usage and is also much slower.

Usage

::

usage: soapy_power [-h] [-f Hz|Hz:Hz] [-O FILE | --output-fd NUM] [-F {rtl_power,rtl_power_fftw,soapy_power_bin}] [-q]
                   [--debug] [--detect] [--info] [--version] [-b BINS | -B Hz] [-n REPEATS | -t SECONDS | -T SECONDS]
                   [-c | -u RUNS | -e SECONDS] [-d DEVICE] [-C CHANNEL] [-A ANTENNA] [-r Hz] [-w Hz] [-p PPM]
                   [-g dB | -G STRING | -a] [--lnb-lo Hz] [--device-settings STRING] [--force-rate] [--force-bandwidth]
                   [--tune-delay SECONDS] [--reset-stream] [-o PERCENT | -k PERCENT] [-s BUFFER_SIZE] [-S MAX_BUFFER_SIZE]
                   [--even | --pow2] [--max-threads NUM] [--max-queue-size NUM] [--no-pyfftw] [-l] [-R]
                   [-D {none,constant}] [--fft-window {boxcar,hann,hamming,blackman,bartlett,kaiser,tukey}]
                   [--fft-window-param FLOAT] [--fft-overlap PERCENT]

Obtain a power spectrum from SoapySDR devices

Main options:
  -h, --help            show this help message and exit
  -f Hz|Hz:Hz, --freq Hz|Hz:Hz
                        center frequency or frequency range to scan, number can be followed by a k, M or G multiplier
                        (default: 1420405752)
  -O FILE, --output FILE
                        output to file (incompatible with --output-fd, default is stdout)
  --output-fd NUM       output to existing file descriptor (incompatible with -O)
  -F {rtl_power,rtl_power_fftw,soapy_power_bin}, --format {rtl_power,rtl_power_fftw,soapy_power_bin}
                        output format (default: rtl_power)
  -q, --quiet           limit verbosity
  --debug               detailed debugging messages
  --detect              detect connected SoapySDR devices and exit
  --info                show info about selected SoapySDR device and exit
  --version             show program's version number and exit

FFT bins:
  -b BINS, --bins BINS  number of FFT bins (incompatible with -B, default: 512)
  -B Hz, --bin-size Hz  bin size in Hz (incompatible with -b)

Averaging:
  -n REPEATS, --repeats REPEATS
                        number of spectra to average (incompatible with -t and -T, default: 1600)
  -t SECONDS, --time SECONDS
                        integration time (incompatible with -T and -n)
  -T SECONDS, --total-time SECONDS
                        total integration time of all hops (incompatible with -t and -n)

Measurements:
  -c, --continue        repeat the measurement endlessly (incompatible with -u and -e)
  -u RUNS, --runs RUNS  number of measurements (incompatible with -c and -e, default: 1)
  -e SECONDS, --elapsed SECONDS
                        scan session duration (time limit in seconds, incompatible with -c and -u)

Device settings:
  -d DEVICE, --device DEVICE
                        SoapySDR device to use
  -C CHANNEL, --channel CHANNEL
                        SoapySDR RX channel (default: 0)
  -A ANTENNA, --antenna ANTENNA
                        SoapySDR selected antenna
  -r Hz, --rate Hz      sample rate (default: 2000000.0)
  -w Hz, --bandwidth Hz
                        filter bandwidth (default: 0)
  -p PPM, --ppm PPM     frequency correction in ppm
  -g dB, --gain dB      total gain (incompatible with -G and -a, default: 37.2)
  -G STRING, --specific-gains STRING
                        specific gains of individual amplification elements (incompatible with -g and -a, example:
                        LNA=28,VGA=12,AMP=0
  -a, --agc             enable Automatic Gain Control (incompatible with -g and -G)
  --lnb-lo Hz           LNB LO frequency, negative for upconverters (default: 0)
  --device-settings STRING
                        SoapySDR device settings (example: biastee=true)
  --force-rate          ignore list of sample rates provided by device and allow any value
  --force-bandwidth     ignore list of filter bandwidths provided by device and allow any value
  --tune-delay SECONDS  time to delay measurement after changing frequency (to avoid artifacts)
  --reset-stream        reset streaming after changing frequency (to avoid artifacts)

Crop:
  -o PERCENT, --overlap PERCENT
                        percent of overlap when frequency hopping (incompatible with -k)
  -k PERCENT, --crop PERCENT
                        percent of crop when frequency hopping (incompatible with -o)

Performance options:
  -s BUFFER_SIZE, --buffer-size BUFFER_SIZE
                        base buffer size (number of samples, 0 = auto, default: 0)
  -S MAX_BUFFER_SIZE, --max-buffer-size MAX_BUFFER_SIZE
                        maximum buffer size (number of samples, -1 = unlimited, 0 = auto, default: 0)
  --even                use only even numbers of FFT bins
  --pow2                use only powers of 2 as number of FFT bins
  --max-threads NUM     maximum number of PSD threads (0 = auto, default: 0)
  --max-queue-size NUM  maximum size of PSD work queue (-1 = unlimited, 0 = auto, default: 0)
  --no-pyfftw           don't use pyfftw library even if it is available (use scipy.fftpack or numpy.fft)

Other options:
  -l, --linear          linear power values instead of logarithmic
  -R, --remove-dc       interpolate central point to cancel DC bias (useful only with boxcar window)
  -D {none,constant}, --detrend {none,constant}
                        remove mean value from data to cancel DC bias (default: none)
  --fft-window {boxcar,hann,hamming,blackman,bartlett,kaiser,tukey}
                        Welch's method window function (default: hann)
  --fft-window-param FLOAT
                        shape parameter of window function (required for kaiser and tukey windows)
  --fft-overlap PERCENT
                        Welch's method overlap between segments (default: 50)

Example

::

[[email protected] ~] soapy_power -r 2.56M -f 88M:98M -B 500k -F rtl_power -O output.txt --even -T 1 --debug
DEBUG: pyfftw module found (using 4 threads by default)
DEBUG: Applying fixes for RTLSDR quirks...
INFO: Using device: RTLSDR
DEBUG: SoapySDR stream - buffer size: 8192
DEBUG: SoapySDR stream - read timeout: 0.103200
INFO: repeats: 106667
INFO: samples: 640002 (time: 0.25000 s)
INFO: max_buffer_size (samples): 32768000 (repeats: 5461333.33, time: 12.80000 s)
INFO: buffer_size (samples): 647168 (repeats: 107861.33, time: 0.25280 s)
INFO: buffer_repeats: 1
INFO: overlap: 0.00000
INFO: bin_size: 426666.67 Hz
INFO: bins: 6
INFO: bins (after crop): 6
INFO: sample_rate: 2.560 MHz
INFO: sample_rate (after crop): 2.560 MHz
INFO: freq_range: 10.000 MHz
INFO: hopping: YES
INFO: hop_size: 2.560 MHz
INFO: hops: 4
INFO: min_center_freq: 89.280 MHz
INFO: max_center_freq: 96.960 MHz
INFO: min_freq (after crop): 88.000 MHz
INFO: max_freq (after crop): 98.240 MHz
DEBUG: Frequency hops table:
DEBUG:   Min:          Center:       Max:    
DEBUG:     88.000 MHz    89.280 MHz    90.560 MHz
DEBUG:     90.560 MHz    91.840 MHz    93.120 MHz
DEBUG:     93.120 MHz    94.400 MHz    95.680 MHz
DEBUG:     95.680 MHz    96.960 MHz    98.240 MHz
DEBUG: Run: 1
DEBUG:   Frequency hop: 89280000.00 Hz
DEBUG:     Tune time: 0.017 s
DEBUG:     Repeat: 1
DEBUG:       Acquisition time: 0.251 s
DEBUG:     Total hop time: 0.282 s
DEBUG: FFT time: 0.103 s
DEBUG:   Frequency hop: 91840000.00 Hz
DEBUG:     Tune time: 0.010 s
DEBUG:     Repeat: 1
DEBUG:       Acquisition time: 0.251 s
DEBUG:     Total hop time: 0.272 s
DEBUG: FFT time: 0.006 s
DEBUG:   Frequency hop: 94400000.00 Hz
DEBUG:     Tune time: 0.010 s
DEBUG:     Repeat: 1
DEBUG:       Acquisition time: 0.252 s
DEBUG:     Total hop time: 0.266 s
DEBUG: FFT time: 0.004 s
DEBUG:   Frequency hop: 96960000.00 Hz
DEBUG:     Tune time: 0.010 s
DEBUG:     Repeat: 1
DEBUG:       Acquisition time: 0.253 s
DEBUG:     Total hop time: 0.267 s
DEBUG: FFT time: 0.004 s
DEBUG:   Total run time: 1.095 s
DEBUG: Number of USB buffer overflow errors: 0
DEBUG: PSD worker threads: 4
DEBUG: Max. PSD queue size: 2 / 40
DEBUG: Writer worker threads: 1
DEBUG: Max. Writer queue size: 2 / 100
INFO: Total time: 1.137 s

Output::

2017-03-17, 13:18:25, 88000000.0, 90560000.0, 426666.666667, 647168, -98.6323, -98.7576, -97.3716, -98.3133, -98.8829, -98.9333
2017-03-17, 13:18:25, 90560000.0, 93120000.0, 426666.666667, 647168, -95.7163, -96.2564, -97.01, -98.1281, -90.701, -88.0872
2017-03-17, 13:18:25, 93120000.0, 95680000.0, 426666.666667, 647168, -99.0242, -91.3061, -91.9134, -85.4561, -86.0053, -97.8411
2017-03-17, 13:18:26, 95680000.0, 98240000.0, 426666.666667, 647168, -94.2324, -83.7932, -78.3108, -82.033, -89.1212, -97.4499
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].