|
|
FFT Real und Imaginärteil vertauscht |
|
Protestallianz |

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 21.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.09.2014, 08:36
Titel: FFT Real und Imaginärteil vertauscht
|
 |
Hallo,
ich beschäftige mich zwecks Signalauswertung mit der FFT, benötige dabei aber nicht nur das Amplitudenspektrum sondern auch die Anteile: Also Real- und Imaginär Anteil.
Das ganze liefert mir dan dem Y Eintrag zu meiner Frequenz 1 Hz:
0.0031-0.9999i
Dabei müsste es doch aber eigentlich:
1+0i sein.
Ich verstehe, dass man nicht genau auf 0 kommt aber warum ist der Realanteil
und der Imaginäranteil vertauscht?
|
|
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 10.09.2014, 09:34
Titel:
|
 |
Wie entnimmst du denn die Werte in Y zu 1Hz? Die FFT funktion liefert ja ein zweiseitiges Spektrum.
Man sollte auch möglichst für N = 2^x wählen, damit wirklich der FFT und nicht der langsame DFT Algorithmus verwendet wird.
0 Hz liegt dann beim Index Y(8193).
|
|
|
Protestallianz |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 21.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.09.2014, 10:42
Titel:
|
 |
Ja das mit dem N=x² wusste ich aber bisher ginge doch recht flott und ich dachte, ich bau keine zusätzliche Fehlerquelle ein (wegen fehlendem Verständnis). Aber deinen Ansatz werde ich so mal übernehmen.
Ja ich hab mir den Frequenzvektor angeschaut. Und dann recht am Anfang Index 5 oder 11 war dann schon die Frequenz 1 Hz (steht ja im meinem Anregungssigna 1*2*pi....).
Aus dem Grund, dass es double Sided ist, nehme ich nachher beim Polten die Daten:
Aber wenn ich mir die restlichen Einträge von MEINEM Vektor anschaue, finde ich keine weiteren reellen Einträge. Also ich bin mir sicher, deine Variante funktioniert, aber um das ganze etwas besser zu verstehen, würde ich gerne in Erfahrung bringen warum es bei mir vertauscht ist.
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 10.09.2014, 11:17
Titel:
|
 |
Sorry...habe hier einen Fehler gemacht. Es ist natürlich umgekehrt.
Aber der Fehler liegt vermutlich woanders. Du bekommst in dein Bsp. nämlich nicht die Werte zu deinem erstellten Frequenzvektor. Tatsächlich liefert dir die FFT nicht exakt bei 1Hz einen Wert, sondern bei
Daher dann auch die Abweichung von deinem erwarteten Ergebnis. Da deine Frequenzauflösung df kein ganzes Vielfaches deiner Signalfrequenz von 1Hz ist, entsteht der Leakage Effekt. Somit ist Y(11) eben nicht der Real- und Imaginärteil zu 1Hz.
So sieht dein Frequenzvektor tatsächlich zu deinem Signal y aus.
Ich empfehle dir mal folgendes Skript zur FFT: http://www.gomatlab.de/fft-umfassendes-beispiel-t777.html
Wenn du außerdem nach Amplitudenspektrum hier im Forum suchst, wirst du weitere FFT Funktionen als Skript finden.
|
|
|
Protestallianz |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 21.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.09.2014, 11:37
Titel:
|
 |
Danke für den Hinweis mit dem Vielfachen, und die ganzen anderen netten Hinweise du hast zu meinem Verständnis der FFT sehr beigetragen. Ja das umfassende Beispiel kenn ich schon.
Okay das Leckage erklärt die Abweichung. Aber nicht warum es vertauscht ist?
Warum ist der Wert 0-1i und nicht 1+0i?
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 10.09.2014, 11:52
Titel:
|
 |
Das kommt auf Grund der Darstellung einer komplexen Zahl.
z = a + i * b = r * (cos(alpha) + i * sin(alpha)).
Da dein Signal ein reiner Sinus ohne Phasenverschiebung ist, ist logischerweise der cos(alpha) = 0. Die DFT/FFT gibt ja auch nichts anderes wieder als die Darstellung von z für alle Winkel von fv = 0: df : fn.
Für den Betrag = Amplitude deines Sinus macht es ja dann keinen Unterschied ob
|
|
|
Protestallianz |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 21.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.09.2014, 12:28
Titel:
|
 |
Nein ich brauche nicht nur die Amplitude, viel interessanter ist für mich die Aufteilung. In meinem Fall welcher Anteil dämpfend ist (Imaginär) und so weiter.
Naja ich habe keine Phase also alpha=0 für den Fall der Zeigedarstellung.
Ich hab also cos(0)=1 und sin(0)=0. Der reine Sinus müsste auf der Reellen Achse liegen (x-Achse) und keinen Imaginäranteil haben.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|