Einzelnen Beitrag anzeigen

Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Seltsame Ergebnisse bei DFT

  Alt 31. Jan 2007, 22:20
OK, ich hab hier noch ein Problem.

Ich suche mir momentan den Spitzenwert und rechne aus dem die Frequenz aus.

Meine Idee war jetzt, alle Werte der ersten Hälfte des fouriertransformierten Vektors mit der Frequenz, für die sie stehen, zu multiplizieren und dann am Ende das ganze durch alle Werte dieser Vektorhälfte zu teilen. Also in etwa so wie im Anhang.

Da bekomme ich Werte die ziemlich (aber nicht aber nicht ganz) gar nichts mit den wirklichen Frequenzen zu tun haben.

Also habe ich etwas eingebaut, was ich als NOISE_THRESHOLD bezeichne. NOISE_THRESHOLD ist eine Single-Konstante mit dem Wert 0.001. Werte aus dem Vektor gehen nur dann in die Berechnung ein, wenn sie >= NOISE_THRESHOLD*a[max] sind, wobei a mein Vektor ist und max der Index des Spitzenwertes. Das heißt, alle Werte, die kleiner sind als 1/1000 des Maximalwertes, werden vernachlässigt.

Dadurch erreiche ich eine Genauigkeit von +/- 1Hz, also statt 1420Hz erhalte ich 1419Hz.

Das klingt sehr gut, funktioniert aber nur bei Sinustönen.

Bei Square- oder Sägezahntönen stimmen die Werte überhaupt nicht.
Miniaturansicht angehängter Grafiken
formel_207.gif  
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat