WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

FFT mit sptool-Box

 

tobsenmh
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.10.13
Wohnort: NRW
Version: R2013b
     Beitrag Verfasst am: 31.10.2013, 16:09     Titel: FFT mit sptool-Box
  Antworten mit Zitat      
Hallo Zusammen,

mein Ziel ist es, die dominierenden Wellenlängen eines Oberflächenprofils zu bestimmen.

Dazu habe ich mit Hilfe der sptool-Box, speziell dem Sectrum Viewer, eine FFT meines im "Signal Browser" dargestellten Oberflächenprofils erzeugt Smile

Mein Fragen:

1.) Ist das bis hierhin der richtige Weg und wie kann ich nun weiter die dominierende(n) Wellenlänge(n) bestimmen?

2.) Kann ich die Schritte, die ich mit der sptool-Box durchgeführt habe, auch irgendwie in meinen Programmcode für einen automatischen Ablauf integrieren?

Vielen Dank und viele Grüße
tobsenmh

FFT.jpg
 Beschreibung:

Download
 Dateiname:  FFT.jpg
 Dateigröße:  261.48 KB
 Heruntergeladen:  1023 mal
Private Nachricht senden Benutzer-Profile anzeigen


Napomleb
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 27.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2013, 17:01     Titel:
  Antworten mit Zitat      
Hallo,

also ich hab keine Ahnung von Oberflächenprofilen, dementsprechend weiß ich auch nicht so recht was du machen möchtest.
Aber bevor hier wieder niemand antwortet versuch ich mal zu helfen.
Könntest du es vielleicht mit anderen Worten nochmal beschreiben was du möchtest?

Dein Ausgangspunkt sind Amplitudenwerte über der Zeit?
Und diese möchtest du Fouriertransformieren und dann dann die dominierenden Frequenzen bzw Wellenlängen rauslesen?

Kannst du vielleicht die Ausgangswerte mal zur Verfügung stellen (also X und Y werte)?

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
tobsenmh
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.10.13
Wohnort: NRW
Version: R2013b
     Beitrag Verfasst am: 07.11.2013, 07:50     Titel:
  Antworten mit Zitat      
Hallo Napomleb,

vielen Dank für Deine Antwort, du hast es (fast) korrekt erfasst:
Ich habe Amplitudenwerte (Spalte B) über einen Weg / eine Messstrecke (Spalte A) aufgenommen und möchte die dominanten Wellenlängen aus diesem "Rohprofil" ermitteln.

Dazu habe ich bisher die sptoolbox benutzt (speziell die FFT Funktion) und damit gleichzeitig meine zweite Frage generiert, nämlich ob und wenn ja wie ich Funktionen aus der sptoolbox auch in meinem Programmcode implementieren kann.

Ich hoffe, die Problemstellung ist klarer geworden und mein Ansatz nicht vollkommen verkehrt Wink

Vielen Dank und viele Grüße
tobsenmh

tobsenmh.xls
 Beschreibung:

Download
 Dateiname:  tobsenmh.xls
 Dateigröße:  747.5 KB
 Heruntergeladen:  1189 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Napomleb
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 27.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2013, 09:14     Titel:
  Antworten mit Zitat      
Hallo,

ok jetzt hab ichs verstanden.
In deinem Bild zeigst du ja des Profil über dem Weg, aber auf der x-achse ist eine Zeit in (hrs) angegeben.
Das ist doch falsch oder?
Es wäre noch gut wenn du ein paar Einheiten mitangeben könntest Smile
(des ist wichtig für die Einheit nach der Transformation)

Das sptool ist ja mehr oder weniger nur ein GUI für hinterlegte Funktionen,
die kannst du nachschauen:
http://www.mathworks.de/de/help/signal/ug/spectrum-viewer.html

Du kannst auch die Daten in den Workspace exportieren, aber wenn du einen automatischen Ablauf (Aufruf der Funktionen) haben willst, dann würd ich diese selber im Skript einfügen.

Mach mal aus deinen beiden Spalten zwei Variablen zb. weg (Spalte A) und profil(Spalte B) und versuch folgendes
Code:

plot(weg, profil);
figure;
fftprofil=abs(fft(profil, 1024));
plot(10*log10(fftprofil));
xlim([0 512]);
 


Wie du siehst hast du jetzt genau das gleiche Ergebnis wie in deinem Bsp das sptool liefert, nur das du die Achsen noch anpassen musst.

Aber was du jetzt genau aus diesem Spektrum rauslesen möchtest weiß ich leider immernoch nicht Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
tobsenmh
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.10.13
Wohnort: NRW
Version: R2013b
     Beitrag Verfasst am: 07.11.2013, 11:16     Titel:
  Antworten mit Zitat      
Hallo Napomleb,

vielen Dank. Mit Deiner Hilfe war die Umsetzung der sptool Funktion in meinem Programmcode kein Problem, das Ergebnis ist beigefügt. Einzig bei den Einheiten der FFT bin ich mir noch unsicher. Stimmen die so?

Ich möchte aber nicht bloß "abpinnen", sondern auch etwas lernen. Daher noch folgende Fragen:

1.) Warum wird die FFT auf 1024 Stellen "beschränkt", obwohl ich ja eigentlich viel mehr Messwerte zur Verfügung habe? (Wenn ich die FFT über meine Anzahl von zur Verfügung stehenden Messstellen laufen lasse, erhalte ich die Figure 4...)

2.) Warum ist die FFT dann wiederum symmetrisch und wird bei 512 abgeschnitten? Wozu die log-Darstellung?

3.) Aus der graphischen Darstellung der FFT die dominanten Wellenlängen raus zu picken, fällt mir immer noch sehr schwer Wink Sie ist laut Literatur aber ein geeignetes Werkzeug dafür...!? Eine Grafik mit einzelnen Peaks, wie z.B. hier dargestellt http://www.mathworks.de/de/help/matlab/ref/fft.html , wäre da aussagekräftiger...

Vielen Dank und viele Grüße
tobsenmh

FFT_Rev1.jpg
 Beschreibung:

Download
 Dateiname:  FFT_Rev1.jpg
 Dateigröße:  162.8 KB
 Heruntergeladen:  982 mal
FFT_alle_Werte.jpg
 Beschreibung:

Download
 Dateiname:  FFT_alle_Werte.jpg
 Dateigröße:  101.46 KB
 Heruntergeladen:  960 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Napomleb
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 27.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2013, 11:42     Titel:
  Antworten mit Zitat      
Hallo,

du bist vollkommen neu auf dem Gebiet der Fouriertransformation?
Vielleicht solltest du dich erstmal mit den Grundlagen der FFT bzw Signalanalyse beschäftigen.

Um ehrlich zu sein hab ich mich nur mit der "normalen" FFT vom Zeit- in den Frequenzbereich und umgekehrt beschäftigt.
Da du hier aber von einer Strecke auf eine Frequenz schließen möchtest, kann ich dir bei deinen Einheiten auch nicht weiterhelfen. Confused
Ich dachte das du zumindest ein bisschen weist was du überhaupt machen möchtest Very Happy

1.) Die FFT wird mit einem beliebigen Faktor einer zweierpotenz N=2^n durchgeführt. also 512, 1024, 2048 usw.
Bei anderen Werten erfolgt die Berechnung mit der DFT.
Ich hab nur 1024 genommen, weil du auch im sptool 1024 genommen hast Wink

2.) Schonmal was von Nyquist gehört? Wenn du das xlim mal weglässt, siehst du das ganze Spektrum bis zur Abtastfrequenz, wobei der Teil ab N/2 einfach der Anteil der "negativen" Frequenzen wäre.
In der Praxis schaut man sich aber nur das positve Spektrum an. Außerdem musst du immer aufpassen ob du dein Signal über- oder unterabtastest.

http://de.wikipedia.org/wiki/Nyquist-Shannon-Abtasttheorem

2.) log Darstellung, weil du im linearen Maßstab das ganze irgendwann nicht mehr ablesen kannst.

3.) Natürlich wäre dies einfacher, aber die FFT kommt aus deinem Weg-Profil Diagramm.
Versuch doch mal die "dominaten" Welle in deinem ersten Bild zu zeigen.



Wie kommst du eigentlich darauf das man aus dem Weg-Profil Diagramm mit Hilfe der FFT die Wellenlänge rausbekommt?
Private Nachricht senden Benutzer-Profile anzeigen
 
tobsenmh
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.10.13
Wohnort: NRW
Version: R2013b
     Beitrag Verfasst am: 12.11.2013, 09:14     Titel:
  Antworten mit Zitat      
Hallo Napomleb,

Du hast es richtig erkannt: Ich bin vollkommen neu auf dem Gebiet der Fouriertransformation Wink

Ich bin darauf gekommen, weil in der Literatur (Rauheitsmessung Theorie&Praxis von R. Volk) geschrieben steht: "Jedes Oberflächenprofil besteht aus einer Vielzahl verschiedener Wellenformen, die einander überlagert sind. Der tatsächliche Aufbau des Profils - Größe und Form der im Profil vorhandenen Wellenformen - kann mit der Fourier-Analyse bestimmt werden".

Du schlägst ja vor, in meinem Rohprofil die dominate Welle(n) zu zeigen. Welche Vorgehensweise hast Du denn da im Blick?

Gibt es denn eine Regel, wie der Faktor n^2 zu wählen ist? Denn ob nun N=1024 oder beispielsweise N=8192 (diesem Post beigefügter Plot) gesetzt wird, hat ja schon einen Einfluss auf das Ergebnis.

Ich hoffe, ich finde bei Gelegenheit Zeit mich weiter in die FFT einzuarbeiten. Eigentlich möchte ich nur das aus dem Buch zitierte anwenden: Praktiker! Wink

Viele Grüße
tobsenmh

FFT_8192.jpg
 Beschreibung:

Download
 Dateiname:  FFT_8192.jpg
 Dateigröße:  102.14 KB
 Heruntergeladen:  920 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.