Uživatelské nástroje

Nástroje pro tento web

Tento překlad je starší než originální stránka a nejspíše i zastaralý. Zobrazit změny.
Překlady této stránky?:

cs:pysdr

Toto je starší verze dokumentu!


OpenGL waterfall display pySDR

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.

Základní vlastnosti

  • OpenGL grafická akcelerace
  • Možnost připojení do Jacku
  • Možnost spuštění detekčních skriptů
  • Dynamická změna měřítka pomocí myši

PySDR s detekčním skriptem.

Další screenshoty můžete vidět na následujících obrázcích.

Ovládání programu

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

Klávesové zkratky

Aplikují kdykoli při běžícím PySDR.

  • ~ aktivace Python konzole (ve stylu Quake)
  • t textureshot - uložení textury celého waterfallu
  • s screenshot - uložení aktuálního zobrazení na obrazovce

Parametry příkazového řádku

Použití: waterfall.py [-h] [-b BINS] [-j NAME] [-r RATE] [-o OVERLAP] [-d FILENAME]

Nepovinné argumenty:

  • -h, –help ukáže nápovědu a zkončí
  • -b BINS, –bins BINS nastavení počtu binů FFT (default: 4096)
  • -H HEIGHT –height Výška zobrazeného spektrogramu v sekundách.
  • -j NAME, –jack NAME pojmenování přípojky vytvořené v JACKu
  • -r RATE, –raw RATE Očekává signál ze standardního vstupu se zadanou rychlostí vzorkování.
  • -o OVERLAP, –overlap OVERLAP poměr překrytí FFT oken (default: 0.75)
  • -d FILENAME, –detector FILENAME soubor s detekčním skriptem.

Instalace

Ubuntu

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

Použití s gnuradiem

Generování zvukového výstupu - Whistle

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.

Princip funkce 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

Prezentační vrstva detekční stanice

Pro přímé zobrazování detekovaných meteorů může běžet živý waterfall i na jiném počítači, než na kterém běží detekční stanice. Blokové schéma systému pak vypadá následovně:

Jednotlivé bloky jsou výše zmíněné programy. Za ideálních podmínek by prezentačních stanic mohlo být k jedné detekční stanici připojeno více.

Spuštění pySDR na prezentačním počítači

Pokud je stanice připojena datovou linkou s dostatečnou propustností, tak je možné pustil pySDR lokálně a prohlížet si přitom data ze vzdálené stanice.

SSH

Jednou z možností je použití trubek přes ssh spojení. V tom případě budeme postupovat následovně.

  1. Spustíme jack například přes 'qjackctl'
  2. Spustíme pySDR 'python waterfall.py'
  3. Připojíme se na vzdálenou stanici a přesměrujeme data do unixové trubky:
ssh radio.ust.cz "arecord -f S16_LE -r 44100 -c 2 | buffer -b 1024" | jack-stdin i q

V qjackctl pak přetažením myší spojíme stdin a pysdr. Nyní by měl být v pysdr vidět waterfall ze vzdálené stanice.

NetJack

sudo apt-get install qjackctl

Uživatel musi byt v skupine audio

sudo adduser kaklik audio

a v /etc/security/limits.conf je treba nastavit:

@audio - rtprio 99
@audio - memlock unlimited

Pokud se to neudala, tak spusteni jakck zkonci takto:

jackdmp 1.9.8
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2011 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
Segmentation fault (core dumped)
Lokalni spojeni Jack

Potom lze jack spustit:

jackd -d alsa -dhw:1

kde hw:1 cislo je urcene podle /proc/asound/cards, nebo:

aplay -l 
Sitove spojeni Jack

Nejdrive musi instalace jack fungovat lokalne viz vise.

Nasledne na master pocitaci spustime:

qjackctl

a nastavime zdroj dat z remote klienta na lokalni siti:

jack_netsource -H kaklik-netbook.local

Na remote klientovi pak presmerujeme audiovystup na jack v siti:

jackd -R -d netone 

Zdroj http://netjack.sourceforge.net/

Jacktrip

Jacktrip je metoda pro přenášení zvukových dat přes jack, která synchronizuje vzájemně dvě instance jacku běžící na různých strojích..

sudo apt-get install jacktrip dbus-x11 
Server

Na staničním počítači musíme spustit instanci jacku, která bude číst data ze správné zvukovky. V tomto případě je to externí USB zvukovka s hw:1

jackd -R -dalsa -dhw:1

Dále pak spustíme jacktrip server

jacktrip -q 8 -r 3 -s

Na vizualizačním počítači pak spustíme istanci jacku, která musí mít nastavenou stejnou vzorkovací frekvenci, jako instance detekční stanici, zde si ale můžeme pomoci grafickým nástrojem qjackctl

qjackctl 
Klient

Kde v jeho menu nastavíme správnou vzorkovací frekvenci. Pak spustíme jacktrip klienta s parametrem IP adresy detekční stanice. Jacktrip je ale potřeba zkompilovat, protože balíčková verze v Ubuntu nefunguje.

sudo apt-get install libasound2-dev libjack-jackd2-dev
svn co http://jacktrip.googlecode.com/svn/trunk/jacktrip
cd ./jacktrip/src/
./build

Nyní jej můžeme spustit:

./jacktrip -z -c 192.168.1.21

protože jacktrip nepodporuje zeroconf, tak můžete nechat IP adresu doplnit bash

`resolveip -s popelnice.local`

Po spojení s protistanicí by se v zapojovací desce qjackctl mělo objevit zařízení jacktrip. Parametr -z v tomto případě znamená poskytnutí nulových hodnot při podtečení bufferu.

Více klientů

Pokud chcete mít připojení ke stanici pro více uživatelů, musí být na detekčním PC spuštěno více serverů s jiným portem.

Na straně serveru pro každého klienta musíte do nového terminálu zadat

jacktrip -s -o10

kde za parametrem -o je offset od portu 4464, pro každé nové připojení tento offset musí být jiný.

Na uživatelském počítači zadáte:

jacktrip -c -o10

se stejným parametrem -oX

QmidiNet

Qmidinet je aplikace, která slouží k přenosu Midi dat po síti.

QmidiNet nainstalujete:

sudo apt-get install qmidinet

A spouští se stejným příkazem na straně serveru i u klienta.

qmidinet -p21928

kde za -p vložíte vlastní UDP port. Pak by se v qjackctl měla objevit QmidiNet propojka

cs/pysdr.1410633529.txt.gz · Poslední úprava: 2014/09/13 18:38 autor: kaklik