2011-01-03 2 views
0

Ich arbeite an der Implementierung eines Algorithmus mit vDSP.vDSP: Umfassen die FFT-Funktionen die Fensterfunktion?

1) nehmen FFT 2) nehmen von Quadrat des Absolutwert log (mit Lookup-Tabelle) 3) nehmen eine andere FFT 4) nehmen Absolutwert

Ich bin nicht sicher durchgeführt werden, wenn es bis zu mir, um die eingehenden Daten durch eine Fensterfunktion zu werfen, bevor ich die FFT darauf ausführen.

vDSP_fft_zrip(setupReal, &A, stride, log2n, direction); 

dass meine FFT-Funktion ist

Muss ich zuerst die Daten durch vDSP_hamm_window (...) werfen?

+0

Sie könnten auch erwähnen, mit welcher Plattform Sie arbeiten - es sieht so aus, als wäre es wahrscheinlich Mac OS X oder iOS. –

Antwort

2

Die iOS-Accelerate-Bibliotheksfunktion vDSP_fft_zrip() enthält keine Fensterfunktion (es sei denn, Sie zählen das implizite rechteckige Fenster aufgrund des endlichen Längenparameters).

Sie müssen also zuerst Ihre gewählte Fensterfunktion (es gibt viele verschiedene) anwenden.

2

Ich habe keine Erfahrung mit Ihrer speziellen Bibliothek, aber in jeder anderen FFT-Bibliothek weiß ich, dass es an Ihnen liegt, die Daten zuerst zu sperren. Wenn nichts anderes, kann die Bibliothek nicht wissen, welches Fenster Sie verwenden möchten, und manchmal wollen Sie kein Fenster verwenden (wenn Sie die FFT für die Überlappungs-Filterung verwenden oder wenn Sie genau wissen, dass das Signal ist) periodisch im Transformationsblock).

Außerdem scheint es, als ob Sie 2 FFTs machen, der Aufwand für den Aufruf einer Logarithmusfunktion ist relativ gering.

2

Es klingt wie du machst cepstral analysis und ja, Sie benötigen eine Fensterfunktion vor der ersten FFT. Ich würde vorschlagen, eine einfache Hann or Hamming window.

+0

Ich habe es noch nie gemacht, aber ich dachte, wenn Sie eine Transiente analysieren, um ein Echo zu charakterisieren, haben Sie kein Fenster vor der ersten FFT? – mtrw

+0

@mtrw: Ich nehme an, vielleicht falsch, dass das OP Cepstral-Analyse für Sprache verwendet, in welchem ​​Fall Sie wahrscheinlich eine Fensterfunktion möchten, aber dies ist möglicherweise nicht für alle Anwendungen der Fall. –

+0

Sie haben Recht - http://stackoverflow.com/questions/4583950/cepstral-analysis-for-pitch-detection. – mtrw

Verwandte Themen