How can I write a filter code for my PPG signal to clear all noises on MATLAB?

Hi, I have my graphic like this. Firstly, I need to find peaks,but my signal is so noisy. How can I make my signal pure without any noise and holding orginal signals? Thank you.

1 Comment

We need to know the sampling rate of your data before we can recommend a filter. What does that time axis represent?

Sign in to comment.

 Accepted Answer

I am amazed that no one answered your question. You should use filter.I have used butterworth filter .matlab Command is butter.After making butterworth filter of desired order use filtfilt command to apply your filter to data which you want to process.Here is the example of bandpass filter W1=0.5/60;% lovver cutoff W2=4/60;%higher cutoff
[b,a]=butter(2,[W1,W2]); % Bandpass digital filter design h = fvtool(b,a); % Visualize filter
low_pass_data1 = filtfilt(b,a,intensity_r); % applying filter to our data intensity_r

2 Comments

hey the cutoff frequencies should be w.r.t. half the sampling frequency.If Fs is sampling frequenvy then W1=(Low_Cuttoff)/(Fs/2);% lower cutoff frequency W2=(High_Cuttoff)/(Fs/2);% Higher cutoff frequency .Use [pks,locs] = findpeaks(data) ; to locate the peaks.
What is the value of low_cutoff and high_cutoff in the above solution? I'm also working on PPG and would appreciate it!

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!