I am trying to estimate the average amplitude of some signal with frequency 6 Hz, sampled at ~300 Hz. See figures for a part of the signal and its dft calculated using matlab.

I estimate the average amplitude of the signal by calculating its root mean square,

>> rms(signal)

ans =


However, when looking at the signal (see first figure), it is very clear the mean amplitude is slightly greater than ~5, and is probably closer to ~8. Summing the peak amplitude in the frequency domain and its first few aliases results in the same value (~5).

What am I doing wrong here? How to properly estimate the signal average amplitude from its dft?



  • 1
    $\begingroup$ As a rough comparison, the RMS of a pure tone is 0.707 of its amplitude. So, divide your 5 by it and you get 7.07. (Challenge: Where does the 707 come from and why does it repeat?) Likewise, double your DFT magnitude for that bin and you get roughly the same answer. $\endgroup$ – Cedron Dawg Jun 28 at 2:04
  • 1
    $\begingroup$ Nah, that's all there is to it. $$ 0.707 \approx \frac{1}{\sqrt{2}} $$ $$ \frac{5}{0.707} \approx \frac{ \frac{10}{2} }{ \frac{1}{\sqrt{2}}} = 10 \frac{1}{\sqrt{2}} $$ 10 times makes the repeat. $\endgroup$ – Cedron Dawg Jun 28 at 2:15
  • $\begingroup$ Yeah, I was trying to make a few guesses but realized they don't make sense. Thanks again! $\endgroup$ – liorr Jun 28 at 2:16
  • $\begingroup$ You are most welcome. You seem to have a good attitude about this stuff so keep up the good work. $\endgroup$ – Cedron Dawg Jun 28 at 2:18
  • 2
    $\begingroup$ In case you didn't know, doubling the magnitude of the bin to get the amplitude only works if your tone has a whole number of cycles in the frame. If not, a good approach is this dsprelated.com/showarticle/787.php, but it is a lot easier just to frame a whole number of cycles (at least five). If you try the approach in the article, I recommend that you "unfurl" the vectors like I do here: dsprelated.com/showarticle/1284.php. $\endgroup$ – Cedron Dawg Jun 28 at 2:30

Your Answer

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

Browse other questions tagged or ask your own question.