www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP FIR filter mit ARM7 zur Tonerkennung


Autor: Philipp Aigner (st0ne)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi leute,

vielleicht könnt ihr mir weiterhelfen :-)

ich möchte mit meinem Atmel ARM7 (AT91SAM7S64) einen FIR filter zur 
erkennung von Tönen realisieren.

Im speziellen gehts mir darum einen Ton mit 1750Hz zu erkennen.
Soweit so gut.

Hardware, C-Code für den FIR filter, ist soweit verständlich.

allerdings die mathematik dahinter und die einbindung kapier ich nicht 
so ganz, darum weiß ich auch nicht so recht was nach so einem FIR filter 
für werte rauskommen.

ich hab jetzt mal mit einem Programm einen C code für einen Bandpass mit 
200Taps (geht das mit dem ARM7 noch? hab da keinen bezug dazu was ich da 
an rechenleistung benötige...) berechnet. Sieht in der Theorie soweit 
gut aus.
Muss ich da jetzt nach jedem mal samplen des AD-Wandlers die 
filterfunktion aufrufen und den einen gesampelten wert reinschieben? 
oder wie genau funktioniert das dann...?

am ausgang des filters würde ich wahrscheinlich die werte rausbekommen 
welche ich auch rausbekommen würde wenn das filter analog aufgebaut 
wäre... nur wie hilft mir das in der tonerkennung? ich muss ja dann 
sozusagen festellen das hier ein sinus dann anliegt... sollte dann auch 
noch funktionieren wenn störungen im signal sind und der ton relativ 
leise ist, darum ein sehr schmaler bandpass...

vielleicht kann mir wer weiterhelfen! :-)

danke
st0ne

achja: FFT ist mir zu grob, da ich andere frequenzen auch noch erkennen 
möchte...

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was willst du nun, den Ton oder "andere Frequenzen"?

Prinzipiell würde ich FIR-Filter wenn es Performance-kritisch ist eher 
auf nem DSP mit einer MAC einsetzen als auf einem ARM7. Hier wäre eher 
ein IIR mit dem ihm eigenen Nachteilen angebracht.

Autor: Philipp Aigner (st0ne)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vorerst mal einen ton, eventuell dann auch 2 verschiedene töne 
erkennen...

DSP hab ich zu wenig erfahrung damit...
ist ja auch nicht zeitkritisch, also muss nicht echtzeit sein, wenn er 
200ms braucht dafür ist das auch ok, falls ers in der zeit überhaupt 
schafft... ;-)

Autor: Name goes here (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guckst du z.B. hier pdfserv.maxim-ic.com/en/an/AN3386.pdf oder suchst du 
nach Goertzel.

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.embedded.com/9900722?_requestid=574731
The Goertzel Algorithm
eine Art Kochrezept, es gibt aber auch C-code dazu

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder halt einen Notch-Filter verwenden ... halt nur invers.

Autor: Philipp Aigner (st0ne)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die tollen links!

der goertzel algorythmus wird mir da sicher weiterhelfen, da ich sowieso 
vor hatte dtmf auch noch zu dekodieren, werde das morgen gleich mal 
testen!

sourcecode werde ich dann nach erfolgreicher funktion natürlich posten, 
dann haben andere auch was davon :-)

gruß st0ne

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.