Normalization of Power Spectral Density

58 visualizaciones (últimos 30 días)
Sandro Camenzind
Sandro Camenzind el 31 de Dic. de 2020
Comentada: Sandro Camenzind el 31 de Dic. de 2020
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 :)

Respuesta aceptada

dpb
dpb el 31 de Dic. de 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 comentario
Sandro Camenzind
Sandro Camenzind el 31 de Dic. de 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! :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Parametric Spectral Estimation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by