Satimage Previous | Next
1-d and N-dimensional FFT
Home Documentation Smile Computing Smile's maths 1-d and N-dimensional FFT  
  • To compute the 1-d Fourier Transform of an array of real, use the short form of the fft1d command.
    fft1dNormalized fast Fourier transform.
    array of real -- or a list {real part, imaginary part} of 2 arrays of real
    [inverse] boolean -- default false, if true the inverse fft
    Result: array of real -- {real part, imaginary part} of the resulting fft.

    fft1d lets you compute the Fourier Transform for an array of real numbers or for an array of complex numbers. In the latter case, provide the real part and the imaginary part as a list of two arrays of real.
  • To compute a general, grouped, N-dimensional Fourier Transform of vectors, use the advanced form of the fft1d command.
    fft1dThe general interface for grouped and n-dimensional fft.
    array of real -- or a list {real part, imaginary part} of 2 arrays of real
    [inverse] boolean -- default false, if true the inverse fft
    [lot] integer -- the number of vectors to transform
    [vector size] integer -- the number of elements of each vector
    [vector step] integer -- the distance between elements in a vector
    [vector offset] integer -- the distance between vectors
    Result: array of real -- {real part, imaginary part} of the resulting fft.
  • The execution time of fft1d is of order N.Log(N), whatever the sizes of the arrays. However, fft1d is faster when the size of the vectors is the product of powers of small prime numbers.
Import script

set x to createarray 144 range {-pi, pi}
set y to randomarray 144 range {-0.75, 1}
set ys to runningsum y
set c to QuickCurve(x, y, 0)
set v to c's container
set {kr, ki} to fft1d ys
QuickCurve(x, kr, v)
QuickCurve(x, ki, v)
set v's limits to {-pi, pi, -pi, pi}
draw v
Version française
Copyright ©2008 Paris, Satimage