MATLAB Answers


Criterion for stability of oscillations / frequency stability?

Asked by David
on 1 Oct 2015
Latest activity Commented on by Rashed Saifuddin on 1 Jun 2017
Hi Matlab Community,
I'm looking for a criterion (best case available in Matlab) to quantify stability of oscillations. I have three images to explain a little more what I mean and are cases which I'm working with.
  1. A perfect sine wave should give me a perfect score ( say on a scale of 0 to 1 this should give me a 1)
  1. A sine wave that changes its frequency should give an intermediate score (the lower the more changes in frequency and the shorter behaviour of the same frequency is)
  1. random/noise signal should give me a very low score (say close to 0)
My source is biological, so the signal will be never be as nice as perfect sine waves.
Any ideas for possible criteria/computations area appreciated!

1 Answer

Answer by Star Strider
on 1 Oct 2015

Based on your criteria, I would simply do a fft on your data (use the code between the first two figures as a guide), then taking the amplitude spectrum only, compare the highest peak amplitude with some measure of the width of the peak. A ‘pure’ signal will have a very low width, and a much more random signal a much broader peak width. Comparing the height to width (at some point relative to peak height, perhaps the half-maximum amplitude) could give you the sort of measure you want. Then scale it as you wish to fit your (0,1) interval.
Biological signals that vary in frequency and amplitude (since it’s usually both) over time generally have information in them that ‘pure’ signals generally do not. There are a number of entropy measures that assess the information content in various biological signals. A PubMed search should provide one appropriate to the system you are studying.


Sign in to comment.