Verfasst am: 20.11.2014, 12:04
Titel: Frequenzbestimmung von Messwerten
Hallo Leute,
Ich bin mir unsicher wie ich gemessenes Signal auswerten kann. Ich hoffe Ihr könnt mir helfen!
Mein Problem: Ich habe Messdaten in den ein Manöver abgefahren wird. Meistens versucht der Fahrer einen Sinusverlauf mit bestimmter Frequenz zu fahren, die mir nicht bekannt ist. Nun ist meine Frage, wie ich die Frequenz des kurzen Manövers bestimme? Da die Werte deutlich von einem idealen Sinus abweichen, müssten auch die Frequenzen abweichen. Wie kann ich die Frequenzen bestimmen? Mit einem Mittelwert oder gibt es eine andere Möglichkeit?
Im Zeitbereich: Nulldurchgänge bestimmen -> Sinus mit 3 Nulldurchgängen = 1 Periode -> Kehrwert Zeitdifferenz vom 3.Nulldurchgang - 1. Nulldurchgang = Frequenz des Signals
Also F = 1/T wobei T = Periodendauer
Frequenzbereich: mittels FFT ein Frequenzspektrum berechnen
Ist aber beides ungenau, wenn es kein reiner Sinus ist. Dann besteht das Signal nämlich aus Sinuswellen unterschiedlicher Frequenzen.
So ich habe es mal ausprobiert, brauche aber nochmal eure Hilfe! Die fft gibt das Frequenzspektrum aus und ich sehe, dass deren Maximum bei ca. 0.3 Hz liegt. Nun weiß ich leider nicht wie ich an die genauen Wert auf der x-Achse für das Maximum komme. Y gibt leider nur imaginäre Ergebnisse aus. Ich hoffe Ihr könnt mir helfen
Code:
%% Frequenzbestimmung mittels FFT
L = length(m); %Länge des Vektors
Fs = L/(max(m(:,1)-min(m(:,1)))) %Abtastrate bestimmen
T = 1/Fs;
t = (0:L-1)*T;
y = m(:,2);
NFFT = 2^nextpow2(L);
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
L = length(m); %Länge des Vektors
Fs = L/(max(m(:,1)-min(m(:,1)))) %Abtastrate bestimmen
T = 1/Fs;
t = (0:L-1)*T;
y = m(:,2);
NFFT = 2^nextpow2(L);
Y = fft(y, NFFT);
% Berechnung des Amplitudengangs aus dem komplexen Frequenzvektor H:
amplY = abs(Y);
% Darstellung des interessierenden Frequenzbereichs des % Amplitudengangs (0...fn) und % daran angepasste Amplitudenskalierung (Normierung auf N/2):
amplitudengang = [amplY(1)/NFFT amplY(2:NFFT/2)/(NFFT/2) amplY(NFFT/2 + 1)/NFFT]; % DC-Bin auf N normieren!
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.