|
|
Fourier-Tranfsormation (FFT) liefert falsches Ergebnis |
|
dipling |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 09.12.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.12.2009, 12:29
Titel: Fourier-Tranfsormation (FFT) liefert falsches Ergebnis
|
|
|
|
|
Hi,
ich arbeite zur Zeit an einem Programm, welches mich dazu befähigen soll, mithilfe eines Sinus-Sweeps den Frequenzgang eines Gerätes zu messen.
Der erste ( auch funktionierende) Ansatz lautet:
x(t) = sweep
y = x(t) gefaltet mit h(t)
wenn ich jetzt y(t) mit x(-t) falte, kommt h(t) raus.
Klappt wunderbar - hat nur einen Haken: bis dieses Programm abgearbeitet ist, dauert es unter umständen ( je nach rechner und länge der Vektoren) einige Minuten.
Nun ist ja gemeinhin bekannt, dass eine Faltung im Zeitbereich eine Multiplikation im Frequenzbereich darstellt.
also, nicht dumm, gehn wir hin und transformieren:
x(t) -> X(f)
x(-t) ->X(f) ( das Spektrum bleibt ja gleich )
y(t) -> Y(f)
dann multipliziert:
X(f) * Y(f) = H(f);
dann zurücktransformieren :
H(f) -> h(t)
soweit, sogut.
leider ist dieses h(t) ein KOMPLETT anderes, als das oben.
in meiner Konkreten Ausführung habe ich das Eingangssignal mit sich selbst gefaltet, das ergibt mir ( bei Faltung ) einen Dirac ( wie ich erwartet habe ) .
Bei dem "Umweg" über den Frequenzbereich kommt nur noch schrott.
hat einer ein kurzes Beispiel ( bitte mit code ! )
Wäre sehr dankbar!
viele Grüße
dipling
edit:
das script mit der faltung: http://pastebin.com/m397ebe19
das script mit der Transformation: http://pastebin.com/m63ddae25
|
|
|
|
|
dipling |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 09.12.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.12.2009, 14:38
Titel:
|
|
Edit by Martin: Bitte in Zukunft die Code-Formatierung verwenden. Danke
Beschreibung: |
Übersicht; oben faltung, in der mitte Transformation ohne und unten mit zeropadding |
|
Download |
Dateiname: |
untitled.png |
Dateigröße: |
7.27 KB |
Heruntergeladen: |
973 mal |
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.01.2010, 16:35
Titel:
|
|
wird sich wohl nur um einen Schreibfehler handeln oder warum hast du Start und Ende gleich?
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.02.2010, 12:41
Titel:
|
|
kein schreibfehler:
t geht von 1/fs in schritten der breite 1/fs bis 1 ...
|
|
|
Andy386 |
Forum-Guru
|
|
Beiträge: 485
|
|
|
|
Anmeldedatum: 24.06.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.1/8
|
|
|
|
|
|
Verfasst am: 30.05.2010, 13:44
Titel:
|
|
|
|
|
|
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 - 2024
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.
|
|