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
 
#6

Re: Frequenz von Tönen über Mikrofon ermitteln?

  Alt 24. Jan 2008, 23:42
In der Code Library ist von mir eine FFT/DFT-Implementierung für Delphi. (http://www.delphipraxis.net/internal...t.php?t=105205)

Das ganze funktioniert ungefähr so:

Du hast eine eine Reihe von Abtastwerten des Eingabetons in einem Array (wieviele Abtastwerte pro Sekunde bestimmt die Sampling-Frequenz, meistens sowas wie 11025Hz, 22050Hz, 44100Hz)

Angenommen dein Array hat die Länge n, idealerweise eine Zweierpotenz, dann gilt:

Nach der Fourier-Transformation stehen in den Indizes 1 bis n/2-1 die Anteile der Frequenz Samplingrate/n, relativ zum Maximalwert. Die Indizes dahinter sind eine Spiegelung davon, also unbrauchbar. (sg. Alias-Effekt)

Wenn du also eine höhere Auflösung willst, kannst du z.B. eine größere Menge von Eingabewerten wählen - solange es eine Zweierpotenz ist, gibt es so gut wie keinen Geschwindigkeitsverlust, da die Laufzeit dann logarithmisch ansteigt.
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