Regarding how to remove oscillations

Hi,
I am writing a code to reconstruct Fenton Karma model via Fourier Series using lsqcurvefit command. On recosntruction ,I got some oscillations.How can I remove them. I have attached the code with the required figure.

Answers (1)

Use medfilt1() or sgolayfilt() to get rid of small local oscillations.

3 Comments

Hi There,
I have some figures, and I need to compute and plot oscillations in a for loop. As there have been numerous discussions on mathwork about calculating with
[a, peaklocs] = findpeaks (y (:,4)); Period = mean(diff (tnew (peaklocs)));
I use this method and multiply one -peak oscillation by two to produce a completed oscillation. But my issue is with the minor oscillations, as shown in the figure below. That produces a high oscillation, according to diff(tnew(peaklocs)), which is not correct. I can't check each loop in a 100-loop programme. I simply want to avoid calculating errors and use a general rule. As a result, I use sgolayfilt(y(:,4),5,21), although slight oscillations persist. I'd appreciate it if you could make any suggestions about these tiny oscillations.
@star mahdavi take a look at all the different input options for findpeaks() and find one that will get rid of small ones, like maybe MinPeakHeight or something.
Thank you, I figure it out.

Sign in to comment.

Asked:

on 20 Sep 2020

Commented:

on 18 Feb 2022

Community Treasure Hunt

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

Start Hunting!