Grundlagen FMS im Zeitbereich
Hallo,
aus intresse wollte ich einmal wissen wie ein FMS Telegramm im Zeitbereich aussieht. Dazu habe ich meinen Scanner an den Mikrofoneingang angeschlossen und mit dem Soundkarten-Oszillograph einen Single-Shot gemacht.
http://img827.imageshack.us/img827/6303/scope5.jpg
http://img219.imageshack.us/img219/7775/scope51.jpg
http://img5.imageshack.us/img5/2413/scop52.jpg
Es handelt sich dreimal um das gleiche Telegramm nur mit verschiedenen Zeitablenkungen.
Das Signal entspricht halbwegs meinen Erwartungen. Ich gehe davon aus, dass ein Bit einer Wellenlänge entspricht. Dann zähle ich zwöf Einsen zu Beginn (Telegramm-Vorlauf) gefolgt von vier Nullen. Soweit korrekt?
Die vier Nullen decken sich aber schon nicht mehr mit der erwarteten Block-Synchronisation (0001 1010).
Kann mir jemand bei der Interpretation der Bilder helfen? Sind meine Ansätze korrekt?
Grüße
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Zitat:
Zitat von
julian_xv
aus intresse wollte ich einmal wissen wie ein FMS Telegramm im Zeitbereich aussieht. Dazu habe ich meinen Scanner an den Mikrofoneingang angeschlossen und mit dem
Soundkarten-Oszillograph einen Single-Shot gemacht.
Guter Ansatz.
Aber wenn du sowas häufiger machen möchtest, nimm besser ein Soundbearbeitungsprogramm welches dir die gesampelten Daten in beliebigen Größen anzeigen kann. Ich persönlich verwende dafür gerne Wavelab von Steinberg (komerziell, teuer), gibt da aber auch reichlich andere Lösungen als Share- oder Freeware.
Dann mit möglichst hoher Samplingrate arbeiten.
Denn wenn man ein komplettes FSK oder FFSK-Paket "zufuß" decodieren und bewerten will, geht nix mehr auf Augen und Konzentration, als eckig abgestufte Signalverläufe.
Arbeite bei 1200bps gerne mit übertriebenen 44,1kHz oder 48kHz Sampling, weil das Signal dann wesentlich sinusförmiger aussieht und mehr Feinheiten erkennen lässt.
Zitat:
Zitat von
julian_xv
Das Signal entspricht halbwegs meinen Erwartungen. Ich gehe davon aus, dass ein Bit einer Wellenlänge entspricht. Dann zähle ich zwöf Einsen zu Beginn (Telegramm-Vorlauf) gefolgt von vier Nullen. Soweit korrekt?
Nein, falsch:
Es wäre weitestgehend richtig, wenn es sich um FSK bzw. AFSK handeln würde.
Wird heute aber nur noch (aus historischen Kompatibilitätsgründen) im Amateurfunk (1200bps Packet Radio, sowie APRS) sowie auf Kurzwelle (RTTY und so) verwendet.
FMS sowie gut 90% aller anderen professionellen Datenprotokolle im Sprechfunkbereich, arbeiten aber mit phasenkohärenter Umschaltung, da sie deutlich effizienter aus zu werten ist.
Bei FFSK braucht man zwei ganz bestimmte und exakte Töne die zur exakten Bitrate passen.
Denn eine logische 1 wird übertragen durch eine komplette Periode der tieferen Frequenz, und eine logische 0 wird übertragen durch 1,5 Perioden.
Für 1200bps also...:
Logisch 1 = 1,0 Perioden 1200Hz
Logisch 0 = 1,5 Perioden 1800Hz
Der Hauptvorteil liegt darin, das wärend der Übertragung beide logische Zustände in exakt gleicher Zeit übertragen werden - bei (A)FSK wäre die "0" ja deutlich kürzer als die "1".
Das führt zu unsicherheiten bei der Decodierung, weil die Gesamtgeschwindigkeit sowie die Gesamtdauer eines Paketes plötzlich davon abhängt, wie häufig die "0" darin vor kommt.
Bei FFSK kann der Decoder sich wärend der Bitsynchronisation auf das Timing eines empfangenden Paketes einschießen und sich seine Zeitmaske zurechtschieben.
Ich habe dir das dritte Bild mal zufuß decodiert und angehängt.
Kleiner Tip zum selber machen:
Da Anfänge und Enden von FFSK-Paketen generell "wirsch" sind (PLL-Einschwingphase, Leistungsabfall am Ende) fängt man zufuß immer an einer markanten Stelle an die man zweifelsfrei erkennt:
Der Nulldurchgang zwischen dem ersten 1/0-Wechsel.
Im Angehängten Bild war mein Startpunkt also beim ersten Nulldurchgang rechts deiner rechten roten Linie.
Und immer exakt im Nulldurchgang abgrenzen.
eine Periode (1200Hz) besteht aus einer positiven und einer Negativen Halbwellen, also 3 Nulldurchgängen.
Eineinhalb Perioden (1800Hz) besteht aus drei Halbwellen, zwei oben eine unten, oder umgekehrt - und somit aus 5 Nulldurchgängen.
Edit: Nicht nur kompletter Telegrammvorlauf und Blocksynchronisatzion passen.
Und die vier letzten bits sagen "Rettungsdienst"...stimmt's?
Grüße aus Dortmund
Jürgen Hüser
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
DG7GJ
Aber wenn du sowas häufiger machen möchtest, nimm besser ein Soundbearbeitungsprogramm welches dir die gesampelten Daten in beliebigen Größen anzeigen kann.
Danke für den Tip. Auf die Idee kam ich später auch, aber hab mich dann erstmal auf das bereits aufgenomme Signal mit dem Soundkarten Oszi konzentriert.
Zitat:
Zitat von
DG7GJ
Bei FFSK braucht man zwei ganz bestimmte und exakte Töne die zur exakten Bitrate passen.
Denn eine logische 1 wird übertragen durch eine komplette Periode der tieferen Frequenz, und eine logische 0 wird übertragen durch 1,5 Perioden.
Für 1200bps also...:
Logisch 1 = 1,0 Perioden 1200Hz
Logisch 0 = 1,5 Perioden 1800Hz
Der Hauptvorteil liegt darin, das wärend der Übertragung beide logische Zustände in exakt gleicher Zeit übertragen werden - bei (A)FSK wäre die "0" ja deutlich kürzer als die "1".
Das führt zu unsicherheiten bei der Decodierung, weil die Gesamtgeschwindigkeit sowie die Gesamtdauer eines Paketes plötzlich davon abhängt, wie häufig die "0" darin vor kommt.
Danke dafür das macht es jetzt klar.
Zitat:
Zitat von
DG7GJ
eine Periode (1200Hz) besteht aus einer positiven und einer Negativen Halbwellen, also 3 Nulldurchgängen.
Eineinhalb Perioden (1800Hz) besteht aus drei Halbwellen, zwei oben eine unten, oder umgekehrt - und somit aus 5 Nulldurchgängen.
Sind es bei eineinhalb Perioden dann nicht 4? Siehe Anhang.
Zitat:
Zitat von
DG7GJ
Edit: Nicht nur kompletter Telegrammvorlauf und Blocksynchronisatzion passen.
Und die vier letzten bits sagen "Rettungsdienst"...stimmt's?
Habe das Signal nicht parallel nicht mit einem Programm ausgewertet. Es gibt aber hier Fahrzeuge die als Org-Kenner "Rettungsdienst" haben von daher wäre es möglich.
Vielen Dank für den äußerst hilfreichen Beitrag.
Grüße nach Dortmund
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
DME-Murxer
ich weiß ja nicht, auf was dieser Thread hier genau raus will, überlege aber gerade (rein theoretisch), wie ein Mikrocontroller programmiert werden müsste, der die NF abtastet um daraus die Statusmeldungen zu decodieren. Der fertige Chip dafür ist ja leider nicht mehr so gut erhältlich.
Hat jemand Ideen dazu?
Du wirst lachen. Genau das ist meine Intention. Ich werde mal kurz schreiben was ich mir gedacht habe.
Ich gebe das Sinussignal auf einen Komparator und forme mir damit ein Rechtecksignal. Nun beginne ich mit der ersten Flanke in gleichen Abständen abzutasten und zähle die Nulldurchgänge dazwischen.
Da ich nicht glaube es zu schaffen genau auf einem Nulldurchgang abzutasten* würde ich jeweils kurz vor einem Nulldurchgang abtasten und dann wieder kurz dahinter. Ich habe das mal an einer Sinusschwingung im Anhang markiert. Die rosa sowie grünen Abstände sind immer gleich. Die logische "1" (1,2kHz) könnte man nun durch einen Nulldurchgang identifizieren und die logische "0" (1,8kHz) durch zwei Nulldurchgänge.
Ich bitte um Kritik und gute Ideen.