Uživatelské nástroje

Nástroje pro tento web


cs:pysdr

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
cs:pysdr [2014/11/14 23:15] – [Použití whistle] kaklcs:pysdr [2020/08/09 19:40] (aktuální) – [Přehrávání z audiosouboru] kaklik
Řádek 1: Řádek 1:
-====== OpenGL waterfall display pySDR ======+====== 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. +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í [[http://wiki.bolidozor.cz/doku.php?id=cs:rmds|detekční stanice Bolidozor]]. K vizualizaci dat návštěvníkům má sloužit nástroj [[cs:freya|Freya]].
  
 ===== Základní vlastnosti ===== ===== Základní vlastnosti =====
Řádek 10: Řádek 11:
   * Dynamická změna měřítka pomocí myši   * Dynamická změna měřítka pomocí myši
  
 +
 +{{youtube>UKHGVK75AGA?medium}}
  
 {{:cs:pysdr:pysdr_detector.png?500|PySDR s detekčním skriptem.}} {{:cs:pysdr:pysdr_detector.png?500|PySDR s detekčním skriptem.}}
Řádek 24: Řádek 27:
   ./pysdr-waterfall   ./pysdr-waterfall
  
-Otevře se nám okno, které v případě, že je připojený nějaký zdroj dat, obsahuje spektrogram+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. 
  
 === Klávesové zkratky === === Klávesové zkratky ===
Řádek 74: Řádek 77:
  
   ./pysdr-waterfall   ./pysdr-waterfall
-   
- 
- 
-==== Použití s gnuradiem ==== 
- 
-{{:examples:pysdr.grc.png?600|}} 
- 
  
 ===== Slyšitelný výstup ===== ===== Slyšitelný výstup =====
Řádek 109: Řádek 105:
  
  
-==== Princip funkce programu ====+==== 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.  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 +===== Zobrazení záznamu =====
-   +
-===== Prezentace signálu z detekční stanice =====+
  
-Pro přímé zobrazování detekovaných meteorů může běžet živý waterfall i na jiném počítačinež na kterém běží detekční staniceBlokové schéma systému pak vypadá následovně:+PySDR má ještě variantu [[https://github.com/MLAB-project/pysdr/blob/master/pysdr-recviewer|pysdr-recviewer]]který umožňuje zobrazovat wav a FITS záznamy.
  
-{{:cs:rmds:user_interface_system.png?600|}}+./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
  
-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.  +  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
- +
-==== 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ě.  +
- +
-  - Spustíme jack například přes 'qjackctl' +
-  - Spustíme pySDR  'python waterfall.py' +
-  - 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é zvukovkyV 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í frekvenciPak 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 qt4-qmake qt4-default +
-  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+===== Přehrávání z audiosouboru =====
  
-  `resolveip -s popelnice.local` +  sox SVAK1_1386323982726.wav -c 2 -t f32 -r 44100 repeat 20 | jack-stdin pysdr:input_i pysdr:input_q -e float
- +
-Po spojení s protistanicí by se v zapojovací desce qjackctl mělo objevit zařízení jacktripParametr -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 --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. Ještě je potřeba povolit připojení qmidinet k jacku. V grafickém prostředí to lze udělat snadno nastavením v nabídce ikony qmidinet. Přes příkazovou řádku je však potřeba vytvořit soubor //~/.config/rncbc.org/QmidiNet.conf// a naplnit jej konfigurací:+==== Socket spojeni ====
  
-  [Options] +PySDR se může připojit na stanici RMDS02D přímo pomocí netcat. Příklad použití je následující. 
-  General\NumPorts=1 +  nc radio-TEST.local 3701 | ./pysdr-waterfall -r 96000
-  General\AlsaMidi=true +
-  General\JackMidi=true +
-  Network\Interface=eth0 +
-  Network\UdpPort=21928+
  
-Pak by se po spuštění qmidinet měla v qjackctl objevit QmidiNet propojka+Kde radio-TEST.local je sitove jmeno stanice. V případě, že pysdr spouštíme rovnou na stanici, tak je to localhost
      
cs/pysdr.1416006926.txt.gz · Poslední úprava: 2014/11/14 23:15 autor: kakl