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

Filtern von Frequenzen, FFT, IFFT

 

Ex123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2018, 11:34     Titel: Filtern von Frequenzen, FFT, IFFT
  Antworten mit Zitat      
Hallo Leute,

ich habe eine FFT für ein Spannungssignal gemacht. Es gibt Spannungswerte die über der Zeit aufgetragen sind und ich wollte mit der FFT die Frequenzen/Drehzahlen ermitteln. Das hat soweit ganz gut funktioniert. Nun möchte ich die Frequenzen von 0,8 bis 0,84 rausfiltern und das ganze wieder retransformieren, sodass ich am Ende wieder Spannungswerte über der Zeit aufgetragen habe. Ich bin für jeden eurer Tipps dankbar. Ich hänge selbstverständlich meinen bisherigen Code an.

Code:
t1 = ExcelVal(:,1); % Zeit-Werte aus Spalte 2 der Excel Datei einlesen
s1 = ExcelVal(:,2); % Spannungs-Werte aus Spalte 2 der Excel Datei einlesen
%---------------------------

d = (t1(end)-t1(1))/(length(t1)-1); % Zeitdifferenz zweier Messwerte entspricht Sample Time
fa = 1/d; % Abtastfrequenz
fn = fa/2; % Nyquistfrequenz = halbe Abtastfrequenz
N = 8192; % gewünschte FFT-Länge (N=2^x, sonst wird der DFT-Algorithmus verwendet!)
%N = 2.^(nextpow2(length(t1))) % gewünschte FFT-Länge (N=2^x, sonst wird der DFT-Algorithmus verwendet!)
df = fa/N; % Frequenzauflösung


%---Graphische Darstellung des Datensatzes ---
 
max_y = max(abs(s1))*1.1; % max. Amplitude ermitteln und entsprechende Anpassung der y-Achse
fig = figure(1);          % fig
plot(t1,s1);
%axis([0 N -max_s1 max_s1])
title('Zeitreihe')
ylabel('Spannung')
xlabel('Zeit')
grid

%---Graphische Darstellung des interpolierten Datensatzes ---

y2 = resample(s1,t1); % Lineare Interpolation nach den Zeitwerten
t2 = linspace(t1(1),t1(end),length(t1)); % gibt einen Vektor von gleichmäßig verteilten Punkten zurück, Anzahl enstpricht Länge des Ausgangvektors

max_y2 = max(abs(y2))*1.1; % max. Amplitude ermitteln und entsprechende Anpassung der y-Achse
fig = figure(2);                                                                             %fig
plot(t2,y2);
%axis([0 N -max_y2 max_y2])
title('Äqudistante Zeitreihe mit interpolierten Spannungswerten')
ylabel('Spannung')
xlabel('Zeit')
grid

%---------------------------


% Berechnung der FFT
% ------------------

H = fft(y2, N); % Berechnung des Amplitudengangs aus dem komplexen Frequenzvektor H
amplH = abs(H); % Amplitudenskalierung (Normierung auf N) und verschieben der Elemente des
                % Amplitudenvektors, so dass die Darstellung des Amplitudengangs von -fn...0...fn
                % erfolgen kann:
amplitudengang = fftshift(amplH/N);


%---Graphische Darstellung

% Frequenzvektoren (werden bei der graphischen Darstellung benötigt):
t2_fn = 0 : df : fn-df;
t2_fa = 0 : df : fa-df;
% Darstellung des interessierenden Frequenzbereichs des Amplitudengangs (0...fn) und
% daran angepasste Amplitudenskalierung (Normierung auf N/2):
%-------------------------------------------------------------------------------
t2_fn1 = 0 : df : fn;
amplitudengang1 = [amplH(1)/N; amplH(2:N/2)/(N/2); amplH((N/2)+1)/N]; % DC-Bin auf N normieren!              
amplitudengang = fftshift(amplH/(N/2));
fig = figure(3);                    % neues fig
plot(t2_fn1, amplitudengang1, 'b.-');
% axis([0 fn 0 a*1.1])
title('Amplitudengang')
ylabel('Amplitude')
xlabel(['Auflösung: ',num2str(df),' Hz Frequenz in Hz'])
grid


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.