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

Problem bei der Filterfrequenz kurzer Zeitreihen

 

ArA
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 19.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 15:20     Titel: Problem bei der Filterfrequenz kurzer Zeitreihen
  Antworten mit Zitat      
Hallo community,

versuche z.Zt. einen Butterworth Filter auf eine Wasserstandszeitreihe mit Minutenwerten anzuwenden, mit dem Ziel, dass Grundsignal zu Isolieren. Dabei ist eine Grenzfrequenz von etwa 400 [°/h] anzusetzen. Bei längeren Zeitreihen funkioniert dies augenscheinlich einwandfrei. Versuche ich jedoch dies auf einen kurzen Zeitraum anzuwenden, scheint eine Problem mit der Angabe der Grenzfrequenz vorzuliegen. Die Filterung ist dabei weniger ausgeprägt als bei der längeren Zeitreihe. Vermutlich liegt hier ein Dimensionaproblem vor. Ich wäre euch sehr dankbar, wenn ihr mir hierbei weiterhelfen könntet. Das Eingangssignal liegt sowie das plotFFT skript befinden sich im Anhang.

Code:


% Time vector
t=Time_w(:,1);
% Signal
Y=Time_w(:,2);

% Plot Timeseries
figure(1)
subplot(2,1,1)
plot(t,Y)
duration=length(Y)/1440;
title(['Zeitreihe ( ',num2str(duration),' Tage )'],'FontWeight','bold');
axis([t(1)+(1/1440)*240 t(end) min(Y)-10 max(Y)+10]);
xlabel('t [d]'); ylabel('w [cm]');
grid

% Sampling frequency:
Fs = 2^nextpow2(length(t));

% The maximum frequency that can be shown in the spectrum is
% always half the sampling frequency:nxt
Fn = Fs/2;

% Plot Frequency-band
subplot(2,1,2)
PlotFFT(2*Y,Fn);    
axis([0 1000 0 400]);
title('Frequenz Band','FontWeight','bold');
xlabel('Freq [°/h]'); ylabel('Amp [cm]');
grid

disp('-----------------------------------------')
Format = input('Bitte Grenzfrequenz festlegen: ');
disp('-----------------------------------------')

% HINWEIS!!!
% 0.0 corresponds to 0 Hz, and 1.0 corresponds to the Nyquist frequency.
% So, our normalized frequency is given by the equation
% Fnorm = Fc/Fnyquist.

Fnorm = Format/Fn;

% Generate a Low-pass Butterworth filter
Order=3;               % Eingabe der Filterordnung
[b,a] = butter(Order,Fnorm,'low');  

% Plot Butterworth Filter
figure(2)
freqz(b,a)   % Plot the response with the FREQZ function
title(['Butterworth Filter ',num2str(Order),'´ter Ordnung']);
grid on

% Apply the filter
Yfiltered = filtfilt(b,a,Y);

% Plot of the input Signal, the resulting frequency domain and
% the filtered frequency domain
figure(1)
subplot(3,1,1)
plot(t,Y)
title(['Zeitreihe ( ',num2str(duration),' Tage )'],'FontWeight','bold');
axis([t(1)+(1/1440)*240 t(end) min(Y)-10 max(Y)+10]);
xlabel('t [d]'); ylabel('w [cm]');
grid

subplot(3,1,2)
PlotFFT(2*Y,Fs);    
axis([Format-200 Format+200 0 10]);
title('Frequenz Band','FontWeight','bold');
xlabel('Freq [°/h]'); ylabel('Amp [cm]');
grid

subplot(3,1,3)
PlotFFT(2*Yfiltered,Fs);  
title(['Gefiltertes Frequenz Band - Cutoff Frequenz bei ',num2str(Format),' [°/h]'],'FontWeight','bold');
axis([Format-200 Format+200 0 10]);
xlabel('Freq [°/h]'); ylabel('Amp [cm]');
grid

% group delay, the amount of time the filtered signal is delayed

figure(3)
Delay=grpdelay(b,a);

subplot(3,1,1:2)
hold on
plot(t,Yfiltered,'--r');
plot(t,Y)
title('Zeitreihe','FontWeight','bold');
axis([t(1)+(1/1440)*240 t(end) min(Y)-10 max(Y)+10]);
xlabel('t [d]'); ylabel('w [cm]');
grid on

subplot(3,1,3)
grpdelay(b,a);
grid on
title('Groupdelay','FontWeight','bold');

clear Delay
clear Fn
clear Fnorm
clear Format
clear Fs
clear L
clear Order
clear Shift
clear a
clear b
clear duration

 


PlotFFT.zip
 Beschreibung:

Download
 Dateiname:  PlotFFT.zip
 Dateigröße:  71.82 KB
 Heruntergeladen:  351 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 - 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.