filtfilt for filter.m ?

조회 수: 1 (최근 30일)
Abdul Rauf Anwar
Abdul Rauf Anwar 2012년 3월 6일
Hi I am trying to implement a bandpass filter for EEG data like given below
H = fdesign.bandpass ('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2',0.05,0.1,200,220,50,0.5,50,1000);
D = design(H,'kaiserwin'); % filter
fvtool(D) % filter's magnitude response
x=randn(1,100000);
y = filter(D,x);
xdft = fft(x);
ydft = fft(y);
subplot(221);semilogy(abs(xdft(1:length(x)/2+1)));
subplot(222);semilogy(abs(ydft(1:length(x)/2+1)));
subplot(223);plot(x);
subplot(224);plot(y);
It seems to work fine as i can see only my desired band of frequences in power spectrum but filtered time domain signal (y) seems to be overdamped for some startup time. I have looked for this problem and it looks like i should use filtfilt instead of filter, can someone guide me how to use filtfilt in above code. Thanks in Anticipation Regards

답변 (1개)

Malcolm Lidierth
Malcolm Lidierth 2012년 3월 30일
If you have R2011b+ (or a+?), using the standard filtfilt. If not, see http://www.mathworks.com/matlabcentral/fileexchange/17061-filtfilthd

카테고리

Help CenterFile Exchange에서 EEG/MEG/ECoG에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by