SDL Component Suite - Fourier

The unit FOURIER contains the fast Fourier transform (FFT) component TFastFourier.

TFastFourier can transform data sets of up to 16 million samples in both directions and provides several of the most important windowing functions (such as Hamming, Blackman, Cosine Square, Triangle, and others). It calculates the real and imaginary parts (xx and quadrature), the power spectrum, the magnitude and the phase spectrum.

Following is a short table of conversion times obtained with an Athlon CPU (1333 MHz). The conversion times have been measured by transforming a random signal (white noise):
 

Number of 
data points
Conversion time 
[msec]
Conversions
per Second
Number of 
data points
Conversion time 
[msec]
Conversions
per Second
1024 0.3231 3095 65536 52.7 19
2048 0.5947 1681 131072 276 3.62
4096 2.174 460 262144 669 1.49
8192 3.247 308 524288 1161 0.86
16383 9.93 100 1048576 3270 0.31
32768 22.16 45.1

The unit FOURIER is part of the SDL Component Suite. More details can be found in the online help pages.

Free Sample Programs

FourSynt Shows how to use the inverse FFT of unit FOURIER to synthesize waves. The user may change the coefficients of the Fourier series and immediately sees the effect in the waveform. Sources of the sample program included. foursynt.zip
(304 kB)
FFT Analysis Displays the Fourier transform spectrum of a periodic signal. The user may adjust the noise level and the frequency of one component of the signal. Sources of the sample program included. fft.zip
(320 kB)
FTFilter Shows how to use the Fourier transformation for filtering purposes. The program implements a simple low-pass filter with adjustable cut-off frequency. Sources of the sample program included. ftfilter.zip
(283 kB)
FFT60Hz Simple program showing how to process a 60 Hz sine signal using the FFT component of unit FOURIER. The program shows both the frequency and the integer harmonics. The signal is sampled at 187500 Hz. Sources of the sample program included. fft60hz.zip
(286 kB)


What's new:

  • Release 12.0   [Dec-12, 2023]
     
  • Release 10.7   [Aug-24, 2020]
     
    • no changes

  • Release 10.6   [Mar-09, 2018]
     
    • no changes

  • Release 10.5   [Oct-10, 2016]
     
    • no changes

  • Release 10.4   [Jun-02, 2015]
     
    • no changes

  • Release 10.3   [Oct-06, 2014]
     
    • none

  • Release 10.2   [May-30, 2013]
     
    • no changes

  • Release 10.1   [Oct-29, 2012]
     
    • no changes

  • Release 10.0   [Oct-4, 2011]
     
    • no changes

  • Release 9.7   [May-31, 2010]
     
    • no changes

  • Release 9.51   [Dec-01, 2008]
     
    • no changes

  • Release 9.5   [Oct-31, 2008]
     
    • new function LineOfFreq transforms frequencies to spectral line indexes

  • Release 9.0   [May-28, 2007]
     
    • no changes

  • Release 8.5   [Feb-18, 2006]
     
    • new property WgtFunction allows to specify user-defined weighting functions

  • Release 8.2   [Nov-03, 2004]
     
  • Release 8.1   [Aug-29, 2004]
     
    • available for Delphi™ 8 for .NET

  • Release 8.0   [Apr-15, 2004]
     
    • DataBuffer is replaced by FData

  • Release 7.2   [Mar-23, 2003]
     
  • Release 7.0   [Sep-15, 2002]
     
    • available for Delphi™ 7.0
    • the unit is now CLX compatible

  • Release 6.5   [May-28, 2002]
     
    • available for C++Builder™ 6.0

  • Release 6.0   [Aug-06, 2001]
     
    • available for Delphi™ 6.0
       
  • Release 5.5   [May-01, 2000]
     
    • available for C++Builder™ 5.0
       
  • Release 5.0   [Oct-09, 1999]
     
    • FOURIER now available for Delphi™ 5.0 (as part of the SDL Component Suite 5.0)
    • bug fix: MagniMax and PowerMax deliver now correct values
       
  • Release 1.4.  [Mar-27, 1999]
     
    • Delphi™ 1.0 no longer supported
    • bug fix: scaling of Fourier spectrum was wrong
    • bug fix: accessing PowerSpec after a resize of the spectrum size no longer creates an floating point error
    • indexing scheme of PowerSpec, Magnitude, RMS, and Phase properties changed (index 0 is now constant term, index 1 is first harmonic, etc)
    • data array may now contain up to 16 million samples
       
  • Release 1.3.    [Aug-17, 1998]
     
    • FOURIER is now available for Delphi™ 4.0
    • spectra are now scaled
    • new properties Magnitude and MagniMax implemented
    • new property Phase
    • new function FreqOfLine
    • new function RMS
    • new properties FourSerSinCoeff and FourSerCosCoeff
    • bug fix in PowerSpec: PowerSpec delivered wrong values
       
  • Release 1.2 (Apr-13, 1998)
     
    • FOURIER is now available for all versions of Delphi™ (1.0, 2.0, 3.0), and for C++Builder™ (1.0 and 3.0)
       
  • Release 1.1 (Aug-12, 1997) :
     
    • Scaling of Inverse FFT now included
    • unit DCommon no longer needed for FOURIER
    • Direct access to internal data buffer included