Forum: HF, Funk und Felder SDR I/Q Samples zu Continuous Wave (CW)


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von P. M. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

ich möchte Morse-Code (Continous Wave) aus I/Q Samples 
demodulieren/dekodieren. Zum Auslesen der (digitalen Basisband) I/Q 
Samples nutze ich einen RTL SDR DVB-T USB-Stick mit einem Up-Converter.

Leider fehlt mir das Verständnis, wie analoge Signale (CW) aus den I/Q 
Samples extrahiert werden können.
Das Prinzip einer digitalen Datenübertragung mit bspw. Phasenumtastung 
ist bekannt. Durch Manipulation der Amplituden I und Q des sich in 
Quadratur befindenden Cos- und Sinus-Signals und anschließender Addition 
entsteht ein Phasenwechsel des resultierenden Signals. Jeder Phase wird 
ein Symbol mit Bits zugeordnet. Der Informationsgehalt der Übertragung 
steckt dann in den Phasen(-wechseln) des Signals über der Zeit 
aufgetragen.

Aber wie verhält es sich, wenn rein analoge CW-Signale mit einem SDR 
Stick empfangen und in digitale I/Q Samples importiert werden. Wie kann 
ich das ursprüngliche Tastsignal aus diesen I/Q Samples 
wiederherstellen?

Danke & beste Grüße

von Marc Oni (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Multiplizere es z.B. mit einer um 800 Hz verschobenen Frequenz.

von Marek N. (bruderm)


Bewertung
0 lesenswert
nicht lesenswert
Und zwar mit einer komplexen Exponentialfunktion.

von P. M. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, aber warum ist das so?

Kann jemand den mathematischen Hintergrund des RTL-SDR's beim Empfang/ 
Konvertierung eines analogen Morse-Signals (CW) in digitale Basisband 
I/Q Samples beschreiben?

von Martin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Einfach diesen Link durcharbeiten:

http://whiteboard.ping.se/SDR/IQ

von Martin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hier noch die Mutter aller I/Q-Einführungen :

http://dspguru.com/files/QuadSignals.pdf

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
P. M. schrieb:
> Leider fehlt mir das Verständnis, wie analoge Signale (CW) aus den I/Q
> Samples extrahiert werden können.

Bei CW (A1A) wird des Trägersignal im Takt der Zeichen an- und 
abgeschaltet.

von Carsten S. (dg3ycs)


Bewertung
2 lesenswert
nicht lesenswert
Hi,

P. M. schrieb:
> ich möchte Morse-Code (Continous Wave) aus I/Q Samples
> demodulieren/dekodieren.

Vorsicht!
"CodeWork (CW)" = Morsen und "Continous Wave (CW)" = 
Dauerstrichleistung/umodulierter Träger werden zwar beide mit CW 
abgekürzt, aber das CW für Continous Wave beschreibt so ziemlich das 
genaue Gegenteil von einer HF Aussendung in der 
Betriebsart/Modulationsart CW (für CodeWork)

Man muss deshalb bei Abkürzungen stehts auf den genauen Kontext schauen
Die abkürzung CW für Continous Wave findet man dabei oft in den 
technischen Daten von z.B. Hochfrequenzgeneratoren (auch als Teil 
komplexer Geräte wie NetworkAnalyzer, SpektrumAnalyzer mit Tracking 
generator oder integrierten Funkmessplätzen Analog/Digital) wo dies als 
Angabe für die mögliche Ausgangsleistung der Generatoreinheit Gerätes 
verwendet wird.

Dieses CW meint dabei den unmodulierten Träger mit demzufolge konstanter 
Amplitude. Bei der Modulationsart CW wird der Träger, wie Wolfgang schon 
schrieb, zur Tastung komplett Ein/Ausgeschaltet.

WEnn man die Begriffe mischt und dann bei der Suche nach Informationen 
mal Informationen zum einen und dann wieder zum anderen findet dann 
kommt man natürlich auf keinen grünen Zweig.

Zur Auswertung der Modulationsart CW:
Wie geschrieben ist "Code Work" im Prinzip als eine Amplitudenmodulation 
mit 100% Modulationsgrad anzusehen die nur zwei Lautstärkestufen (Volle 
Pulle und Lautlos) kennt.
Es gibt somit kein wirkliches IQ moduliertes Signal sondern es muss über 
den Umweg der IQ Daten ein Rückschluss auf die Amplitudeninformation des 
Signals getroffen werden. Die Phaseninformation interessiert dich im 
Ergebnis dann überhaupt nicht mehr.

Vereinfacht und mathematisch recht schludrig gesagt:
Du musst die reine Amplitudeninformation bestimmen in dem du den als 
kartesische Koordinate vorliegenden Wert (I+Q) in seine Polarform 
umrechnest und dann nur seine Zeigerlänge weiterverarbeitest, während du 
die Winkelinformation komplett verwirfst.

Siehe dazu auch aus Martins ersten Link die 1. Darstellung unter "Some 
Examples"

Gruß
Carsten

: Bearbeitet durch User
von ossi (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die Momentanamplitude A eines IQ-Signals ist A=sqrt(I^2+Q^2).
Multipliziert man ein 1 kHz Signal mit A kann man das Morsen als 1 kHz 
Morsesignal hören.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Carsten S. schrieb:
> aber das CW für Continous Wave beschreibt so ziemlich das genaue
> Gegenteil von einer HF Aussendung

Diese Benennung hat historische Ursachen, sie steht (stand) tatsächlich 
für eine "Continuous Wave". Damit grenzte sie sich von den abklingenden, 
eher "chaotischen" Schwingungen der Funkensender ab, denen wir im 
Deutschen auch heute noch die Benennung als "Funk" verdanken. ;-)

Dass man diese kontinuierliche Welle dann bewusst ein- und ausschaltet 
(im Gegensatz zu den systembedingten Diskontinuitäten der Funkensender), 
tat wohl aus Sicht der damligen Bezeichnung der Sache keinen Abbruch, 
und so hat sich die Bezeichnung bis heute für die Morsetelegrafie 
erhalten.

von P. M. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Beiträge.

Wie funktioniert die Multikplikation der Momentanamplituden mit einem 
1kHz Signal?

von dfIas (Gast)


Bewertung
1 lesenswert
nicht lesenswert
CW steht alternativlos für continous wave. "Code work" ist in diesem 
Zusammenhang ein Backronym. Ich lese das hier zum ersten Mal.
Zum Dekodieren: Wenn das Basisband noch ein Vielfaches des "Nutzkanals" 
breit ist, muss erst der Nutzkanal herausgefiltert werden. Für CW wären 
das einige 10 Hz bis vielleicht 500 Hz. Dort kann quick & dirty die 
Amplitude ermittelt werden, die Wurzelfunktion bei der Betragsbildung 
kann man vorerst auslassen (linear muss es erstmal nicht sein; später 
ggf. logarithmisch, dann wird aus der Wurzel ein Faktor 0,5).
Um auf On und Off zu kommen, benötigt man einen Schwellwert, den man 
irgendwo knapp unterhalb der (im Zeitbereich geglätteten) 
Maximalamplitude festlegt, um auch schwache Signale lesen zu können. Das 
muss dynamisch erfolgen, um Signalstärkeschwankungen abzufangen 
(Schwundregelung). Dann kann im Zeitbereich CW alias Morsen dekodiert 
werden.

von Christoph db1uq K. (christoph_kessler)


Bewertung
0 lesenswert
nicht lesenswert
Zum SSB-Empfang muss immer die fehlende Trägerfrequenz irgendwie 
zugefügt werden. Üblicherweise macht man das nach Gehör.

Eine automatische Rückgewinnung aus dem Signal ist nur unvollkommen 
möglich, man müsste das Niederfrequenzspektrum analysieren und Annahmen 
über dessen Verteilung machen, z.B. gleichmäßig zwischen 300 und 3000 Hz 
neben dem Träger.

CW ist weniger kritisch, man stellt etwa die genannten 800 Hz ein.

Zur Demodulation muss eines der beiden (I/Q)-Signale breitbandig um 90 
Grad phasenverschoben werden, danach addiert oder subtrahiert man die 
beiden, je nach gewünschtem Seitenband. Das andere Seitenband wird dabei 
unterdrückt.

Da die Amplitude des Empfangssignals um viele dB schwanken kann, muss 
auch noch eine AGC oder Lautstärkeregelung erfolgen.

von Michel M. (elec-deniel)


Bewertung
0 lesenswert
nicht lesenswert

von Marek N. (bruderm)


Bewertung
0 lesenswert
nicht lesenswert
Christoph db1uq K. schrieb:
> Eine automatische Rückgewinnung aus dem Signal ist nur unvollkommen
> möglich, man müsste das Niederfrequenzspektrum analysieren und Annahmen
> über dessen Verteilung machen, z.B. gleichmäßig zwischen 300 und 3000 Hz
> neben dem Träger.

Auf 50/60 Hz Netzbrumm rasten ;-)

von dfIas (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Christoph db1uq K. schrieb:
> CW ist weniger kritisch, man stellt etwa die genannten 800 Hz ein.
Zum Hören macht das Sinn. Man kann aber auch eine Lampe im Rhythmus ein- 
und ausschalten oder einen CW-Dekoder ansteuern, der den fertigen Text 
liefert. Dazu braucht es nur die Amplitudeninformation und keine 800 Hz.

von Christoph db1uq K. (christoph_kessler)


Bewertung
0 lesenswert
nicht lesenswert
>nur die Amplitudeninformation
Das würde eigentlich einen echten Direktmischer auf Null Hertz herunter 
bedeuten, dessen LO mit der Empfangsfrequenz identisch ist. Die meisten 
SDR haben bei Null eine Lücke.

von Michel M. (elec-deniel)


Bewertung
0 lesenswert
nicht lesenswert
P. M. schrieb:
> Vielen Dank für die Beiträge.
>
> Wie funktioniert die Multikplikation der Momentanamplituden mit einem
> 1kHz Signal?

http://k6jca.blogspot.com/2016/10/sdr-notes-digital-down-conversion-math.html
https://wirelesspi.com/dealing-with-complex-numbers/

und zum Simuliern,
LTspice. 
https://hackaday.com/2017/02/15/ltspice-for-radio-amateurs-and-others/

Beitrag "LtSpice: Multiplier ?"

Frequenzspektrum dazu kann auch damit erstellt werden.

: Bearbeitet durch User
von Michel M. (elec-deniel)


Bewertung
0 lesenswert
nicht lesenswert
und zum Bearbeiten der Signale
https://www.gnuradio.org/

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.