I want to determine the power of the noise component of a time dependend signal x(t) (similar to picture below)


With constant sampling rate I use Parceval's Therorem and calculate the standard deviation with

$$ \sigma^2 = \frac{\text{abs}(\text{FFT}(x))^2}{N} $$

where N is number of data points and fft matlab dft implementation. For the standard deviation according to white noise I remove the discrete frequencies of the spectrum and use above formula with the mean value of the remaining spectrum.

In some signals there are quite a few NaN data points (~ 10%), so said method can not be applied anymore.

Is there a mathematically correct method to determine the power of the noise component of the signal? Interpolation does not seem to be a good solution, because this would lead to an underestimation of the noise.

  • $\begingroup$ The method that you described sounds reasonable already. I don't think you'll find any "mathematically correct" way to handle signals that contain NaNs, as those aren't really a mathematical construct. $\endgroup$
    – Jason R
    May 22 '14 at 16:35
  • $\begingroup$ There are other ways - for example remove the sinusoid with a narrow notch filter. But you probably need to resolve the NaN issue before any of them will work. $\endgroup$
    – John
    May 22 '14 at 16:57

I assume you have information about the signal itself (Not the noise).

What you can do is use LS to estimate the signal (Easily compensate for the missing samples in the Model Matrix).
Once you have it estimated you can do 2 things (Which are the same):

  1. Recreate the samples using the model. Subtract the measurements. You'd be left with IID Samples of the noise -> Use the empirical STD / Variance estimator.
  2. If it is Linear Least Squares use its internal estimation of the noise Variance.

Good Luck!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.