Hallo zusammen, ich möchte mit einem AVR eine Tonerkennung bauen, der uC soll erkennen ob eine bestimmte Frequenz (1750 Hz und später DTMF) im Audiosignal enthalten ist. Aber wo soll ich beginnen, kann das mit ADW gemacht werden, braucht es eine externe Schaltung ?
Marc Mk schrieb: > Aber wo soll ich beginnen, kann das mit ADW gemacht werden, braucht es > eine externe Schaltung ? Das sollte prinzipiell mit dem ADC machbar sein. Da nähere Infos zum Eingangssignal fehlen, lässt sich hier nicht mehr sagen. Das müsstest Du ggf. zuerst einmal anpassen. Zur Auswertung bietet sich der Goertzel-Algorithmus an: http://en.wikipedia.org/wiki/Goertzel_algorithm
Marc Mk schrieb: > kann das mit ADW gemacht werden, braucht es > eine externe Schaltung ? Damit das Signal trotz 10Bit Wandler noch gut ausgewertet werden kann solltest Du über eine ALC-Schaltung (alter Kassettenrecorder) nachdenken. Die Auswertung selbst macht man normalerweise mit 2 Görtzel-Filtern. Das 1. auf die Frequenz abgestimmt, das 2. auf die doppelte Frequenz. Wenn das 1. Filter über Schwellwert ist und das 2. nicht hast Du die gewünschte Frequenz. Es gibt aber auch für DTMF spezielle ICs die den Tastencode direkt zurückliefern. (MT8870) http://www.conrad.de/ce/de/product/173193/IC-MT-8870-DE11-DTMF-RECEIVER oder auch Tondecoder für einzelne Frequenzen NE567 Gruß Anja
Hi, Was soll es werden? Ablaufsteuerung für ein Funk-Relais (TR I?) Prinzipiell gibt es dazu drei Möglichkeiten: 1. MAn verstärkt das Audiosignal so lange bis es ein REchtecksignal ergibt und zählt entweder die Zeit zwischen zwei Flanken oder aber die Flanken pro Zeiteinheit. DAs kommt auf die Freqeunz und persöhnliche Vorliebe an. 2. MAn hat eine externe Auswerteschaltung die auf die Frequenz reagiert und dem µC einfach nur die Anwesenheit über ein Schaltsignal anzeigt. (z.B. mit einem NE567 recht einfach) 3. Sampling des NF Signals mit einem ADC und anschließende überprüfung auf die Frequenzanteile über FFT. (das reine Zählen der Nulldurchgänge ist nur die schlechtere Version von 1) Lösung 1 ist wohl von der Hardware die Eifnachste und auch die Software ist recht einfach. Allerdings funktioniert die Erkennung nur wenn das Tonsignal sehr viel Stärker ist als alle weiteren Signale. (Wobei das meisten AFU RElais die ich kenne locker reichen würde) Lösung 2 ist von der HArdware etwas aufwendiger, die µC Software ist aber mit Abstand die Einfachste. Es lassen sich auch noch sehr stark verrauschte Signale oder Mischfreqeunzen auf das vorhandensein von der Wusnchfrequenz untersuchen. Lösung 3 ist die technsich raffinierteste und insbesondere wenn später auf viele verschiedene Frequenzen und vor allem auf die gleichzeitige Anwesenheit von Frequenzen (DTMF) getestet wird. Allerdings ist die Software auf µC seite deutlich komplexer und beansprucht lastet einen 8Bit AVR schon recht gut aus. Etwas Aufwand bei der Analogen Eingangsschaltung sollte man auch treiben damit das Signal weder den Wandler übersteuert noch so schwach ist das es kaum Aufgelöst wird. Mit einem 8Bit AVR habe ich das bisher nochnicht versucht. Mit einem 32Bit ARM und externen Wandler schon. ICh will es jetzt nicht beschwören, aber ich denke 8Bit AVR und interner AD Wandler könnte nach Bauchgefühl sehr eng werden. Soll es wirklich eine reine Relaisstelle werden reicht auch Lösung 1, denn man will in der Regel ja auch nur Signale umsetzen die am RElaisempfänger schon relativ Rausschfrei ankommen. Lösung 2 geht nur für Tonruf1 auch sehr gut, wenn aber DTMF dazu kommt wird es zumindest mit dem NE567 recht aufwendig - je zei pro Doppelton. (Wobei der nur ein paar Cent kostet.) Eleganter ist da die Verwendung eines speziellen DTMF Bausteins. Lösung drei würde ich dann in betracht ziehen wenn du doch einen größeren µC verwenden willst und du über die notwendigen Mathematischen Grundkentnisse verfügst. Gruß Carsten
Marc Mk schrieb: > Hallo zusammen, ich möchte mit einem AVR eine Tonerkennung bauen, der uC > soll erkennen ob eine bestimmte Frequenz (1750 Hz und später DTMF) im > Audiosignal enthalten ist. DTMF sind aber immer zwei Töne gleichzeitig, nicht? Damit fallen die ganz simplen Lösungen (Signal digital machen und Periodenlänge auszählen) wohl aus. > Aber wo soll ich beginnen, kann das mit ADW gemacht werden, braucht es > eine externe Schaltung ? Ein bisschen externe Schaltung ganz sicher... ;-) Die ADCs in den ATMegas können mit einigen Dutzend KHz Samplerate betrieben werden. Damit kannst Du Dein Signal leicht abtasten, 4 KHz SR sind für DTMF schon genug - Tiefpass-Filter am Eingang nicht vergessen. Ob der ATMega dann aber eine FFT hinbekommt um die Frequenzen zu ermitteln - da bin ich überfragt, wenn er genug Flash, RAM und Takt hat und Du das nicht in msecs brauchst könnte das schon gehen.
Hallo Marc, habe mich auch schon mal mit diesem Thema befasst. Schon mit einem kleinen AVR (ATtiny13) lässt sich die Frequenzerkennung über den ADC und eine simple Filterfunktion relativ leicht machen, wenn das Signal kaum gestört ist (also gesuchte Frequenz isoliert vorhanden oder anderes Signal). Das genügt für eine einfache Modem-Funktion bis z. B. 600 Baud. Für anspruchsvollere Zwecke benötigt man sicherlich etwas in Art der FFT, wie bereits angedeutet wurde. Das dürfte mit 8bit-Controller knifflig werden. Ich hatte in diesem Zusammenhang auch mit dem NE567 experimentiert und eher schlechte Erfahrungen gemacht. Das IC ist zwar preiswert und einfach zu beschalten, reagiert aber sehr träge auf das Eingangssignal. Man kann da einiges einstellen; das ist aber sehr "fummelig" und teilweise schwer zu reproduzieren. Für schnelle Signalerkennung nicht zu empfehlen! Grüße - Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.