|
|
FFT_x achse dimensionieren |
|
luke_you know? |

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 15.10.08
|
 |
|
 |
Wohnort: 100km weg von Shanghai
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.11.2008, 09:28
Titel: FFT_x achse dimensionieren
|
 |
hallo
ich möchte eine schwingung mit fft auf ihre frequenzanteile hin untersuchen.
ich schaffe es mir die relationene anzeigen zu lassen, aber leider verstehe ich nicht wie ich die x achse richtig dimensioniere.
also dass meiner grundschwingung wirklich ein absoluter wert wie 20Hz steht. im moment steht da z.B ein grosser peak bei x1 und ich weiss nicht welche einheit x1 hat hat.
mein signal hat eine abtastrate von 0.008ms; die fft zeigt vernünftige werte an.(also es seiht wie ein normales frequenzspektrum aus)
liebe grüsse christian
_________________
hi i´m luke, like luky luke - you know?
|
|
|
|
|
luke_you |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.12.2008, 15:19
Titel:
|
 |
kann mir hier keiner helfen?
|
|
|
dib0r |

Forum-Guru
|
 |
Beiträge: 413
|
 |
|
 |
Anmeldedatum: 09.05.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.12.2008, 19:18
Titel:
|
 |
Hallo,
du musst bloß die Stelle des Maximums um 1 dekrementieren (der Werte an der Stelle 1 ist der Gleichanteil) und dann durch die Gesamtzeit dividieren.
z.B.
EDIT: Um die Zeitachse zu dimensionieren:
MfG
|
|
|
luke! |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.12.2008, 09:29
Titel:
|
 |
hey,
danke für die hilfe!
mein code sieht dann folgendermaßen aus:
ein paar fragen hab ich aber dann noch:
du meinst an stelle 1 vom ergebnis steht der gleichanteil? also bei der markierung oben bei f(1,1)??
-
das prgramm funktiniert super für sinusschwingungen bis ~40 sinusschwingungen pro sekunde, danach kommt aber komisches zeug raus, selbst wenn ich die samplefrequenz drastisch erhöhe..
gruss christian
|
|
|
dib0r |

Forum-Guru
|
 |
Beiträge: 413
|
 |
|
 |
Anmeldedatum: 09.05.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.12.2008, 10:24
Titel:
|
 |
Hallo,
ja, ich denke schon dass der erste Eintrag (f(1)) den Gleichanteil darstellt. Du kannst einfach mal ein Signal nehmen (z.B. sinus) und es um einen Offset nach oben oder unten verschieben. Dann sollte sich nur der erste Koeffizient ändern.
Dass es mit höheren Frequenzen nicht funktioniert, kann ich so nicht bestätigen.
Ich erhalt hier als hz = 3736 Hertz
MfG
|
|
|
Donmojito |

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.12.2008, 14:26
Titel:
|
 |
Hallo,
ich habe ein ähnliches Problem und bin auch schon ein gutes Stück weitergekommen. Allerdings handelt es sich bei mir um reale Messwerte.
Kurze Beschreibung:
Ergebnisvektor mit 1645 Messwerten (im Weiteren l)
500 MW/s als Aufzeichnungsfrequenz der Messtechnik. Es sind also rund 3 Sekunden Messzeit.
Mich interessiert das Rauschspektrum des Signals.
Also folgendes gemacht:
t= 0:0.002:(1645/500) %Zeitvektor zu 500Hz
f=abs(fft(l));
Wenn ich mir das nach eurem Programm erstellte Spektrum anschaue ist der erwartete Peak bei 50 Hz (elektrisches Netzrauschen) sehr verschoben.
----
Nächste Frage:
[f_max f_ind] = max(f);
Was macht der Befehl genau ?
Er speichert in f_max den Maximalwert von f und in f_ind ?
hz = f_ind/t_diff; berechnet dann die zugehörige Frequenz ?
Wie sieht das ganze in einem Signal unterschiedlicher Frequenzen aus ?
Ich hoffe ihr könnt mir da weiterhelfen...
Danke schonmal
Heiko
|
|
|
dib0r |

Forum-Guru
|
 |
Beiträge: 413
|
 |
|
 |
Anmeldedatum: 09.05.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.12.2008, 15:27
Titel:
|
 |
Hallo,
f_ind ist der Index, an dem das Maximum auftritt ( f_max = f(f_ind); )
berechnet die Frequenz des höchsten Ausschlages in Hertz.
Um die Achse der Frequenztransformation nach Hertz zu konvertieren:
Synthetisch erzeugte Daten
Ich erhalte nun bei 50.15 Hz den Peak. Je größer T oder Fs wird, desto genauer wird natürlich auch das Ergebnis.
MfG
|
|
|
Donmojito |

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2008, 09:13
Titel:
|
 |
Danke.
Dann kann das bei mir nicht klappen und die Darstellung ist tatsächlich richtig. FS hoch oder T größer hilft bekannterweise. Habe die Daten auch nochmal mit fs=5000 und fs=50000 und siehe da - es wird so langsam...das Rauschen ist schon noch sehr fies.
Also nächste Frage Filterdesign. Mal schaun wo ich die stelle.
Vielen Dank schonmal für deine Ausführungen.
Heiko
|
|
|
|
|
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.
|
|