|
Donpulio |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 07.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.06.2010, 12:23
Titel: fft in Matlab
|
|
Hallo!
Wie speichert Matlab genau eine fft ab?
Wenn ich ein Signal der Länge N abgespeichert habe, ergibt die fft dieses Signals ebenso einen 1xN Vektor.
Nun möchte ich das Signal in der Phase "verschieben".
Eigentlich dachte ich könnte ich das, indem ich zu jedem Wert im fft Vektor eine Phasenverschiebung mit der komplexen e-Funktion, hinzumultipliziere:
Aber das geht so nicht.
Im FFT Vektor sind doch komplexe Werte, also Betrag und Phase gespeichert ?
Danke für Eure Hilfe.
|
|
|
|
|
Fourier |
Forum-Guru
|
|
Beiträge: 329
|
|
|
|
Anmeldedatum: 05.04.10
|
|
|
|
Wohnort: Karlsruhe
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 29.06.2010, 07:35
Titel:
|
|
Hallo,
die Formel des verschiebungssatzes lautet:
dh du musst schon deine Frequenzen definieren usw.
hier ist ein Beispiel, es ist von der Matlabhilfe, habe ich dann bisschen erweitert dass man die verschiebung sieht.das alles kannst du auf deine aufgabe anpassen.
gruss
_________________
Ein schlechter General ist besser als zwei gute.
|
|
|
Donpulio |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 07.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.06.2010, 13:09
Titel:
|
|
Vielen Dank erstmal für die gute Antwort!
Aber wenn ich es mit einem anderen Testsignal (hier ein Auszug aus einem Stromsignal: Fs=10000 Hz, Länge 200 Samples) probiere ergibt sich ein "Offset" beim phasengeänderten Signal (siehe Fig 3).
Hier ist mein abgeänderter Code und im Anhang die files dazu.
Wie kommt es dazu ?
Beschreibung: |
|
Download |
Dateiname: |
Stromsignal.zip |
Dateigröße: |
3.31 KB |
Heruntergeladen: |
580 mal |
|
|
|
Fourier |
Forum-Guru
|
|
Beiträge: 329
|
|
|
|
Anmeldedatum: 05.04.10
|
|
|
|
Wohnort: Karlsruhe
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 30.06.2010, 08:27
Titel:
|
|
Hallo,
es könnte daran liegen dass nach dieser zeile:
Y nur noch die länge 100 hat. und dann rechnest du ifft der länge 200:
damit wird Y mit Nullen erweitert und es könnte zu verfälschungen führen.
ich hab jetzt den Code bisschen geändert, der offset ist weg, aber man sieht eine kleine verfälschung im verschobenen Signal.
es könnte auch daran liegen dass:
nicht immer genau 1 ist. kannst du mit format long e anschauen.
bin mir aber nicht so sicher dass es wirklich daran liegt.
gruss
_________________
Ein schlechter General ist besser als zwei gute.
|
|
|
|
|
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.
|
|