Dear all,I have a question concerning the normalisation of the power spectrum:
I have a 1D signal and compute the power spectrum of it as:
signal_fft = np.fft.fft(signal)*dt
psd = np.abs(signal_fft)**2,
which is scaled correctly according to Parseval’s theorem.Now, I make an axisymmetric 2D image using this signal:
image = np.interp(r.flatten(), t, signal).reshape(r.shape) (where r = np.hypot(tx, ty) and tx, ty = np.meshgrid(t, t))
and compute the 2D powerspectrum as:
image_fft = np.fft.fft2(image)*dt**2
psd_2d = np.abs(image_fft)**2If I now want to recover the 1D power spectrum from the 2D power spectrum, using a function which gives me the radial profile of the 2D power spectrum, I see that the 1D psd obtained this way has the same shape but a different amplitude than the 1D psd from the 1D signal. Do you perhaps know how to correctly scale the 2D psd so that the 1D psd obtained from the 2D power spectrum of the image has the same amplitude as the 1D psd from the 1D signal? I already tried dividing by the number of pixels and other stuff but cannot find the correct way…
Thanks in advance!
Kevin