I wonder if an efficient method exist to compute how much a signal is periodic, it should be ~1.0 when the signal is totally periodic (like a sinusoïdal signal) and ~0.0 when totally random, like a white noise.
Edit : This question came with a big misunderstanding, it has been modified to fit the answer.
Answer
I suggest using Spectral Flatness, aka Wiener Entropy. It is defined as a ratio of geometric and arithmetic mean of the magnitude spectra $X(k)$:
$$\Xi=\dfrac{\sqrt[k]{\prod_{k=0}^{K} X(k)}}{\frac{1}{K}\sum_{k=0}^{K}X(k)} $$
For signals which have flat spectra, its value tends towards $1$, whereas for tonal signals it is close to $0$. In your particular application, you might want to consider $1-\Xi$ as a measure of "tonalness" in your signal.
No comments:
Post a Comment