Recent

Author Topic: FFT performance  (Read 4539 times)

Thaddy

  • Hero Member
  • *****
  • Posts: 18524
  • Here stood a man who saw the Elbe and jumped it.
Re: FFT performance
« Reply #60 on: October 23, 2025, 05:43:35 am »
no optimizer turned on.
That's how we did it in DC-DSP's FFT. Milenko Mitrovic has precompiled lookups for blocks upto 8092. He also precompiles sincos tables. (In initialization)

Sources are here:
https://www.dsp-worx.de/?n=5 https://www.dsp-worx.de/download/DCDSPFilter_v1.03_Source.zip

Precompiled tables - written out - are in https://www.dsp-worx.de/download/FastFourierDJB.zip

At the time we made a mistake to compile the lookup lists so large, since what we actually needed is 1024 2048 and 4096 to cover real-time FFT's (doubles) for audio. (assumes 44100,48000 and 96000 sr) Anything else is a bit over the top for audio. Anything smaller is for display purposes.
The code is 22 years old but still good, although a bit large. On modern hardware I prefer a simpler version, like I posted here or like you just showed.
I am not sure the code as-is was already freepascalified, but should be no problem ( the bare code, not the visual components). This code is windows 32 only! although we made attempts to make a 64 bit version. Don't know the status, but I know the code is forked a few times, so it may have been done already.

Side note: the 3DNow efforts to which I contributed are now pretty much useless... The other FP instructions still work, though.

For all intend and purpose: for all table based examples given in the discussion, you just need those tables from the fastfourierdjb.pas (attached)

« Last Edit: October 23, 2025, 07:09:26 am by Thaddy »
Due to censorship, I changed this to "Nelly the Elephant". Keeps the message clear.

 

TinyPortal © 2005-2018