[SciPy-User] Amplitude scaling in fft

Jochen Schroeder cycomanic at gmail.com
Mon Jan 18 20:19:36 EST 2010


Hi,

your answer doesn't really have a clear answer. Say raw_fft/raw_ifft is an fft
without normalization then:
A = raw_ifft(raw_fft(a, n=2**11), n=2**11)
A = N*a 

where N=2**11 not len(a). However numpy does perform a normalization step in
the ifft part, so that
numpy.fft.ifft = raw_fft / N

This way we can use the fft just as a Fourier transform and also fft(\delta) is
constant 1. 

Hope that explains things a bit.

Cheers
Jochen


On 01/17/10 23:44, Sharaf Al-Sharif wrote:
> Hi,
> I'm a bit confused regarding how the amplitudes returned by np.fft.fft (or
> np.fft.rfft) relate to the amplitudes of the original signal in time domain.
> If:
> A = np.fft.rfft(a,n=2048)
> but,
> n_pts = len(a) < 2048,
> 
> will the physical amplitudes in time domain be np.abs(A)*2/2048 , or np.abs(A)
> *2/n_pts? Or something else?
> Thank you for your help.
> 
> Sharaf

> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user




More information about the SciPy-User mailing list