I build a bandpass filter with buttor for 0.8Hz to 3Hz for AC part. there are 3000 line data. and each 128 point in 1 second. So I choose the sample rate is 128. But why is it only look fine after 2 sec. form 0 to 2 it look so terrible why?
num = xlsread('Untitled 12.xls');
time = num(:,1);
signal = num(:,2);
[b, a]=butter(2, [0.8 3]/(128/2),'bandpass');
signal_disposed =filter(b,a,signal);
plot(time(128:end),signal_disposed(128:end));

Réponses (1)

Star Strider
Star Strider le 2 Déc 2015

0 votes

First, I would use filtfilt here:
signal_disposed =filtfilt(b,a,signal);
Second, your signal does not look horrible. It looks as though you have about a 1 Hz signal that according to your filter design is being passed appropriately.

2 commentaires

xiang kunyu
xiang kunyu le 3 Déc 2015
yeah, I use for PPG signal AC. The AC of the PPG look like that. But I only not dont know why 0-2s signal like that. because the delay of filter?
Star Strider
Star Strider le 3 Déc 2015
You didn’t include your entire signal, only from 128:end. I don’t know what your entire original or filtered signal looks like.
See if using the filtfilt function gives a different result.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by