SNR estimation from single vector

4 views (last 30 days)
I'm interested in estimating the SNR of a signal with a wandering mean and no defined "signal" and "noise" vector. I have the following data, call it x:
My initial thought was to run it through a high-pass filter with a really low cutoff to get a steady, zero-mean signal. Then I would take the amplitude of the signal over the variance of the entire signal:
SNR = min(x)^2/var(x)
However, I have a feeling this is overly complicated and not a very good estimation. Thoughts?
  4 Comments
Walter Roberson
Walter Roberson on 26 Jan 2016
The data file did not get attached.
Sounds to me as if you want a low-pass filter.
Jeffrey Adolf
Jeffrey Adolf on 26 Jan 2016
Not sure why it didn't... I'll try again. You're suggesting an LPF to regain just my signal, then calculating based on that?

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 26 Jan 2016
Maybe try a Savitzky-Golay filter. Experiment around with different orders and window widths until you achieve the "look" you want. I attach a demo.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!