Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Sounds erkennen (Töne) (https://www.delphipraxis.net/70812-sounds-erkennen-toene.html)

cchris 5. Jun 2006 11:59


Sounds erkennen (Töne)
 
Hallo,

ich möchte eine Tonerkennung schreiben. Diese muss Zwei Aufgaben übernehmen:

Einmal einen 1750 Hz +-25Hz Ton erkennen und dann DTMF dekodieren, also das Tonwahlverfahren vom Telefon...

wie könnte man das realisieren? Das elektronisch zu lösen und dann per serieller Schnittstelle zu übertragen wär nicht das problem, aber es soll möglichst alles auf dem PC laufen. Es gibt ja schon so ein Freeware Programm DTMF Dekoder, allerdings nicht Opensource...

negaH 5. Jun 2006 13:50

Re: Sounds erkennen (Töne)
 
Suche nach

- DFT = diskrete Fourier Transformation
- FFT = fast Fourier Transformation
- FIR = finite Impluse Response Filter
- IIR = infinite Impluse Response Filter

Die FFT/DFT etc.pp. ermöglichen dir eine spektrale Auswertung deiner Signale. Du bekommst wie beim Graphic Equalizer an deiner Stereoanlage ein Spektrum aller Frequenzen im Signal. Bei deinem Ton von x KHz wird im Spektrum exakt an dieser Stelle ein zur Amplitude (Stärke) des Frequenzsignals proportionaler Ausschlag zu sehen sein.

Bei den FIR/IIR Filter ist es so das man mit diesen einen Digitalen Bandpass aufbaut der nur Frequenzen von x KHz durchlässt. Dh. diese Filter reagieren nur auf Signale die in deinem Frequenzbereich auftreten. Das ist wie ein Schalter der nur dann am Ausgang ein großes Signal durchlässt wenn es eine bestimmte Frequenz aufweist.

Es gibt nun Nach- und Vorteile zwischen den Verfahren.
Die Fourier Transformation erzeugt ein breites Spektrum und damit kannst du auch wie beim DTMF üblich auf die zwei sich überlagernden Frequenzen reagieren. Denn mein DTMF besteht ein Ton aus ZWEI Frequenzen und nicht aus einer.
Die FIR/IIR Filter reagieren nur ein eine eingestellte Frequenz und man benötigt also für jede der DTMF Frequenzen einen eigenen Filter. Dafür kann man diese Filter quasi kontinuierlich sequentiell mit Daten füttern und dabei sind die Berechnungen viel effizienter durchzuführen. Es gibt im WEB gegnügend Berechungstools für solche digitalen Filter. Die FFT ist nicht so ohne weiteres kontinuierlich sequentiell zu bauen, was aber in deinem Falle eh irrelevant sein dürfte. Eine FFT benötigt auch mehr Rechenpower.

Der Unterschied in der Rechenpower ist gewaltig. Mein DTMF Decoder/Encoder auf einer 8 Bit Atmel MCU arbeitet in Echtzeit mit FIR Filtern bei 16 Mips. Eine entsprechende FFT ist mit so einer schwachen MCU garnicht mehr realisierbar als Software. Übrigens dürftest du im MCU Sektor die meisten Sourcen finden. Suche also auch mal nach AVR, PIC und ARM7 im Zusammenhang mit FIR/IIR Filtern.

Gruß Hagen

cchris 5. Jun 2006 14:56

Re: Sounds erkennen (Töne)
 
Für DTMF gibt es ja bereits fertige ICs. Ich war mehr auf der Suche, nach etwas, was das Frequenzspektrum ausgibt, also eine Transformation, das ganze sollte möglichst kostenlos sein.

Ich werd mich mal noch parallel mit dem Autor von DTMF decoder in Verbindung setzen, vielleicht ergibt sich da was...

negaH 5. Jun 2006 17:32

Re: Sounds erkennen (Töne)
 
Zitat:

Ich war mehr auf der Suche, nach etwas, was das Frequenzspektrum ausgibt, also eine Transformation, das ganze sollte möglichst kostenlos sein.
Ja es gibt fertige ICs wie den IC M8880, aber auf die bezog sich meine Antwort garnicht.

Die Theorien zur Fourier Transformationen und IIR/FIR Filter sind frei verfügbar und frei nutzbar. Die FFT wiederum erzeugt ein Frequenzspektrum deines Signales. Also BEIDE Bedingungen die du suchst sind erfüllt: frei verfügbar und technologisch exakt das was du suchst.

Das was du benötigst ist ein Rechner, ein Betriebssystem wie MS Windows, ein INet Zugang und die Addresse www.google.de in der du nun obige Stichworte

- DTMF + Decoder + Encoder + FFT + FIR + IIR + Bandpass + Filter

eingibst. Vielleicht solltest du auch bei google mal nach

"wie suche ich richtig" suchen.

Sorry, aber du hast nun alle Informationen um dein Problem zu lösen. Es gibt für dich nur 3 Lösungen

- DTMF-Hardware
- Frequenzspektrum per FFT oder DFT
- Bandpass Filter per FIR oder IIR

Übrigens selbst hier in der DP wirst du einen fertigen FFT Sourcecode für Delphi finden, da bin ich mir sehr sicher !

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz