I wish to find total power in a given frequency band within different time windows of a signal.

I see two methods of doing so, first in the frequency domain. One could estimate the power spectral density within the windows (i.e. tapering and then apply FFT), and integrate over the frequency band of interest.

In the time domain, one could apply a bandpass filter to the whole signal, and then estimate power as the mean square of the signal within the windows.

What would be the differences between the results of the two methods, could one of them be considered superior in this case?


Personally I'd go with the bandpass filter, unless there is a strong reason not to.

  1. Much lower implementation complexity, CPU and memory usage.
  2. You can get a continuous output signal at the same sample rate as the input signal. The FFT method will get you only one output per frame, so it's down sampled to the hop size.
  3. No framing artifacts based on how your signal lines up with the frame grid: You can frame it, but you don't have to.
  4. You can design fairly flexible "ballistics" into the detector: fast attack, slow decay, peak hold, lossy peak. I.e. it's easy to customize how fast/slow it reacts to different types of energy changes.

On the downside the choices for frequency weighting functions are fairly limited. If you need fancy frequency domain shapes the FFT may be better.


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.