[fpc-pascal] Good FFT example anywhere?

Adriaan van Os fpc at microbizz.nl
Sun Apr 9 10:27:34 CEST 2017


Bo Berglund wrote:
> I am looking for some good example of FFT functions in pascal but it
> seems like what Google serves up is rather old and refers to
> Turbo-pascal and the like...
> So maybe someone here knows about some open-source example of FFT
> using FreePascal (or Delphi)?
> 
> I want to analyze the frequency content of transient responses
> measured using a 24 bit A/D converter. It will produce 8192 samples
> for each measurement.
> 
> Any suggestions welcome!

For maximum speed you would use vector-code. This could be assembly from Pascal. But it is easier 
to use Intel IPP <https://software.intel.com/en-us/intel-ipp> or Apple Accelerate Framework 
<https://developer.apple.com/reference/accelerate> when you are on OS X or iOS. Apple also has a 
lib with C-source code <http://raquo.net/MatrixFFT-12.tar> that is much faster than the FFT in the 
Accelerate Framework when the FFT size is large, see 
<https://web.archive.org/web/20110806070107/http://images.apple.com/acg/pdf/FFTapps_20090909.pdf>.

Pascal interfaces for IPP are here <http://adriaan.biz/intel/ipp.pas.zip>.

There are also the FFTs in the GNU Scientific library 
<https://www.gnu.org/software/gsl/manual/html_node/Fast-Fourier-Transforms.html> but it has license 
restrictions <https://www.gnu.org/software/gsl/manual/html_node/GNU-General-Public-License.html>.

I have a Pascal FastFourierTransform.pas unit (without vector code), but it is not written by me. 
You would have to contact the author for permission to use it. I can give the email address by 
private email.

Regards,

Adriaan van Os




More information about the fpc-pascal mailing list