2015-03-03 07:50:46 +08:00
|
|
|
QSpectrumAnalyzer
|
|
|
|
=================
|
|
|
|
|
|
|
|
Spectrum analyzer for RTL-SDR (GUI for rtl_power based on PyQtGraph)
|
|
|
|
|
2015-03-03 08:07:00 +08:00
|
|
|
Screenshot
|
|
|
|
----------
|
|
|
|
|
2015-04-24 22:26:42 +08:00
|
|
|
.. image:: https://xmikos.github.io/qspectrumanalyzer/qspectrumanalyzer_screenshot.png
|
2015-03-03 08:07:00 +08:00
|
|
|
|
2015-03-03 07:50:46 +08:00
|
|
|
Requirements
|
|
|
|
------------
|
|
|
|
|
2015-03-03 08:07:00 +08:00
|
|
|
- Python >= 3.3
|
2015-03-03 07:50:46 +08:00
|
|
|
- PyQt >= 4.5
|
|
|
|
- PyQtGraph (http://www.pyqtgraph.org)
|
|
|
|
- rtl-sdr (https://github.com/keenerd/rtl-sdr)
|
2015-12-10 07:08:26 +08:00
|
|
|
- Optional: rtl_power_fftw (https://github.com/AD-Vega/rtl-power-fftw)
|
2015-03-03 07:50:46 +08:00
|
|
|
|
2015-12-10 07:08:26 +08:00
|
|
|
You should use `Keenerds fork of rtl-sdr <https://github.com/keenerd/rtl-sdr>`_
|
|
|
|
(latest Git revision), because ``rtl_power`` in original rtl-sdr (from osmocom.org)
|
|
|
|
is broken (especially when used with cropping).
|
|
|
|
|
|
|
|
Another alternative is
|
|
|
|
`rtl_power_fftw <https://github.com/AD-Vega/rtl-power-fftw>`_ which has various
|
|
|
|
benefits over ``rtl_power``. E.g. better FFT performance (thanks to
|
|
|
|
use of ``fftw`` library) and possibility to use much shorter acquisition time
|
|
|
|
for more real-time continuous measurement (minimum interval in original
|
|
|
|
``rtl_power`` is 1 second, but in ``rtl_power_fftw`` you are only limited
|
|
|
|
by number of frequency hops).
|
2015-03-03 07:50:46 +08:00
|
|
|
|
|
|
|
Usage
|
|
|
|
-----
|
|
|
|
|
2015-04-24 22:26:42 +08:00
|
|
|
Start QSpectrumAnalyzer by running ``qspectrumanalyzer``.
|
2015-03-04 07:15:20 +08:00
|
|
|
|
2015-12-10 07:08:26 +08:00
|
|
|
You can choose if you want to use ``rtl_power`` or ``rtl_power_fftw`` backend in
|
|
|
|
*File* -> *Settings* (default is ``rtl_power``). Path to ``rtl_power``
|
|
|
|
(or ``rtl_power_fftw``) executable can be also manually specified there. You can also
|
|
|
|
set waterfall plot history size in there. Default is 100 lines, be aware that
|
|
|
|
really large sweeps (with a lot of bins) would require a lot of system memory, so
|
|
|
|
don't make this number too big.
|
2015-03-04 07:15:20 +08:00
|
|
|
|
|
|
|
Controls should be intuitive, but if you want consistent results, you should
|
2015-03-04 07:21:20 +08:00
|
|
|
turn off automatic gain control (set it to some fixed number) and also set
|
2015-03-04 07:15:20 +08:00
|
|
|
crop to 20% or more. For finding out ppm correction factor for your rtl-sdr
|
2015-04-24 22:26:42 +08:00
|
|
|
stick, use `kalibrate-rtl <https://github.com/steve-m/kalibrate-rtl>`_.
|
2015-03-04 07:15:20 +08:00
|
|
|
|
|
|
|
You can move and zoom plot with mouse, change plot settings or export plots
|
|
|
|
from right-click menu. Waterfall plot black/white levels and color lookup
|
|
|
|
table can be changed in mini-histogram widget.
|
2015-12-10 08:38:17 +08:00
|
|
|
|
|
|
|
Installation
|
|
|
|
------------
|
|
|
|
|
|
|
|
**Arch Linux:**
|
|
|
|
::
|
|
|
|
|
|
|
|
git clone https://aur.archlinux.org/qspectrumanalyzer.git
|
|
|
|
cd qspectrumanalyzer
|
|
|
|
makepkg -sri
|
|
|
|
|
|
|
|
Or simply use `pacaur <https://aur.archlinux.org/packages/pacaur>`_ (or any other AUR helper):
|
|
|
|
::
|
|
|
|
|
|
|
|
pacaur -S qspectrumanalyzer
|
|
|
|
|
|
|
|
**Debian / Ubuntu:**
|
|
|
|
::
|
|
|
|
|
|
|
|
sudo apt-get install python3-pip python3-pyqt4 python3-numpy
|
|
|
|
sudo pip3 install qspectrumanalyzer
|
|
|
|
|
|
|
|
Warning! ``pip`` will install packages system-wide by default, but you
|
|
|
|
should always use your distribution package manager for this.
|
|
|
|
|
|
|
|
You can install it locally only for your current user by running this (without ``sudo``):
|
|
|
|
::
|
|
|
|
|
|
|
|
pip3 install --user qspectrumanalyzer
|
|
|
|
|
2015-12-10 08:42:04 +08:00
|
|
|
Executables will be then placed in ``~/.local/bin`` directory, you can add it to your
|
2015-12-10 08:38:17 +08:00
|
|
|
PATH in ``~/.bashrc``.
|
|
|
|
|
|
|
|
Todo:
|
|
|
|
-----
|
|
|
|
|
|
|
|
- peak hold (maybe even with gradual fading, RTSA-like spectrum visualization similar to
|
|
|
|
`gr-fosphor <http://www.cgran.org/pages/gr-fosphor.html>`_)
|
|
|
|
- automatic peak detection / highlighting
|
|
|
|
- frequency markers / bookmarks with notes (even importing / exporting .csv file with
|
|
|
|
predefined channels, etc.)
|