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


von P. M. (Gast)


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)


Lesenswert?

Multiplizere es z.B. mit einer um 800 Hz verschobenen Frequenz.

von Marek N. (Gast)


Lesenswert?

Und zwar mit einer komplexen Exponentialfunktion.

von P. M. (Gast)


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)


Lesenswert?

Einfach diesen Link durcharbeiten:

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

von Martin (Gast)


Lesenswert?

Hier noch die Mutter aller I/Q-Einführungen :

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

von Wolfgang (Gast)


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)


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)


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


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)


Lesenswert?

Vielen Dank für die Beiträge.

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

von dfIas (Gast)


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)


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)


Lesenswert?


von Marek N. (Gast)


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)


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)


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)


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)


Lesenswert?

und zum Bearbeiten der Signale
https://www.gnuradio.org/

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.