Forum: Digitale Signalverarbeitung / DSP / Machine Learning Frage zu FFT Programm


von study (Gast)


Angehängte Dateien:

Lesenswert?

Hallo ich habe eine Frage zu fft Programm (siehe Anhang).
Als Beispiel werden hier Daten von einer Textdatei eingelesen und die 
fft berechnet. Warum liegen die Werte (Zeitbereich) hier zweidimensional 
vor?
Das verstehe ich nicht. Für jede genauere Erläuterung bin ich dankbar.

: Verschoben durch Admin
von Karl H. (kbuchegg)


Lesenswert?

Ich versteh jetzt deine Frage nicht.

Eine FFT ist ja eine Operation die Samples, die in der Form 
[Realteil;Imaginärteil] vorliegen in andere Werte die ebenfalls in der 
Form [Realteil;Imaginärteil] dargestellt werden, umrechnet.

Das ist aber dem Prinzip nach schon eine 2D Operation.
[Realteil; Imaginärteil]  sind nun mal 2 Bestimmungsstücke durch die ein 
Sample charakterisiert ist und daher ist das Ganze grundsätzlich eine 2D 
Operation.

von study (Gast)


Lesenswert?

Ja aber wenn ich nun ein Sinussignal habe, dann habe ich ja keine 
Imaginärtanteile. Es handelt sich dann um eine 1D-FFT. Bei diesem 
Beispiel (FFT Programm) handelt es sich doch ebenfalls um eine 1D-FFT 
oder lieg ich da jetzt komplett falsch.

von study (Gast)


Lesenswert?

Ja und bei einem Bild benötigt man eine 2D-FFT.

von Karl H. (kbuchegg)


Lesenswert?

study schrieb:
> Ja aber wenn ich nun ein Sinussignal habe, dann habe ich ja keine
> Imaginärtanteile. Es handelt sich dann um eine 1D-FFT.

Nein.
die erste Dimension ist die Zeit, die 2.te Dimension ist die Amplitude 
der Schwingung.
2 Koordinaten - 2 Dimensionen

von Karl H. (kbuchegg)


Lesenswert?

study schrieb:
> Ja und bei einem Bild benötigt man eine 2D-FFT.

:-)
Währe naheligend, ist aber nicht so.
Bei einem (Schwarz Weiß) Bild hast du 3 Dimensionen

1. Dimension: Pixel in X Richtung
2. Dimension: Pixel in Y Richtung
3. Dimension: Amplitude (Helligkeitswert)

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

study schrieb:
> Bei diesem
> Beispiel (FFT Programm) handelt es sich doch ebenfalls um eine 1D-FFT

study schrieb:
> Ja und bei einem Bild benötigt man eine 2D-FFT.

Stimmt beides schon.

Der Begriff der Dimensionalität wird anders verwendet als es Karl-Heinz 
Buchegger erklärt hat. Die "1D-FFT" der Länge N verarbeitet einen 
Vektor aus N (im Allgemeinen komplexen) Zahlen. Bei der "2D-FFT" wäre 
es eine NxN große Matrix aus komplexen Zahlen. Bei der 3D-FFT wäre es 
ein NxNxN großer Tensor aus komplexen Zahlen, usw.

Ob reell oder komplex ist unabhängig von der Dimensionalität. Wenn du 
nur reelle Werte verarbeiten willst setzt du den Imaginärteil einfach 
jeweils auf 0. Um Rechenzeit zu sparen kannst du auch eine FFT-Variante 
verwenden die für rein reelle Werte optimiert ist.

von study (Gast)


Lesenswert?

Vielen Dank für eure Hilfe. Also handelt es sich in dem obigen Beispiel 
um eine 1D-FFT.

Eingangsdaten:
3.6 2.6
2.9 6.3
5.6 4.0
4.8 9.1
3.3 0.4
5.9 4.8
5.0 2.6
4.3 4.1

Ist die erste Spalte der Realteil oder Imaginäranteil?

Hat von euch jemand schonmal von einem Bild eine 2D-FFT durchgeführt?

von R. M. (exp)


Lesenswert?

study schrieb:
> Ist die erste Spalte der Realteil oder Imaginäranteil?


steht doch im Kommentar:
/*----------------------------------------------
   fft_test.c - demonstration program for fft.c
  ----------------------------------------------*/

/*********************************************************************** 
*******
 * This program demonstrates how to use the file fft.c to calculate an 
*
 * of given time-domain samples, as well as to calculate an inverse FFT 
*
 * (IFFT) of given frequency-domain samples.  First, N complex-valued 
time-   *
 * domain samples x, in rectangular form (Re x, Im x), are read from a 
*
 * specified file; the 2N values are assumed to be separated by 
whitespace.   *
 * Then, an N-point FFT of these samples is found by calling the 
function     *
 * fft, thereby yielding N complex-valued frequency-domain samples X in 
*
 * rectangular form (Re X, Im X).  Next, an N-point IFFT of these 
samples is  *
 * is found by calling the function ifft, thereby recovering the 
original     *
 * samples x.  Finally, the calculated samples X are saved to a 
specified     *
 * file, if desired. 
*
 ************************************************************************ 
******/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.