Forum: Digitale Signalverarbeitung / DSP / Machine Learning GnuRadio - geeignete Parameter gesucht


von Wiebke N. (plonsky22)


Lesenswert?

Hallo zusammen,

ich sitze momentan an meiner Diplomarbeit und komme nicht wirklich 
voran. Meine Aufgabe ist es, die Daten einer GBAS-Station anhand eines 
DVBT-Sticks  zu empfangen und anschließend mit Hilfe eines Software 
Defined Radios die empfangenen Daten zu demodulieren und zu 
entschlüsseln. Das Software Defined Radio soll mit Hilfe der Open-Source 
Software GnuRadio entwickelt werden.

Die bekannten Daten zu dem GBAS-Signal lauten:

-Frequenz: 117,95 MHz
-Symbolrate: 10500 Symbole/s
-Bandbreite 25 kHz
-Pulsformungsfilter: Raised-Cosine Filter mit einem Roll-Off Faktor von 
0,6
-Modulation: D8PSK mit Gray-Codierung und 3 Bits pro Symbol

Damit das ganze zunächst einfacher ist, habe ich mir erst einmal einen 
Signalgenerator geschnappt, mit dem ich eine einfache Bitfolge (1,3,7) 
ohne Gray-Codierung und einem Root-Raised Cosine Filter erzeuge. Mein 
Problem ist jetzt, dass ich mit Hilfe des DVBT-Sticks (RTL 2832U und 
R820T2) das erzeugte Signal empfange, es aber nicht richtig dekodiert 
werden kann. Der Demodulator in GnuRadio übernimmt bereits die Clock und 
Frequenz Synchronisierung. Anhand eines Plots in GnuRadio wird sichtbar, 
dass nach den einzelnen Symbolen immer wieder zur 0 zurückgegangen wird. 
Das darf nicht sein. Meine Vermutung ist jetzt, dass irgendein Parameter 
nicht stimmt. Momentan taste ich mit der fünffachen Bandbreite das vom 
DVBT-Stick bereitgestellte I/Q-Signal ab. Somit habe ich eine 
Samples_pro_Symbol Rate von 11.

Könnt ihr mir vielleicht weiterhelfen?
Vielen lieben Dank

von geheim (Gast)


Lesenswert?

Bist du dir sicher, dass das Signal aus dem Signalgenerator so aussieht 
wie du es gerne hättest? Versuche erst mal den Input zu prüfen.

Hast du einen Plot der I/Q-Samples wie sie in Gnuradio reingehen und was 
Gnuradio dann damit macht?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Erst mal zu GBAS
http://www.rohde-schwarz.de/file/NEWS_208_german_EVS300.pdf
...das neue Landesystem

es gibt Software zum Empfang der Flugzeugpositionsmeldungen um 1 GHz mit 
Gnuradio, auch ein Blockdiagramm zu DVB-T-Sticks mit RTL-Chip

http://sdr.osmocom.org/trac/wiki/rtl-sdr

: Bearbeitet durch User
von Wiebke N. (plonsky22)


Lesenswert?

Ich habe den ausgehende Signal des Signalgenerators auf einem Spektrum 
Analyzer untersucht. Das ausgehende Signal sieht so aus wie es soll. Das 
Signal, was jedoch direkt hinter dem DVBT-Stick abgegriffen wird, hat 
nicht annähernd etwas mit dem generierten Signal zu tun. Bilder folgen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ich verstehe noch nicht ganz die Beschreibung des Messaufbaus. Zuerst 
erzeugt ein Impulsfolgegenerator ein digitales Nutzsignal. Dann 
moduliert derselbe Signalgenerator das passend in zwei Teilsignale 
aufgetrennte Nutzsignal über einen I/Q-Modulator auf einen 
Hochfrequenz-Träger von 117,95 MHz in D8PSK-Modulation.
Gibts zu dem Signalgenerator auch einen Namen?
Auf dem Spektrumanalysator sehe ich dann das hochfrequente Sendesignal, 
wie weiß ich, dass das in Ordnung ist?
Der RTL-SDR mischt diese Hochfrequenz in das I/Q-Basisband bis max. 3 
MHz Bandbreite herunter, demoduliert aber noch nicht.
Die Demodulation muss also in einem weiteren Block des 
Gnuradio-Programms stattfinden, wie heisst der, gibts den irgendwo im 
Web ?

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Lesenswert?

Magst du mal einen Ausschnitt an den IQ-Daten vom SDR-Stick hier 
hochladen? Gnuradio hat nen 'File Sink', damit kannst du die Daten 
speichern. Ab besten noch vorm Hochladen zippen oder so.

von plonsky22 (Gast)


Lesenswert?

Hallo,

vielen Dank für die Antworten. Der Signalgenerator, den ich zum erzeugen 
meines Signals benutze, ist von Rohde&Schwarz. Die genaue Bezeichnung 
lautet: SMBV 100A. Dieser Signalgenerator verfügt über eine Anzeige des 
I/Q-Signals. Auch auf Vektor- oder Constellation-Diagramm einstellbar. 
Genau den gleichen I/Q-Strom zeigt mir mein Spectrum Analyzer bei 
Einstellung der I/Q-Funktion (auch ein Rohde&Schwarz Gerät FSV Signal 
Analyzer) an.
Des Weiteren kann ich mit Hilfe von GnuRadio eine Signalfolge 
generieren, meine Daten mit Hilfe eines Modulationsblocks für D8PSK 
aufmodulieren und über ein Gui sichtbar machen, sodass ich auch hier 
sehe, wie mein I/Q-Strom auszusehen hat.

Mein Stick ist ein Salcar® Top SDR USB DVB-T Receiver Terrestrial 
TV-Empfänger Chip RTL2832U + R820T / DAB FM TV Stick Unterstützt Windows 
7 Vista 2000 XP mit Zimmerantenne Inklusive FM-Radio und 
Digitalradio-Empfänger E4000 upgrade von amazon. Leider weiss ich nichts 
über die Zwischenfrequenz oder das Heruntermischen des Sticks. Aber ja, 
dass muss eigentlich im Stick selbst passieren. Alle anderen Schritte 
müssen anschließend in Software ausgeführt werden. Woher stammt der Wert 
3 MHz Bandbreite?

Den Demodulationsblock den ich benutze gibt es schon fix und fertig in 
der GnuRadio Software. Heisst PSK Demod. Man kann dort individuell 
einstellen, ob das ganze Differential ist, Gray codiert und wie viele 
Constellation Points (in meinem Fall 8, da D8PSK) benutzt werden. Des 
Weiteren kann die Excess Bandwidth eines Root Raised Cosine Filters 
eingetragen werden. Durch das Lesen des Quellcodes habe ich heraus 
gefunden, dass der Demodulationsblock noch weitere Aufgaben übernimmt. 
Er führt eine Clock Sync mit Hilfe des Mueller&Muller Algorithmus durch 
und beseitigt den Frequenz Offset.

Mein Wissen habe ich mir auf dem Gebiet der Signalverarbeitung in den 
letzten Monaten angeeignet. Mein Fachgebiet ist eigentlich ein anderes. 
Ich bin mir ziemlich unsicher und habe echt überhaupt keine Idee, wodran 
es liegt. Der Demodulator Block des GnuRadios funktioniert auch korrekt. 
Vieles hängt von der richtigen Sample Rate ab. Ich habe vorhin nur das 
Trägersignal über meinen Stick empfangen und einen Offset von 12 kHz 
beim Empfang durch den DVBT-Stick festgestellt. Ich habe im Internet 
auch andere Quellen gefunden, die dem internen Oszillator eine große 
Ungenauigkeit bescheinigen. Ich weiss auch nicht, ob ich noch irgendwas 
filtern muss, wenn ja, mit welchem Filter, ob irgendetwas Resampled 
werden muss oder nicht. Dazu hab ich einfach zu wenig Ahnung von der 
ganzen Sache...Ich nehme für euch mal eben die Daten auf und lade sie 
dann hoch.
Vielen Dank

von Wiebke N. (plonsky22)


Lesenswert?

Hallo,

vielen Dank für die Antworten. Der Signalgenerator, den ich zum erzeugen
meines Signals benutze, ist von Rohde&Schwarz. Die genaue Bezeichnung
lautet: SMBV 100A. Dieser Signalgenerator verfügt über eine Anzeige des
I/Q-Signals. Auch auf Vektor- oder Constellation-Diagramm einstellbar.
Genau den gleichen I/Q-Strom zeigt mir mein Spectrum Analyzer bei
Einstellung der I/Q-Funktion (auch ein Rohde&Schwarz Gerät FSV Signal
Analyzer) an.
Des Weiteren kann ich mit Hilfe von GnuRadio eine Signalfolge
generieren, meine Daten mit Hilfe eines Modulationsblocks für D8PSK
aufmodulieren und über ein Gui sichtbar machen, sodass ich auch hier
sehe, wie mein I/Q-Strom auszusehen hat.

Mein Stick ist ein Salcar® Top SDR USB DVB-T Receiver Terrestrial
TV-Empfänger Chip RTL2832U + R820T / DAB FM TV Stick Unterstützt Windows
7 Vista 2000 XP mit Zimmerantenne Inklusive FM-Radio und
Digitalradio-Empfänger E4000 upgrade von amazon. Leider weiss ich nichts
über die Zwischenfrequenz oder das Heruntermischen des Sticks. Aber ja,
dass muss eigentlich im Stick selbst passieren. Alle anderen Schritte
müssen anschließend in Software ausgeführt werden. Woher stammt der Wert
3 MHz Bandbreite?

Den Demodulationsblock den ich benutze gibt es schon fix und fertig in
der GnuRadio Software. Heisst PSK Demod. Man kann dort individuell
einstellen, ob das ganze Differential ist, Gray codiert und wie viele
Constellation Points (in meinem Fall 8, da D8PSK) benutzt werden. Des
Weiteren kann die Excess Bandwidth eines Root Raised Cosine Filters
eingetragen werden. Durch das Lesen des Quellcodes habe ich heraus
gefunden, dass der Demodulationsblock noch weitere Aufgaben übernimmt.
Er führt eine Clock Sync mit Hilfe des Mueller&Muller Algorithmus durch
und beseitigt den Frequenz Offset.

Mein Wissen habe ich mir auf dem Gebiet der Signalverarbeitung in den
letzten Monaten angeeignet. Mein Fachgebiet ist eigentlich ein anderes.
Ich bin mir ziemlich unsicher und habe echt überhaupt keine Idee, wodran
es liegt. Der Demodulator Block des GnuRadios funktioniert auch korrekt.
Vieles hängt von der richtigen Sample Rate ab. Ich habe vorhin nur das
Trägersignal über meinen Stick empfangen und einen Offset von 12 kHz
beim Empfang durch den DVBT-Stick festgestellt. Ich habe im Internet
auch andere Quellen gefunden, die dem internen Oszillator eine große
Ungenauigkeit bescheinigen. Ich weiss auch nicht, ob ich noch irgendwas
filtern muss, wenn ja, mit welchem Filter, ob irgendetwas Resampled
werden muss oder nicht. Dazu hab ich einfach zu wenig Ahnung von der
ganzen Sache...Ich nehme für euch mal eben die Daten auf und lade sie
dann hoch.
Vielen Dank

von Wiebke N. (plonsky22)


Angehängte Dateien:

Lesenswert?

So endlich mit Bildern. Auf dem ScreenshotIQ ist in rot das von GnuRadio 
generierte Signal (Folge: 1,3,7) als I-Strom zu sehen. In blau ist das 
vom DVBT-Stick empfangene Signal des Signalgenerators von Rohde&Schwarz 
zu sehen (ebenfalls mit der Signalfolge 1,3,7). Der andere 
Screenshotflowgraph zeigt den Graphen mit den zughörigen Variablen wie 
Sample_Rate, Symbol_Rate und Samples_pro_Symbol. Ich hoffe, ihr könnt 
damit etwas anfangen.
Viele Grüße und vielen Dank

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Zunächst mal, die Beschreibung des USB-Sticks ist seltsam: ein R820T 
Tunerchip (von Rafael oder so ähnlich) aber Software für den älteren 
elonics E4000 Tuner?

Literatur dazu gibts übrigens von Gunthard Kraus in den UKW-Berichten 
der letzten Jahre http://ukw-berichte.de/ukw-docs/zeitschr/inh_vor.html

1/2014 "Die unendliche SDR-Geschichte… Untersuchung eines DVB-T-Sticks 
mit R820T-Tuner und RTL2832U-Decoder als Messempfänger

3/2013 Der DVB-T-Stick mit E4000-Tuner als Messempfänger Beschaffung, 
Eigenschaften, Umbau und Betrieb unter der Software „SDR“

Mir scheint immer noch, dass in dem Signalweg ein Demodulator fehlt. Der 
Tunerchip mischt die empfangenen 117,95 MHz +/- 3MHz herunter ins 
Basisband mit zwei 90 Grad phasenverschobenen Oszillatorschwingungen die 
ungefähr bei den 117 MHz liegen. Die Trägerfrequenz liegt dann irgendwo 
im Basisband, genau auf Null Hertz kann sie nicht sein. Dann erst kommt 
ein Demodulator der diese Trägerfrequenz demoduliert und das Nutzsignal 
gewinnt. Das kann dann mit einem PSK-Decoder (Taktrückgewinnung und 
Entscheider) decodiert werden.

Hier habe ich eine Beschreibung des PSK_Demod gefunden, ist es das?
https://www.ee.oulu.fi/research/ouspg/psk_demod.py
da gibt es den Parameter -f = frequency of the PSK signal, wird der auf 
Null gestellt für die 117.95 MHz Oszillator im Tuner?

Im Gnuradio-Wiki gibts auch ein ausführliches PSK-Kapitel
http://gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorial_PSK_Demodulation

: Bearbeitet durch User
von Wiebke N. (plonsky22)


Lesenswert?

Hallo,

ich habe den Fehler mittlerweile gefunden. Es liegt an der gewählten 
Abtastrate. Habe mir die Treibercode auf Osmocom vorgenommen und dann 
den Fehler entdeckt. Vielen lieben Dank noch mal für die schnelle Hilfe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.