# [Numpy-discussion] numpy.fft, yet again

Jochen Schröder cycomanic@gmail....
Mon Jul 12 21:00:05 CDT 2010

```On 13/07/10 08:04, Eric Firing wrote:
> On 07/12/2010 11:43 AM, David Goldsmith wrote:
>>   > From the docstring:
>>
>> "A[0] contains the zero-frequency term (the mean of the signal)"
>>
>> And yet, consistent w/ the definition given in the docstring (and
>> included w/ an earlier email), the code gives, e.g.:
>>
>>   >>>  import numpy as np
>>   >>>  x = np.ones((16,)); x
>> array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
>>           1.,  1.,  1.])
>>   >>>  y = np.fft.fft(x); y
>> array([ 16.+0.j,   0.+0.j,   0.+0.j,   0.+0.j,   0.+0.j,   0.+0.j,
>>            0.+0.j,   0.+0.j,   0.+0.j,   0.+0.j,   0.+0.j,   0.+0.j,
>>            0.+0.j,   0.+0.j,   0.+0.j,   0.+0.j])
>>
>> i.e., the zero-th term is the sum, not the mean (which, again, is
>> consistent w/ the stated defining formula).
>>
>> So, same ol', same ol': bug in the doc (presumably) or bug in the code?
>
> Bug in the doc.  Good catch.  "mean" is correct for the ifft, not for
> the fft.
>
> Eric
>

I'd say that a pointer to a discussion about normalization of ffts would
be good here. The issue is that numpy is doing a normalization to len(x)
for the inverse fft. However to make ffts unitary it should actually be
that fft and ifft are normalized by sqrt(len(x)). And some fft
implementations don't do normalizations at all (FFTW).

Cheers
Jochen

>>
>> DG
>>
>>
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion@scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion

```