Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:utrak:aprs

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projekte:utrak:aprs [2014/11/09 19:39] thastiprojekte:utrak:aprs [2015/07/24 08:28] (aktuell) – [Samplerate] thasti
Zeile 18: Zeile 18:
 ===== Implementierung ===== ===== Implementierung =====
 ==== AFSK-FM ==== ==== AFSK-FM ====
 +=== Methode 1 (alt): Digitale Modulation im Si4060-FSK-Offset-Register ===
 Im MSP430 wird ein NCO implementiert, der mit möglichst geringem Fehler die nötigen Frequenzen erzeugt. Die Samplerate wird dabei aus dem vorhandenen Grundtakt so gewählt, dass der Fehler für Baudrate, Mark- und Spacefrequenz möglichst klein ist. Um dieses Optimum zu finden, wurde ein Matlab-Skript geschrieben, was nach Brute-Force-Methode den prozentualen Fehler für alle Einstellungen herausfindet ({{projekte:picoflights:msp_fm.m|}}).  Im MSP430 wird ein NCO implementiert, der mit möglichst geringem Fehler die nötigen Frequenzen erzeugt. Die Samplerate wird dabei aus dem vorhandenen Grundtakt so gewählt, dass der Fehler für Baudrate, Mark- und Spacefrequenz möglichst klein ist. Um dieses Optimum zu finden, wurde ein Matlab-Skript geschrieben, was nach Brute-Force-Methode den prozentualen Fehler für alle Einstellungen herausfindet ({{projekte:picoflights:msp_fm.m|}}). 
 Ein Timer stellt die Zeitbasis für den NCO zur Verfügung, dessen Samplerate so gewählt werden sollte, dass ein üblicher FM-Demodulator die Samplefrequenz schon nicht mehr in den NF-Zweig durchlässt. Ein Wert um die 10kHz sollte dafür ausreichen. Ein Timer stellt die Zeitbasis für den NCO zur Verfügung, dessen Samplerate so gewählt werden sollte, dass ein üblicher FM-Demodulator die Samplefrequenz schon nicht mehr in den NF-Zweig durchlässt. Ein Wert um die 10kHz sollte dafür ausreichen.
Zeile 32: Zeile 33:
  
 {{projekte:picoflights:fm-1200hz-pre-demod.png?800|}} {{projekte:picoflights:fm-1200hz-pre-demod.png?800|}}
 +
 +=== Methode 2 (neu): Nutzung des FIR-Filters im Si4060, Modulation mit Rechteck ===
 +Der Si4060 enthält für GFSK-Modulation ein FIR-Filter 16ter Ordnung mit symmetrischen Koeffizienten, die frei programmierbar sind. Der Ansatz war nun, die Modulation am DATA-Pin als Rechteck durchzuführen, und das FIR-Filter zur Tiefpassfilterung zu benutzen, sodass ein möglichst sauberer Sinus am Ausgang entsteht. Vorteil ist die höhere erreichbare Samplerate: Das interne Filter arbeitet durch Oversampling mit der zehnfachen Frequenz des Dateneingangs. Um sowohl 1200 Hz als auch 2200 Hz sauber abtasten zu können, wurde 4400 Hz als Datenrate gewählt, das Filter läuft also intern bei 44 kHz. Es ist möglich, ein noch annehmbares Tiefpassfilter für diese Gegebenheiten zu entwerfen: 1200 Hz und 2200 Hz sollten kaum beeinflusst werden, 3,6kHz (3. Harmonische von 1200 Hz) sollte möglichst gut gedämpft werden. 
 +
 +Zusätzlich kann (mit Abstrichen im Stopband des Filters) die notwendige Preemphase mit in das Filter integriert werden. Es muss hier allerdings ein Trade-Off zwischen Stopbanddämpfung und Preemphase-Güte gemacht werden. Mit dem aktuellen Filter wird eine Dämpfung von 14dB bei 3,6kHz gegenüber dem 1,2kHz-Ton erreicht, alle anderen Oberwellen sind >30dB unterdrückt.
 +
 +Erreichte Verbesserung: TNC2S dekodiert jetzt alle Pakete sauber (keine Rejected Packets mehr), MixW und QTMM dekodieren ebenfalls sauber.
 +
 +
  
 ==== Bit-Stream ==== ==== Bit-Stream ====
Zeile 48: Zeile 58:
  
 ==== Samplerate ==== ==== Samplerate ====
-Am Si4060 zeigte sich kein Problem bei Verwendung von ~10kHz Samplerate unter Verwendung der 30MHz-Taktquelle. Wenn allerdings die RS-92 TCXOs mit 16.3676MHz verwendet werden, scheint der Si4060 keine so hohe Aktualisierungsrate mehr zuzulassen - nicht alle Frequenzwerte werden übernommen und das Spektrum unrein. Workaround ist die Verwendung der größtmöglichen Samplerate, die durch Experimentieren als >5kHz gefunden wurde. Damit ist man zwar gefährlich nah an der Nyquist-Grenze, was sich wegen des fehlenden Filters auch bemerkbar macht (nur noch etwa 3dB Spiegelfrequenzdämpfung nach der Demodulation beim 2,2kHz-Ton). Das TNC2S (als Quasistandard bei APRS-Digis) zeigte sich demgegenüber tolerant. +Für Methode 1: Am Si4060 zeigte sich kein Problem bei Verwendung von ~10kHz Samplerate unter Verwendung der 30MHz-Taktquelle. Wenn allerdings die RS-92 TCXOs mit 16.3676MHz verwendet werden, scheint der Si4060 keine so hohe Aktualisierungsrate mehr zuzulassen - nicht alle Frequenzwerte werden übernommen und das Spektrum unrein. Workaround ist die Verwendung der größtmöglichen Samplerate, die durch Experimentieren als >5kHz gefunden wurde. Damit ist man zwar gefährlich nah an der Nyquist-Grenze, was sich wegen des fehlenden Filters auch bemerkbar macht (nur noch etwa 3dB Spiegelfrequenzdämpfung nach der Demodulation beim 2,2kHz-Ton). Das TNC2S (als Quasistandard bei APRS-Digis) zeigte sich demgegenüber tolerant. 
 Es sollte aber die Ursache gefunden werden und das Problem an der Ursache behoben (insofern dies möglich ist). Es sollte aber die Ursache gefunden werden und das Problem an der Ursache behoben (insofern dies möglich ist).
  
 +Durch Verwendung von Methode 2 ist dieses Problem gelöst: Intern arbeitet der GFSK-Modulator mit 44kHz, die zu modulierende Frequenz muss nur mit 4,4kHz abgetastet werden.
 ===== Links ===== ===== Links =====
   * [[https://www.tapr.org/pdf/AX25.2.2.pdf|AX.25-Spezifikation, Version 2.2]]   * [[https://www.tapr.org/pdf/AX25.2.2.pdf|AX.25-Spezifikation, Version 2.2]]
projekte/utrak/aprs.1415561941.txt.gz · Zuletzt geändert: 2014/11/09 19:39 von thasti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki