1
$\begingroup$

I am collecting a 15Hz sine wave at 1500Hz. Therefore, every 100 points of data collected should contain a single complete sine wave. If I sample for 10 seconds, I will have 15000 points of data. If I perform an FFT on this data I will have very high frequency resolution. However, If I wanted to divide these 15000 points into 100 point sections and average them together to get a mean signal of 100 points, and performed an FFT on that, my frequency resolution would be very low. So, by averaging my data I am losing frequency resolution.

The reason I would like to get an average is because high amplitude noise is periodically injected into the sine wave. I would like to throw away the sections containing noise and only have the frequency information of the average of clean data.

I'm fairly new to DSP so I'm not quite sure how to approach this problem. Any thoughts would be greatly appreciated.

$\endgroup$
1
  • $\begingroup$ Do you have an example of your data you can put up? $\endgroup$
    – Spacey
    Commented Apr 12, 2013 at 19:09

2 Answers 2

1
$\begingroup$

Please be specific about what kind of analysis you want to perform. My reply is based on the assumption that you want to measure the exact frequency of the input (since you are talking about frequency resolution) - that is known to be near 15 Hz.

Averaging is not the only option to remove the noise. You can filter your input signal by a low-pass filter with a cutoff-frequency near the frequency of interest. If your noise is very spiky (just a glitchy sample with an abnormally high amplitude), there are non-linear techniques which might be even more efficient at removing spurious transient events without much impact on the overall shape of the signal - for example, median filtering. The danger of averaging is that the averaged segments will have to be perfectly synchronized with the period of your input signal - if they are not, the phase differences will cause cancellations and your signal will lose amplitude as segments are averaged.

Even with averaging and/or in a situation with access to a limited number of samples, there are better techniques than the FFT. For example, accurately determining the frequency of a sinusoidal signal can be seen as a model fitting problem and can be solved by least square techniques. You could also use a PLL to try to lock into the input signal, and thus get the phase/frequency information - if this is what you are interested in knowing...

$\endgroup$
3
  • $\begingroup$ Nice answer Pichenettes - 1) When might frequency estimation via LSE do better than a DFT? Why would someone use that instead of readily available FFT? 2) Also, doesn't MUSIC already try to fit a sinusoid into a signal in the LSE sense? $\endgroup$
    – Spacey
    Commented Apr 12, 2013 at 19:57
  • $\begingroup$ 1) Consider the extreme case of knowing only 2 samples of a signal, with no noise/error. If you know that the signal is a sine wave, then the signal is actually fully determined by the two samples. 2) MUSIC, ESPRIT, to some extent AR-models are all in the same category of methods - parametric modeling, when you make a modeling assumption about the process that generated the observed signal, estimate the parameters of the model using some form of least-square or expected least-square minimization, and derive from the parameters useful information about the signal. $\endgroup$ Commented Apr 12, 2013 at 21:10
  • $\begingroup$ Regarding (1), are you saying that LSE is only useful if i) we know its a sine wave, ii), we have very low noise levels? I guess I am not seeing the advantage of DFT over MUSIC over LSE... $\endgroup$
    – Spacey
    Commented Apr 13, 2013 at 0:23
0
$\begingroup$

Look up wavelet denoising if you want an alternative to FFTs (which you should still consider).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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