How to calcuate the energy spectrum of a signal?

时光毁灭记忆、已成空白 提交于 2019-12-12 02:02:55

问题


I know by theory that the energy spectrum of a given signal is the sum of the squared fourier coefficient.

What if I have the real and imaginary part of the corresponding fourier coefficient, can I say that energy spectrum of a given signal is equal to sum of (real part + imaginary part)^2

I hope that is straightforward what Im trying to say?!

best regards ben


回答1:


Not quite. You want:

sum of fft_result_magnitudes^2

which is:

sum of (sqrt(real_part^2 + imaginary_part^2)^2

which is:

sum of (real_part^2 + imaginary_part^2)

to get the sum of the squared magnitude of a complex FFT's results.

As for a fuller statement of Parseval's theorem, see:

http://en.wikipedia.org/wiki/Parseval%27s_theorem




回答2:


If result is a column vector with N elements, the energy spectrum is also a vector with N elements.

powerSpec = abs(result).^2;

The total energy can be calculated by

totalPower = sum(powerSpec);

or

totalPower = result' * result;

If result is a row vector you have to use

totalPower = result * result';


来源:https://stackoverflow.com/questions/28180857/how-to-calcuate-the-energy-spectrum-of-a-signal

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!