How to tell how smooth a signal oscillates?

12 views (last 30 days)
I have a quite noisy signal from an aero dynamic experiment. I need to find out how smooth my signal oscillates or more precisely if my system skips an oscillation ever once in a while.
I have implemented a Butterworth filter which works quite well, nevertheless I struggle to quantify if the system skips oscillations.
My idea was to compute an average oscillation (the average alle oscillations to receive one average oscillation). And then compare each oscillation to the average and if the deviation is too large it should be marked.
Am I taking the right approach? Is there a function to with does this?
Here the system oscillates smoothly:
Here the system oscillates badly:
  1 Comment
Mathieu NOE
Mathieu NOE on 17 Mar 2021
my 2 cents suggestion ; either use findpeaks or even better, envelope and decide based on deviation of these if the signal is "steady" or "unsteady"

Sign in to comment.

Accepted Answer

Swetha Polemoni
Swetha Polemoni on 24 Mar 2021
Hi Maximilian Valentin Schraysshuen
You may find the following approach useful.
  1. Calculate the mean of the signal using "mean"
  2. Calculate the windowed mean of the signal using "movmean" . Size of window can be varied according to the signal.
  3. Now deviation of windowed mean with respect to mean can be used to determine if the oscillations are smooth or not.
Hope this helps
  1 Comment
Maximilian Valentin Schraysshuen
Hello Swetha Polemoni,
thank you very much for your answer!
I have implemented it another way already, but will use yours as well as is has benefits over my idea.
Have a nice day

Sign in to comment.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!