Re: Frequenzen finden
30. Apr 2004, 15:46
Bass.dll schön und gut, nur nutzen die keine für dich brauchbare FFT, bzw. der Output der "FFT" nutzt dir im speziellen nichts. Normalerweise macht man eine FFT über einen begrenzten Samplingbereich. Die Breite der FFT ist dann immer 2^x. x/2 gibt dann sozusagen deinen Frequenzbereich an. Also angenommen du machst eine 2^10 = 1024 Punkte FFT über ein Signal das mit 22KHz gesampelt wurde. Nun 22528 / 1024 = 22, d.h. im Outputarray der FFT stellt Array Eintrag 0 = 0Hz, Eintrag 1 = 22Hz, Eintrag 2 = 44Hz bis Eintrag 512 = 11Khz dar. Alle Einträge darüber sind nur das Spiegelbild der vorherigen Einträge, auf grund der Nyquist Eigenschaften der gesampelten Daten.
Nun, werden die Daten in diesem Array korrekt durch die FFT umgerechnet dann stellt jeder Eintrag die relativen Dezibel der zugehörigen Frequenz dar. D.h. mit obigen Paramtern und deinem 440Hz Signal müsste im Array Eintrag Nummer 20 der größte zahlenmäßige Wert stehen im Vergleich zu den anderen array Einträgen. Normalerweise stehen aber in den Array an 19 und 21 ebenfalls überdurchschnittlich hohe Werte.
Gruß Hagen
|