Why does filtfilt provide me wrong results?

4 ビュー (過去 30 日間)
pietro
pietro 2015 年 2 月 8 日
コメント済み: pietro 2015 年 3 月 19 日
Hi all,
I'm using filtfilt function to filter some signals since i would like to minimize the phase lag between the original signal and the filtered one.
Here my code:
LPsig= designfilt('lowpassiir','FilterOrder',10,'PassbandFrequency',1,'PassbandRipple',0.2, ...
'SampleRate',Fs);
dfCoeff=double(LPsig);
FilteredSignalP=filtfilt(dfCoeff.Coefficients,1,Signal);
In this plot the filtered and non filtered signal are compared: http://s9.postimg.org/46qlzkz67/Immagine.jpg
There is the edge effect with a huge ripple. I found out that both effect are increased with the filter order, with a filter order of 10 both of them are negligeble. Could someone explain to me why? Anytime I have to filter data, I change almost randomly the filter parameter (filter order, filter type, passband ripple, etc) until I get a good result. How may I select the filter parameters?
Thanks
Regards
Pietro

回答 (1 件)

Erik S.
Erik S. 2015 年 2 月 8 日
Why do you write dfCoeff = double(LPsig);
Everything is double precision already.
Call the filter function like
FilteredSignal = filtfilt(LPsig,Signal);
  3 件のコメント
pietro
pietro 2015 年 3 月 19 日
Hi Erik, I'm sorry for the delayed reply, I was convinced I had the email notification turned on. I will send you the data this evening, because I have limited internet connection at my workplace.

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by