Frequenz bei FFTW
-
hallo zusammen!
ich habe als source meiner fft eine 10000 Messwerte in einer Datei. Möchte diese in einem Frequenzspektrum betrachten. dazu folgender Code
dValuesIN = static_cast<double*>(fftw_malloc( sizeof( double) * N)); dValuesOUT = (double*) fftw_malloc(sizeof(double) * N); std::memcpy(dValuesIN, dValues, sizeof(double) * N); fftw_plan dft = fftw_plan_r2r_1d(N, dValuesIN, dValuesOUT, FFTW_R2HC , FFTW_FORWARD); fftw_execute(dft); //qDebug() << *dValuesIN; fftw_destroy_plan(dft); fftw_free(dValuesIN); fftw_free(dValuesOUT);
dValuesOUT speichere ich dann wieder in eine Datei. Funktioniert soweit. nur, dass ich dann wieder nur amplituden bekomme. Ich weiß jetzt nicht wie ich auf die Frequenz komme, kann mir da jemand helfen.
-
-
Kann mir das jemand mit einem Codebeispiel erklären, ich werde aus diesem pdf nicht schlau.
Bin für jeden Rat dankbar.
-
Was heißt denn "ich bekomme nur Amplituden"?
Die DFT bringt dich doch von der Darstellung Signal über Zeit aufgetragen zur Darsellung Amplitude über Frequenz aufgetragen.
-
ich gebe zu ein wenig komisch ausgedrückt
ich bekomme den Amplitudenwert, aber nicht den dazugehörigen Frequenzwert.
Bsp:
Eingang:
0.141994317957627 0.281111113331655 0.414531176690295 0.539550743186181 0.653636284498194 0.754475850920814 0.840025923150771 0.908552824316969 0.958667853036661 0.989355425524575 0.999993656453608 0.990366961494838 0.960670426145682 0.911505852311673 0.843869562758083 0.759132210574843 0.659011002817058 0.545534901210549 0.421003505132025
Ausgabe der dft
2.05909e+07 77058.3 5504.4 -130553 -60071.9 -105434 -104199 -89688.5 48787.5 -76821.2 21535 -206404 -120866 -44308.7 -64922.2
jetzt hab ich zwar die Amplitudenwerte meines Spektrums, aber woher bekomme ich jetzt zu jeder Ampitude die Frequenz?
-
Wichtig ist diese Formel:
Hierbei ist die -te Frequenz in dem Frequenzspektrum, ist die Abtastfrequenz und die Anzahl der Werte.
Beispiel:
Du hat eine Abtastfrequenz von 44.1 kHz und 1024 Werte. Dann ist die 42. Frequenz:
~Alle Angaben ohne Gewähr. Ich hab das selber noch nie gemacht.~
-
vielen dank für die Antwort.
Hilft mir sehr viel weiter
danke nochmals