[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