Verfasst am: 05.08.2015, 20:10
Titel: FFT Plot aus Matrix
Hallo liebe Leute,
ich habe Echtzeitdaten aufgezeichnet und in einer Matrix gespeichert, wobei in der ersten Zeile die x-Werte stehen und in der 2. Zeile die y-Werte der Messung. Plot haut ohne weiteres hin.
Wie kann ich aus der Matrix mit Berücksichtigung der x-Werte eine FFT Analyse erstellen?
Danke DSP, ich hab den Thread schon gefunden, steige aber da nicht ganz dahinter.
Bin relativ neu in Matlab und suche eine einfache Möglichkeit, meine Messwerte darzustellen.
Was ist da die Abtastfrequenz? Kann mir jemand einfach erklären, wie ich das ganze auf die Frequenz umrechne? Das ganze muss ja mit der x-Achse zusammenstimmen, einfach Syntax spektrum=fft(y) bringt mir ja nichts, da es dann die Frequenz in Hz nicht kennt?
Ich steig da nicht dahinter...
Ich möchte aus den Daten einen Plot mit x (Frequenz in Hz) und y (Amplitude).
dazu wäre es jetzt mal interessant zu wissen, was das für Werte sind. Was sagen deine x und was sagen deine y Werte?
Ohne Zeitstempel oder ohne Wissen über deine Aufzeichnung wird es schwierig eine Abtastfrequenz herauszubekommen. Schau dir mal die Fourertransformation genau an und dann schaue was du für Größen brauchst. Das Problem ist, dass du für eine Transformation die Größe t brauchst, denn was nützen dir Werte, wenn du nicht weißt wann sie aufgenommen wurden. Der zweite Wert deiner Aufzeichnung kann nach einer Stunde oder nach einer Sekunde augenommen worden sein und genau das hat Einfluss auf die aufgenommen Frequenzen bzw. natürlich dann auch auf deine Abtastfrequenz.
Nehmen wir an die x Werte wären deine Abtastzeitpunkte, kannst durch eine einfache Differenzbildung herausfinden wie der zeitliche Abstand zwischen zwei Abtastungen ist und das Reziprok davon ist dann deine Abtastfrequenz. Aber ich denke, dass ist für dich eher weniger hilfreich?
Was meinst du genau mit auf Frequenz umrechnen? Das ist doch genau das was die Fouriertransformation macht, sie transformiert deine Werte vom Zeit in den Frequenzbereich.
Sag bescheid wenn du noch Hilfe brauchst
Liebe Grüße
Maxx_BMT
_________________
Mathematik ist ein geistreicher Luxus. - Friedrich der Große
In der ersten Zeile stehen die Zeitwerte mit konstantem Abstand. Insgesamt 87235 Werte und in der zweiten Zeile die Amplitude eines Sensors. Auch 87235.
Ich möchte damit die Resonanzfrequenz herausfinden, welche sich um 3Hz bewegen sollte.
Ich kommen mit dem C Code nicht zurecht. Bzw scheiterts an den Variablendef. am Anfang, die müssen ja auf meine Werte angepasst werden?
Darin wird folgende Funktion verwendet, welche du als m-file mit genau dem Namen der Funktion abspeichert musst.
Code:
function[mag, mag_dB, fv] = FFT_betragsspektrum( signal, nfft, fa, window, scale) % Input: % Signal im Zeitbereich % nfft = Anzahl Messwerte für fft % wenn nfft > length(sig) -> fft(sig,nfft) führt Zeropadding durch % fa = Abtastfreq. % window: Fensterung mit Hann window % scale: 0 = keine Impulsantwort als Eingang, 1 = Impulsantwort % Output: % Magnitude des Spektrums linear und dB skaliert % Frequenzvektor fv in [Hz] von 0...fa/2
% un-,gerade Anzahl Messwerte? ifmod(nfft,2) == 0;
k = (nfft/2) + 1;
else
nfft = nfft + 1;
k = (nfft/2) + 1;
end
Allerdings wird ein Dezimalpunkt in Matlab durch einen Punkt und nicht durch ein Komma dargestellt! Nutze sonst die Importapp von Matlab um die Daten richtig einzulesen und zu formatieren.
Zeile 1 x: 0,0499987585228610 0,0509988926023652 0,0519986956212506 usw.
x = [ 0.0499987585228610 0.0509988926023652 0.051998695621250 ...]
tooooooobi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 09.08.2015, 22:04
Titel: Danke
Danke danke danke DSP, hat mir sehr geholfen. Verstehs jetzt auch
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
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.