4. Übung (DTMF-Detektor) In der vierten Laborübung soll ein DTMF-Detektor (Dual Tone Multiple Frequency) entwickelt werden. Bei der DTMF-Übertragung werden die Informationen der Telefontastatur mittels einer Kombination zweier Sinustöne im Sprachband codiert. Der Detektor hat die Aufgabe, die Töne heraus zu finden und die beiden gefundenen Töne wieder in die Tasteninformation zu decodieren. Die Tasteninformation wird über die LEDs auf dem EVB angezeigt. Die prinzipielle Struktur des Detektors ist in der folgenden Abbildung dargestellt. DTMF-Detektor Goertzel-Filter Frequenz 1 Decoder Input Detektor Goertzel-Filter Frequenz 2 LEDs Goertzel-Filter Frequenz K Erstellen Sie ein neues Projekt in Ihrem Gruppenverzeichnis wie in Übung 1. Laden Sie die Templates für die Übung 4 aus dem Netz herunter und legen Sie sie in diesem Projektordner ab: main.c isr.asm isr.h process_data.c process_data.h iir.asm iir.h codeclib.dlb codeclib.h adsp-BF561-codec.ldf Initialisierung des Codecs und Endlosschleife Interrupt-Service-Routine in Assemblercode Definitionsdatei für isr.asm Modul mit der Verarbeitungsroutine Definitionsdatei für process_data.c Modul mit der IIR-Routine in Assemblercode Definitionsdatei für iir.c Library mit Initialisierungsroutine für den Codec Definitionsdatei für codeclib.dlb Linker Deskription File mit den notwendigen Informationen für den Linker (Speicherbereiche, Objekte, Prozessoren, …) Fügen Sie alle Dateien zu Ihrem Projekt hinzu. Die ISR arbeitet wie in Übung 3. Im Modul process_data.c sind die Filterstrukturen für die 16 Goertzel-Filter und die Funktion process_data() definiert, die wiederum die IIR-Routine für alle Filter aufruft. Die Koeffizienten müssen Sie noch gemäß Ihrer Vorbereitung hinzufügen. In der IIR-Routine iir.asm selber erfolgt die Berechnung der Differenzengleichung gemäß der Darstellung in der Dokumentation zur Vorbereitung. Da die Filter randstabil sind, steigt die Ausgangsamplitude bei der entsprechenden Resonanzfrequenz des Filters im Prinzip immer weiter an. Daher werden die Delaylines der Filter nach einer bestimmten Zeit Teval wieder auf Null gesetzt. Definieren Sie die Variable NO_OF_SAMPLES_FOR_EVAL so, dass die Zeit Teval 10 ms beträgt. Skalieren Sie das Eingangssignal vor der Filterung so, dass es innerhalb dieser Zeit gerade nicht zu Überläufen kommt. Gehen Sie dabei von einem Eingangssignal von ca. 100mV Eingangsamplitude aus. Nehmen Sie mit dem Scope die Ausgangssignale der Filter auf. Aus den Ausgangssignalen der Real- und Imaginärteilfilter wird durch Quadrierung und Addition dann das Betragsquadrat der komplexen Filterausgänge berechnet, so dass das Ergebnis phasenunabhängig wird. Prof. Dr.-Ing. M. Purat, 2007, Labor für Digitaltechnik und Digitale Signalverarbeitung, TFH Berlin (v3) Seite 16 / 17 Nehmen Sie mit dem Scope das Betragsquadrat der Ausgangssignale der komplexen Filter auf. Erweitern Sie die Funktion process_data um die Detektion und die Decodierung. Bestimmen Sie bei der Detektion aus den Betragsquadraten der Ausgangssignale getrennt für die Spalten- und Zeilenfrequenzen jeweils den Maximalwert und merken sich, bei welcher Frequenz (Zeile / Spalte) dieser auftritt. Bestimmen Sie von den verbleibenden Betragsquadraten (d.h. jeweils den drei kleineren Werten) den Mittelwert. Vergleichen Sie den mit einem von Ihnen zu bestimmenden Faktor multiplizierten Mittelwert mit dem Maximalwert getrennt für Zeilen und Spaltenfrequenzen. Liegt der Maximalwert über dem skalierten Mittelwert (ist also ein DTMF-Signal detektiert), dann ändern Sie die PFs so, dass eine dem DTMF-Signal zugeordnete LED leuchtet. Die Zuordnung sei wie folgt: Taste LED Taste LED 1 13 7 5 2 14 8 6 3 15 9 7 A 16 C 8 4 17 * 9 5 18 0 10 6 19 # 11 B 20 D 12 Testen Sie die Funktion Ihres Programms, indem Sie an den Eingang eine der Zeilenfrequenzen legen und für die Spaltenfrequenz im Programm eine beliebige Spalte als detektiert annehmen. Wenn die entsprechenden LEDs bei diesem Test leuchten, melden Sie sich beim Betreuer, der dann die Funktion mit realen DTMF-Tönen verifiziert. Auswertung: x Kommentieren Sie Messungen und Programme, so dass Ihre Überlegungen und Untersuchungen deutlich werden. Prof. Dr.-Ing. M. Purat, 2007, Labor für Digitaltechnik und Digitale Signalverarbeitung, TFH Berlin (v3) Seite 17 / 17
© Copyright 2025 ExpyDoc