fh-fsk demodulation

OP #2143890
Moin,

ich möchte eine Funkübertragung mittels FSK realisieren. Dabei wollte 
ich den Freuquenzbereich von ca. 15kHz-18kHz nutzen, wobei dies in 10 
Bereiche aufgeteilt ist (15khz=low, 15.3kHz=high; 15.6Khz=low, 
15.9kHz=high; ...) und dann in einer bekannten Hopping-Sequenz durch 
diese Bereiche springen. Vielleicht das ganze in einem weiteren 
Freuquenzbereich (18kHz-21kHz) noch parallel. Zur Demodulation möchte 
ich einen ARM-Prozessor mit knapp 600MHz verwenden, der sogar einen 
C64x+ digital signal processor (DSP) core besitzt.

Jetzt stellt sich mir aber die Frage, wie man das am besten 
algorithmisch demoduliert. Ich hatte mich früher schon einmal mit dem 
Goertzel-Algorithmus beschäftigt, da man da ja sehr schön einzelne 
Spektrallinien berechnen kann. Jetzt könnte ich natürlich, wenn ich die 
Hopping-Sequenz kenne und synchronisiert bin, einfach den Goertzel auf 
die entsprechenden zu testenden Frequenzen anwenden und sehen, welche 
Stärker im Spektrum vertreten ist. Wenn ich mich noch recht entsinne ist 
aber das mindeste N beim Görtzel gleich Abtastrate / Unterschied der 
Frequenzen, also bei 60khz => 60kHz/300Hz=200, also ca. 3.3ms. Das ist, 
denke ich mal, gar nicht so schlecht. Vom Rechenaufwand her ist das auch 
völlig ok.

Aber gibt es noch schönere Möglichkeiten dafür?

Vielen Dank für Eure Hilfe, Ozzy
Gast #2143937
Hallo,

zuerst solltest Du Dir anlesen bei welchen Symbolraten bei welcher 
Frequenzabweichung es zu keiner Intersymbolinteferenz kommt. Dann wirst 
Du merken, dass Du mit den jetzigen Frequenzen keine besonders hohe 
Datenrate erreichen wirst können.
Und dann würde ich an Deiner Stelle einen polaren Diskriminator 
implementieren (es gibt eine sehr gute Diplomarbeit dazu - google) und 
die Entscheidungsschwelle für die Bitentscheidung entsprechend der 
Hoppingfrequenz setzen.
Nachteilig ist dabei aber, dass Du Dir noch recht viel Rauschen 
einfängst. Also ggf. lieber einen BFSK Demodulator programmieren und die 
Frequenzen entsprechend dem Hoppingmuster in das (Komplexe) Basisband um 
DC heruntermischen. Stichworte sind hier Hilberttransformation und 
komplexe Mischung. Es sei denn, Du hast schon I- und Q-Kanal. Dann 
kannst Du Dir die Hilbertransformation sparen und einfach so mit 
exp(j*w*t) multiplizieren.

Viele Grüße,
 Martin L.
OP #2144113
Moin,

> zuerst solltest Du Dir anlesen bei welchen Symbolraten bei welcher
> Frequenzabweichung es zu keiner Intersymbolinteferenz kommt. Dann wirst
> Du merken, dass Du mit den jetzigen Frequenzen keine besonders hohe
> Datenrate erreichen wirst können.
Ja, dessen bin ich mir bewusst. Mehr als ein paar hundert bits sollen es 
ja auch ncht werden.
> Und dann würde ich an Deiner Stelle einen polaren Diskriminator
> implementieren (es gibt eine sehr gute Diplomarbeit dazu - google) und
> die Entscheidungsschwelle für die Bitentscheidung entsprechend der
> Hoppingfrequenz setzen.
Leider habe ich diese besagte Arbeit nicht gefunden. Kannst Du mir 
vielleicht einen Link hierzu schicken?

Vielen Dank, Ozzy
Gast #2145969
Hallo,

das Originaldokument findest Du unter 
www.digitalsignallabs.com/Digradio.pdf. Leider ist der Server aber 
offline. Daher habe ich es Dir auf meinen Webspace geladen. Du findest 
es  unter
http://www.martinlaabs.de/tmp/Digradio.pdf

Es ist das bisher beste Dokument was ich dazu gefunden habe weil sich 
der Autor selber Gedanken gemacht hat und nicht 1:1 aus den Lehrbüchern 
abgeschrieben hat. Und mit seinem Ansatz kann man durchaus Rechenzeit 
einsparen.

Viele Grüße,
 Martin L.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.