[Numpy-discussion] Numpty FFT.FFT slow with certain samples

Jaime Fernández del Río jaime.frio at gmail.com
Fri Aug 28 14:46:36 EDT 2015


On Fri, Aug 28, 2015 at 11:02 AM, Joseph Codadeen <jdmc80 at hotmail.com>
wrote:

> Hi,
>
> I am a numpy newbie.
>
> I have two wav files, one that numpy takes a long time to process the FFT.
> They was created within audacity using white noise and silence for gaps.
>
>
>    1. my_1_minute_noise_with_gaps.wav
>    2. my_1_minute_noise_with_gaps_truncated.wav
>
>
> The files are very similar in the following way;
>
>
>    - 1. is white noise with silence gaps on every 15 second interval.
>    - 2. is 1. but slightly shorter, i.e. I trimmed some ms off the end
>    but it still has the last gap at 60s.
>
>
> The code I am using processes the file like this;
>
>     framerate, data = scipy.io.wavfile.read(filepath)
>     right = data[:, 0]
>     # Align it to be efficient.
>     if len(right) % 2 != 0:
>         right = right[range(len(right) - 1)]
>     noframes = len(right)
>     fftout = np.fft.fft(right) / noframes    # <<< I am timing this cmd
>
> Using timeit...
>
>
>    - my_1_minute_noise_with_gaps_truncated took *30.75620985s* to process.
>    - my_1_minute_noise_with_gaps took *22307.13917s* to process.
>
>
> Could someone tell me why this behaviour is happening please?
>
> Sorry I can't attach the files as this email gets bounced but you could
> easily create the files yourself.
> E.g my last gap width is 59.9995 - 1:00.0005, I repeat this every 15
> seconds.
> My truncated file is 1:00.0015s long, non-truncated is 1:00.0833s long
>

It is almost certainly caused by the number of samples in your signals,
i.e. look at what noframes is in one case and the other.

You will get best performance when noframes is a power of two, or has a
factorization that includes many small integers (2, 3, 5, perhaps also 7),
and the worst if the size is a prime number.

Jaime

-- 
(\__/)
( O.o)
( > <) Este es Conejo. Copia a Conejo en tu firma y ayúdale en sus planes
de dominación mundial.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20150828/20d575c6/attachment.html>


More information about the NumPy-Discussion mailing list