Normalization of Power Spectral Density

295 views (last 30 days)
Hey everybody :)
When calculating the PSD from the fft, one apparently needs to normalize | FFT(signal)|^2 with a factor of (1/(fs*N)) where fs = sampling frequency and N = length of signal (see for example "Power Spectral Density Estimates Using FFT" https://www.mathworks.com/help/signal/ug/power-spectral-density-estimates-using-fft.html.
I was wondering where this factor comes from. I would be very grateful for your help :)

Accepted Answer

dpb
dpb on 31 Dec 2020
It's to make the output amplitude consistent regardless of the frequency resolution of the measurement. See https://community.sw.siemens.com/s/article/what-is-a-power-spectral-density-psd for a nice tutorial.
It would be helpful if TMW would put some of this information in their documentation given their user base often is new to the field...hint, hint. :)
  1 Comment
Sandro Camenzind
Sandro Camenzind on 31 Dec 2020
Okay, that makes sense - if I understood everything correctly, it basically boils down to the following steps:
We start from some function f(t) of which we would like to know the PSD. To do so, we first calculate the FFT (and normalize by the signal length):
N = length(f);
f_FFT = fft(f)/N;
In a next step, we can then calculate the PSD by squaring the magnitude of f_FFT and normalizing by the frequency resolution df = fs/N (fs = sampling frequency):
df = fs/N;
f_PSD = abs(f_FFT).^2/df;
Those two normalization in the second line and in the fourth line could also be taken together, which yields:
(1/N)^2 / df = N/N^2 * 1/fs = 1/(N*fs)
which is the factor given in the Matlab documentation of the PSD.
Given that I'm correct until here, we could probably use this PSD to calculate the RMS with something like:
f_RMS = sqrt(df * sum(abs(f_PSD)))
where the multiplication with df was used because for the RMS we take the integral (which numerically can be approximated with the sum times the integration interval df). Do you think this is correct?
Thanks a lot for your help, this really helps me a lot and it is super interesting! :)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!