gnuradio
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| gnuradio [2010/10/25 12:15] – angelegt 141.46.188.9 | gnuradio [2024/12/25 13:46] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== GNU Radio ====== | ====== GNU Radio ====== | ||
| Eine Software um im PC Datensignale zu verarbeiten und zu erzeugen | Eine Software um im PC Datensignale zu verarbeiten und zu erzeugen | ||
| + | * Audioausgabe: | ||
| ===== Code-Schnippsel ===== | ===== Code-Schnippsel ===== | ||
| Zeile 8: | Zeile 9: | ||
| Falls es Fehler gibt die darauf hinweisen, dass keine Hardware da ist, mit dem Befehl | Falls es Fehler gibt die darauf hinweisen, dass keine Hardware da ist, mit dem Befehl | ||
| '' | '' | ||
| - | prüfen, ob die entsprechende Karte " | + | prüfen, ob die entsprechende Karte angezeigt wird (und " |
| '' | '' | ||
| + | |||
| Jetzt ist die Netzwerkkarte verfügbar. | Jetzt ist die Netzwerkkarte verfügbar. | ||
| Zeile 16: | Zeile 18: | ||
| Jetzt gibt es Aufgaben: | Jetzt gibt es Aufgaben: | ||
| - | | + | |
| - | | + | |
| Und ich kenne min. 2 Arten das zu tun. | Und ich kenne min. 2 Arten das zu tun. | ||
| Zeile 25: | Zeile 27: | ||
| 2 Fenster | 2 Fenster | ||
| Fenster a: | Fenster a: | ||
| - | usrp2_rx_cfile.py -f 10700000 -s -d 250 pipe | + | |
| und später mit Strg+C beenden | und später mit Strg+C beenden | ||
| Fenster b: | Fenster b: | ||
| - | '' | + | |
| Oder in einem Terminal: | Oder in einem Terminal: | ||
| durch Anhängen des Zeichen ''&'' | durch Anhängen des Zeichen ''&'' | ||
| + | |||
| + | |||
| + | |||
| + | === Netzwerkschnittstelle aktivieren === | ||
| + | |||
| + | |||
| + | sudo ifconfig eth0 up | ||
| + | |||
| + | im Verzeichnis gnuradio/ | ||
| + | die FIFO Datei pipe erzeugen (einmalig) | ||
| + | mkfifo pipe | ||
| + | |||
| + | usrp2 in diese Pipe streamen lassen | ||
| + | |||
| + | |||
| + | usrp2_rx_cfile.py -f 10700000 -d 125 pipe | ||
| + | usrp2_rx_cfile.py -f 10700000 -s -d 250 pipe | ||
| + | |||
| + | |||
| + | (mit Strg + C abbrechen) - es wird in den FIFO geschrieben! | ||
| + | |||
| + | cat pipe | ../ | ||
| + | |||
| + | cat pipe | ../ | ||
| + | |||
| + | |||
| + | === multimon: === | ||
| + | |||
| + | make | ||
| + | |||
| + | cd multimon/ | ||
| + | ./multimon | ||
| + | |||
| + | == Frequenzen == | ||
| + | |||
| + | http:// | ||
| + | 465,97MHz | ||
| + | 466,23MHz | ||
| + | mitte auf 466,09 MHz stellen und mit 400000 sps (250er Decimation) | ||
| + | |||
| + | 131,9MHz service channels aircrafts | ||
| + | 392,775 MHz FSK Moduliert, hohe Bitrate, kleiner Hub | ||
| + | 391,325MHz, 391,95MHz FSK | ||
| + | 187,75MHz lokale Werbung? | ||
| + | 182,25 MHZ ASK? | ||
| + | 172,25MHz FM digital | ||
| + | 168,725MHz digital 164,15 | ||
| + | 151,95MHz Digital | ||
| + | |||
| + | |||
| + | mit angehängtem Zeichen "&" | ||
| + | |||
| + | Anzeigen der pid mit ps | ||
| + | phyton und baudline sind die gestarteten Prozesse | ||
| + | |||
| + | FM Spektrum bei Sprache 3 Träger (oder Seitenbänder? | ||
| + | 99,2 MHz | ||
| + | 99,49 MHz | ||
| + | |||
| + | 12.629MHz: TAH | ||
| + | 14.070 CW und Digimodes | ||
| + | |||
| + | Divider samplerate | ||
| + | 250 400000 | ||
| + | 125 800000 | ||
| + | 100 1000000 | ||
| + | 50 2000000 | ||
| + | |||
| + | sudo aptitude install gnuradio gnuradio-companion gnuradio-utils usrp python-usrp libgnuradio-usrp python-gnuradio-usrp | ||
| + | python-gnuradio-usrp | ||
| + | libgnuradio-usrp | ||
| + | python-usrp | ||
| + | |||
| + | |||
| + | |||
| + | FM-Demodulator (fm2.grc): | ||
| + | |||
| + | Die Abtastraten müssen vom USRP übers Filter und den FM-Demodulator (WBFM Receive) bis zur Soundkarte stimmen. Im Beispiel heißt das: | ||
| + | |||
| + | USRP2 bietet 100Msamples/ | ||
| + | 100e6 / 125 = 800e3 | ||
| + | |||
| + | Tiefpass dezimiert dieses Eingangssignal mit 5: | ||
| + | 800e3 / 5 = 160e3 | ||
| + | |||
| + | FM-Demodulator nimmt 160k als Quadraturrate und dezimiert die Audio-Ausgabe mit 5: | ||
| + | 160e3 / 5 = 32e3 | ||
| + | |||
| + | Die Soundkarte wird mit 32kHz angesprochen. | ||
| + | Hinweis: Bei " | ||
| + | |||
| + | Zur USRP2-Quelle: | ||
| + | " | ||
| + | |||
| + | http:// | ||
| + | https:// | ||
| + | |||
| + | |||
| + | 187,75 MHz (Oberwelle Radio FM?), Spiegelempfang (AM/FM Durchschlag!) | ||
| + | 192,24 TV Bild | ||
| + | 136 digitales Spektrum | ||
| + | 195,7 abwechselnd analog und digitale modulation? | ||
| + | 197,5 FM auslänisch | ||
| + | 197,75FM auslänisch | ||
| + | 221,75 | ||
| + | 233,55 digital | ||
| + | |||
| + | |||
| + | Pfeifen, 50Hz und ähnlihe Sachen | ||
| + | 125 | ||
| + | 150 | ||
| + | 196,6 | ||
| + | 200 | ||
| + | 206,4 | ||
| + | 223,52 | ||
| + | |||
| + | ==== UHD ==== | ||
| + | Einlesen: uhd_rx_cfile.py -f 10700000 -s pipe & | ||
| + | Baudline starten: cat pipe | ./baudline -reset -samplerate 1000000 -channels 2 -quadrature -format le16 -stdin | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ====== USRP2 ====== | ||
| + | Um auszulesen, welche Hardware verfügbar ist: | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ===== Umstieg auf UHD Treiber ===== | ||
| + | Um auf die neuen UHD Treiber umzustellen, | ||
| + | |||
| + | Als Vorbereitung benötigt man: | ||
| + | * Die Dateien: [[http:// | ||
| + | * ein SD-Laufwerk, | ||
| + | * die GNURADIO Companion Umgebung mit UHD, damit folgender Befehl funktioniert: | ||
| + | |||
| + | cd / | ||
| + | sudo ./ | ||
| + | |||
| + | * Zunächst den Inhalt der originalen Karte sichern: '' | ||
| + | * (Mit dem Befehl '' | ||
| + | * Die Datei [[http:// | ||
| + | * Jetzt '' | ||
| + | * Die 2 Dateien wählen und los gehts! | ||
| + | * Achtung hier könnte auch eine Festplatte oder Speicher überschrieben werden! | ||
| + | * {{: | ||
| + | * {{: | ||
| + | * Ups, hier gabe es einen Fehler, irgenwas mit der Unicode-Unterstürtzung, | ||
| + | <code python> | ||
| + | # Zeile 53 in / | ||
| + | # verbose = p.stdout.read().decode() | ||
| + | | ||
| + | </ | ||
| + | * Jetzt klappt es: | ||
| + | |||
| + | < | ||
| + | $ sudo ./ | ||
| + | Burn firmware image: | ||
| + | 32+0 Datensätze ein | ||
| + | 32+0 Datensätze aus | ||
| + | 16384 Bytes (16 kB) kopiert, 0,00756297 s, 2,2 MB/s | ||
| + | |||
| + | Verification Passed: | ||
| + | 32+0 Datensätze ein | ||
| + | 32+0 Datensätze aus | ||
| + | 16384 Bytes (16 kB) kopiert, 0,0058502 s, 2,8 MB/s | ||
| + | |||
| + | |||
| + | |||
| + | $ sudo ./ | ||
| + | Burn fpga image: | ||
| + | 1685+0 Datensätze ein | ||
| + | 1685+0 Datensätze aus | ||
| + | 862720 Bytes (863 kB) kopiert, 0,647275 s, 1,3 MB/s | ||
| + | {{: | ||
| + | Verification Passed: | ||
| + | 1685+0 Datensätze ein | ||
| + | 1685+0 Datensätze aus | ||
| + | 862720 Bytes (863 kB) kopiert, 0,0873257 s, 9,9 MB/s | ||
| + | |||
| + | </ | ||
| + | * {{: | ||
| + | |||
| + | ==== Test ==== | ||
| + | Zum Testen wird die SD Karte eingelegt, das USRP2 wieder mit Spannung versorgt. Die Netzwerkverbindung zum PC endet im PC an einer Gigabitkarte die auf eine IP-Adresse im Subnetz 255.255.255.0 eingerichtet ist. z.B. 192.168.10.1. Das USRP2 hat im UHD Treiber im Normalfall die 192.168.10.2. Nun sollte der Befehl '' | ||
| + | < | ||
| + | $ uhd_find_devices | ||
| + | linux; GNU C++ version 4.4.3; Boost_104000; | ||
| + | |||
| + | -------------------------------------------------- | ||
| + | -- UHD Device 0 | ||
| + | -------------------------------------------------- | ||
| + | Device Address: | ||
| + | type: usrp2 | ||
| + | addr: 192.168.10.2 | ||
| + | name: | ||
| + | serial: 252 | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | Jetzt sollte das Beispielprogramm uhd_fft.py [[http:// | ||
| + | < | ||
| + | Please update the firmware and FPGA images for your device. | ||
| + | See the application notes for USRP2/ | ||
| + | Expected FPGA compatibility number 8, but got 7: | ||
| + | The FPGA build is not compatible with the host code build.</ | ||
| + | Also wiederholen! Ich hatte eine Datei vom November 2011 ausgewählt, | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
gnuradio.1288001709.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
