Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:rtty-demodulator:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
projekte:rtty-demodulator:start [2014/02/20 12:27] – [Entwicklungsumgebung] thastiprojekte:rtty-demodulator:start [2014/02/20 14:06] – [Interna] thasti
Zeile 71: Zeile 71:
  
 Im AtMega wird dieser Algorithmus als kleine State Machine umgesetzt. Im AtMega wird dieser Algorithmus als kleine State Machine umgesetzt.
- 
-==== Abstimmanzeige ==== 
-Zur Anzeige der (ungefähren) korrekten Abstimmung werden ein/zwei einfache IIR-Resonator-Filter benutzt. Diese werden in Matlab als IIR Biquad Filter realisiert. 
- 
-<code>[b,a] = iirpeak(0.3,0.01)</code> 
- 
-Die Parameter der Funktion sind die Peak-Frequenz und die gewünschte Bandbreite.  
-Der Koeffizient a0 ist immer 1, b1 ist immer 0, und wenn die Mittenfrequenz zu 0.5 (FS/4) gewählt wird, wird a1 zu Null und der Filter kann weiter Optimiert werden. Dies ist leider ungünstig, daher wird auf diese Möglichkeit der Optimierung verzichtet. 
- 
-FIXME Möglichkeit untersuchen, das I oder Q-Filter im Betrag direkt als Indikator zu verwenden.  
- 
-Durch die sehr guten Ergebnisse der Regelung kann die Abstimmanzeige eigentlich wegfallen - das System regelt selbstständig auf das vorhandene Signal irgendwo in der Empfangsbandbreite. 
- 
  
  
Zeile 116: Zeile 103:
   * UART (RxD: PD0, TxD: PD1)   * UART (RxD: PD0, TxD: PD1)
   * 16MHz XTAL (PB6, PB7)   * 16MHz XTAL (PB6, PB7)
-  * ADC (PC0..5), Filterung 2.Ordnung @ 3kHz +  * 2xADC (PC0..5), Filterung 1.Ordnung @ 3kHz 
-  * DAC (PD5, PD6), Filterung 4. Ordnung @ 3kHz+  * 2x DAC (PD5, PD6), Filterung 4. Ordnung @ 3kHz (PWM@61 kHz, DAC@6kHz)
   * LED    * LED 
   * ISP   * ISP
Zeile 123: Zeile 110:
 ===== Arbeitspakete und Milestones ===== ===== Arbeitspakete und Milestones =====
 Es sind folgende, grundlegende Arbeitspakete zu bewältigen Es sind folgende, grundlegende Arbeitspakete zu bewältigen
-  * UART Inbetriebnahme+  * UART Inbetriebnahme - **code ok, testen!**
     * Loopback-Test     * Loopback-Test
     * Einbindung in Matlab     * Einbindung in Matlab
Zeile 130: Zeile 117:
   * ADC Inbetriebnahme - **ok**   * ADC Inbetriebnahme - **ok**
     * Loopback @ 12kHz     * Loopback @ 12kHz
-  * Mathematikoperationen +  * Mathematikoperationen **todo**
     * saturierende Addition     * saturierende Addition
     * saturierende Subtraktion      * saturierende Subtraktion 
Zeile 136: Zeile 123:
     * Fraction Division     * Fraction Division
     * per Matlab testen (Eingabe: 2 Operanden, Ausgabe: 1 Ergebnis)     * per Matlab testen (Eingabe: 2 Operanden, Ausgabe: 1 Ergebnis)
-  * Sinus/Kosinus (LUT mit Interpolation) +  * Sinus/Kosinus (LUT mit Interpolation) **todo**
     * per UART und Matlab testen     * per UART und Matlab testen
     * Eingabe: phi, Ausgabe: sin(phi), cos(phi)     * Eingabe: phi, Ausgabe: sin(phi), cos(phi)
-  * Arkustangens (LUT mit Interpolation)+  * Arkustangens (LUT mit Interpolation) **todo**
     * per UART und Matlab testen     * per UART und Matlab testen
     * Eingabe: x, Ausgabe: atan(x)     * Eingabe: x, Ausgabe: atan(x)
-  * NCO (Oszillator für IQ-Mischung) +  * NCO (Oszillator für IQ-Mischung) **todo**
     * Phasenakkumulator per UART validieren (Eingabe: step, Ausgabe: Wert --> Sinus in Matlab)     * Phasenakkumulator per UART validieren (Eingabe: step, Ausgabe: Wert --> Sinus in Matlab)
     * Phasenakkumulator am DSO validieren (FCW -> Ausgangsfrequenz)     * Phasenakkumulator am DSO validieren (FCW -> Ausgangsfrequenz)
     * Phasenakkumulator mit Sinus und Kosinus am DSO validieren (FCW -> Ausgangsfrequenz)     * Phasenakkumulator mit Sinus und Kosinus am DSO validieren (FCW -> Ausgangsfrequenz)
     * Phasenverschiebung des komplexen NCO bestimmen (frequenzunabhängig 90°)     * Phasenverschiebung des komplexen NCO bestimmen (frequenzunabhängig 90°)
-  * CORDIC (Phasenwinkelbestimmung) / Division+  * CORDIC (Phasenwinkelbestimmung) / Division **redefine**
     * per Matlab testen (Eingabe: I, Q, Ausgabe: phi)     * per Matlab testen (Eingabe: I, Q, Ausgabe: phi)
-  * BiQuad-Filter (für I/Q-Daten) +  * BiQuad-Filter (für I/Q-Daten) **todo**
     * passenden Koeffizientensatz berechnen      * passenden Koeffizientensatz berechnen 
     * per DSO und Sig-Generator testen     * per DSO und Sig-Generator testen
-  * RC-Filter (für Fehlersignal) +  * RC-Filter (für Fehlersignal) **todo**
     * per DSO und Sig-Generator testen     * per DSO und Sig-Generator testen
-  * Baudot-Code Dekodierung (2x LUT) +  * Baudot-Code Dekodierung (2x LUT) **todo**
     * per UART testen (Eingabe: Baudot, Ausgabe: ASCII)     * per UART testen (Eingabe: Baudot, Ausgabe: ASCII)
 ===== Interna ===== ===== Interna =====
 Systemdaten: Systemdaten:
-  * verwendeter MCU: AtMega8+  * verwendeter MCU: AtMega48
   * Systemtakt: 16MHz   * Systemtakt: 16MHz
   * ADC Samplerate (Timer): 12kHz   * ADC Samplerate (Timer): 12kHz
Zeile 164: Zeile 151:
  
 Bitbreite verschiedener Register: Bitbreite verschiedener Register:
-  * ADC-Input: 10bit, unsigned -> zu 16bit, signed konvertieren+  * ADC-Input: 8bit, unsigned -> zu 8 bit signed konvertieren
   * NCO-PAC: 16bit, unsigned   * NCO-PAC: 16bit, unsigned
-  * NCO-sin/cos: 16 bit, signed +  * NCO-sin/cos: bit, signed 
-  * Mischer: Input 16bit signed * 16bit, signed, Output 16bit, signed +  * Mischer: Input 8bit signed * 8bit, signed, Output 16bit, signed 
-  * RC-Filter: Input 16bit, signed, Output 16bit Signed (16*16 und 16 bit abschneiden oder nur 8*8 rechnen?+  * RC-Filter: Input 16bit, signed, Output 16bit Signed (intern 24bit
-  * BiQuad-Filter: Input 16bit, signed, Output 16bit Signed +  * BiQuad-Filter: Input 16bit, signed, Output 16bit Signed (intern 24 bit)
  
 Rechenintensive Operationen: Rechenintensive Operationen:
-  * Sin/Cos/Atan jeweils max. 80 Takte+  * Sin/Cos/Atan jeweils max. 80 Takte (16bit)
   * Division: 255 Takte (16/16 signed), 103 Takte (8/8 signed)   * Division: 255 Takte (16/16 signed), 103 Takte (8/8 signed)
  
projekte/rtty-demodulator/start.txt · Zuletzt geändert: 2015/11/17 09:26 von thasti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki