Jde o program určený ke zobrazení živého waterfallu (spektrogramu) ze streamu dat. Ten může být poskytnut přes unixovou rouru, nebo JACK audio systém. Nástroj je užitečný pro ladění detekční stanice Bolidozor. K vizualizaci dat návštěvníkům má sloužit nástroj Freya.
Další screenshoty můžete vidět na následujících obrázcích.
Po stažení a instalaci podle readme na Githubu a zapnutí jacku (například přes qjackctl) můžeme program spustit z pracovního adresáře pomocí.
./pysdr-waterfall
Otevře se nám okno, které v případě, že je připojený nějaký zdroj dat, obsahuje spektrogram. Spektrogram lze levým tlačítkem myši posouvat a pravým zoomovat.
Aplikují kdykoli při běžícím PySDR.
Použití: waterfall.py [-h] [-b BINS] [-j NAME] [-r RATE] [-o OVERLAP] [-d FILENAME]
Nepovinné argumenty:
Nainstalujeme potřebné závislosti:
sudo apt-get install python-numpy python-opengl python-dev libjack-jackd2-dev
Stáhneme zdrojové kódy z Githubu
git clone https://github.com/MLAB-project/pysdr.git cd pysdr
Přeložíme výpočetně náročné části napsané v C.
python setup.py build_ext --inplace
Potom PySDR můžeme spustit pomocí
./pysdr-waterfall
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.
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.
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.
PySDR má ještě variantu pysdr-recviewer, který umožňuje zobrazovat wav a FITS záznamy.
$ ./pysdr-recviewer CAR0-2020_08_08_230121644423754.wav
Pro fits soubor je možné si to vyzkoušet například na následujícím meteoru
wget http://space.astro.cz/bolidozor/svakov/SVAKOV-R12/meteors/2020/08/09/08/20200809082529162_SVAKOV-R12_raws.fits ./pysdr-recviewer 20200809082529162_SVAKOV-R12_raws.fit
sox SVAK1_1386323982726.wav -c 2 -t f32 -r 44100 - repeat 20 | jack-stdin pysdr:input_i pysdr:input_q -e float
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.