# Signal power without FFT

I have an EEG signal thats about 1second long, sampling frequency of 256Hz, measured in microvolts, and I want to calculate the power of a specific frequency band (8-12Hz)

I believe the correct way to do this is to do an FFT which will give you frequency domain information, from which you can directly extract power. Is that correct?

I'm looking for a way to do this without FFT.

I have applied a butterworth filter to my signal, bandpass at 8-12Hz. This, I think, will result in a filtered signal that shows only the contribution from sinusoids within those frequency ranges.

Is there a way to extract power directly from this bandpassed signal without having to run an FFT? Would it simply be the average (squared?) voltage across the entire signal? Or would it be more complex than that?

I'm doing this in Python, so if there's any specific code I can take a look at then that'd be useful

• I think that some time-frequency method may respond your expectations. Do you want the characteristics to be extracted offline or online? – fpe Aug 10 '15 at 6:33

## 2 Answers

After performing the band-pass filter, the energy in that frequency band is given by:

sum( abs( signal ) ^ 2 )


By abs I mean the magnitude of a complex number, or the absolute (positive) value of a real number.

This works because of Plancherel's theorem.

Yes, it is simply the sum of the squered signal samples. This is a result of the Parseval's theorem