User Tools

Site Tools

Translations of this page?:

en:pysdr

This is an old revision of the document!


FIXME This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)

PySDR

PySDR is a software dedicated to display a live waterfall (spectrogram) from a data stream provided via a unix pipe or JACK audio system. The tool is useful for tuning Bolidozor detection stations. Data visualisation for audience should be provided by Freya tool.

Basic properties

  • OpenGL graphic acceleration
  • A possibility to connect Jacku
  • A possibility to run detection scripts
  • Dynamic scaling using a mouse

PySDR with a detection script.

You can see other screenshots on the following pictures.

Programme control

After downloading and installing the programme according to readme (found on Github) and launching jack (e.g. via qjackctl), the programme can be launched from a working directory using:

./pysdr-waterfall

A window opens, and if there is a data source connected, it will contain a spectrogram. The spectrogram can be moved using a left mouse button and zoomed using a right one.

Keyboard shortcuts

Applicable anytime when the PySDR is running

  • ~ activates Python console (in a Quake style)
  • t textureshot - saving a texture of a whole waterfall
  • s screenshot - saving a current image on display

Command line parameters

Using: waterfall.py [-h] [-b BINS] [-j NAME] [-r RATE] [-o OVERLAP] [-d FILENAME]

Optional arguments:

  • -h, –help shows help and ends
  • -b BINS, –bins BINS setting the number of FFT bins (default: 4096)
  • -H HEIGHT –height height of displayed spectrogram in seconds
  • -j NAME, –jack NAME naming the (?? přípojky) generated in JACK
  • -r RATE, –raw RATE expects a signal from a standard input with a defined sampling speed
  • -o OVERLAP, –overlap OVERLAP ratio of FFT windows overlap (default: 0.75)
  • -d FILENAME, –detector FILENAME file with a detection script

Installation

Ubuntu

Install the necessary dependencies:

sudo apt-get install python-numpy python-opengl python-dev libjack-jackd2-dev

Download the source codes from Githubu

git clone https://github.com/MLAB-project/pysdr.git
cd pysdr

Translate the computationally demanding parts written in C:

python setup.py build_ext --inplace

Run the PySDR using:

./pysdr-waterfall

Audible output

Pro vygenerování audiosignálu z RF signálu přijímaného stanicí byt vytvořen speciální program whistle, který zpracovává audio vstup z jacku. A upravuje jej do slyšitelné podoby. Je dostupný na Githubu ze stejného repositáře, jako pySDR.

Použití whistle

Whistle je konfugorovatelný generátor signálu dají se v něm za sebe různě poskládat operace, které umí. Je to takové hodně malé GNURadio, jen to umí běžet uvnitř callbacku JACKu. Umí to dělat Kaiser-Bessel FIR filtr (zapisuje se jako “kbfir,řád filtru,Fa,Fb,potlačení v nepropustném pásmu v dB”, kde Fa až Fb zastupují rozsah frekvencí pásmové propusti), frekvenční posuv (“freqx,posuv v Hz”), zesílení (“amplify,faktor zesílení”), FM demodulaci (“fmdemod”) a pak ještě něco. Jednotlivé operace se pospojují dvojtečkou a předají parametru -p.

Např.:

./whistle -p freqx,-10000:kbfir,41,0,1000,100:freqx,1000:amplify,100

pro poslech meteorů. Tahle sekvence operací je nastavená jako výchozí, když se tomu -p nepředá.

./whistle -p freqx,-31800:kbfir,201,0,400,200:freqx,500:amplify,200

Před výpočtem FIR filtru se signal posune o 31.8 kHz dolu.

Spočítá se FIR, který má 201 taps.

Pásmová propust od 0 Hz do 400 Hz. Útlum 200 dB.

Výstup z filtru se posune o 500 Hz nahoru.

Výstup se zesílí 200x.

Princip fungování programu

Program provádí frekvenční konverzi komplexním násobením signálu s lokálním číslicovým oscilátorem. Tím je dosaženo frekvenčního posunu odrazu meteoru do nižších frekvencí ze slyšitelného pásma.

Přehrávání z audiosouboru

sox SVAK1_1386323982726.wav -c 2 -t f32 -r 44100 - repeat 20 | jack-stdin pysdr:input_i pysdr:input_q -e float

Socket spojeni

PySDR se může připojit na stanici RMDS02D přímo pomocí netcat. Příklad použití je následující.

nc radio-TEST.local 3701 | ./pysdr-waterfall -r 96000

Kde radio-TEST.local je sitove jmeno stanice. V případě, že pysdr spouštíme rovnou na stanici, tak je to localhost.

en/pysdr.1552661262.txt.gz · Last modified: 2019/03/15 14:47 by fluktuacia