Jedes Filter hat eine Einschwingzeit oder auch Delay genannt, bis die Signale vom Eingang an den Ausgang kommen. Das kann man nicht verhindern. Man kann das Signal nun um den Delay wieder nach links verschieben, so dass die Anstiege wieder in etwa mit dem ungefilterten Signal übereinstimmen. Da du hier aber eine Art Rechtecksignal hast und die Flanken nun mal ein hochfreq. Signal sind, werden durch die Tiefpassfilterung alle Kanten abgerundet. Hier wirst du einfach Abstriche machen müssen...die Filter sind kein Zauberwerkzeug
Ich habe nun mal dein neues Signal mit dem gleichen Filter gefiltert und das Signal anschließend um den Delay wieder nach links verschoben. Viel mehr wird mit der herkömmlichen Filterung hier nicht gehen. Ich werde mal noch ein IIR Filter probieren, befürchte aber, dass auf Grund der notwendigen niedrigen Grenzfreq. die Einschwingzeit einfach zu lang ist.
Lade dir alle 4 m-files auf der verlinkten Seite in dein Workverzeichnis von Matlab. In einem seperaten m-file erstellst du nun folgendermaßen das Filter und führst die Filterung durch.
% Filterdesign
order = 100; % Filterordnung -> 101 Koeffizienten
fc1 = 5; % 1. Grenzfrequenz
fc2 = 0; % 2. Grenzfrequenz...wird bei Tiefpass nicht gebraucht
fs = 1000% Abtastfrequenz in Hz
filter_type = 'low';
window_type = 'Blackman';
analyse_plot = 'n'; % Filterfrequenzantwort darstellen % Berechnung der Impulsantwort = Filterkoeffizienten
h = window_sinc_filter(order, fc1, fc2, fs, filter_type, window_type, analyse_plot);
% Signal mit dem Tiefpasspass filtern
V_filt = FFT_Faltung(V,h) ;
delay = 50; % Signal bei der Darstellung um delay (ms) nach links verschieben % delay = halbe Filterlänge (siehe Variable order) plot(t*1000,V_filt(delay+1:2^17+delay),'r.-');
Du kannst gerne noch mit die order erhöhen und fc1 verringern...aber das Ergebnis wird wohl kaum besser werden und dein Delay weiter steigen. Ich habe auch mal noch ein IIR Filter getestet, was aber auch keinen wirklichen Vorteil brachte. Vor allem an den Kanten entstehen mit diesem Filtertyp bei derartig niedrigen Grenzfrequenzen fc Überschwinger.
Wenn dir das Ergebnis immer noch nicht genug ist, musst du dich von der herkömmlichen Filterung verabschieden und eine Lifterung(=Filterung) im Cepstrum (=transformiertes Freq.-Spektrum) durchführen. Da du ja aber im Bereich Signalverarbeitung Anfänger bist, wäre das ein ganz schön harter Brocken.
Hier ist eine Seite, die ich immer wieder nur empfehlen kann. Allerdings ist das Skript auf englisch. Dafür sehr gut für Einsteiger und vor allem praxisnah ohne nun zu sehr auf die ganze Mathematik einzugehen.
Ab Kapitel 14-21 werden digitale Filter erklärt. Ich empfehle dir aber auch die Kapitel 8-11 wo es um die Erzeugung von Frequenzspektren etc. geht...also Grundlagen der digitalen Signalverarbeitung.
Skripte in deutsch von Uni's muss du selber mal googlen...da gibt es mit Sicherheit auch welche. Ansonsten kann ich die Bücher dig. Signalverarbeitung von K.D. Kammeyer oder dig. Messwertverarbeitung von R.Best empfehlen.
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.