Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Language Reference

IFFT Function

computes the inverse finite Fourier transform

IFFT( f)

where f is an np ×2 numeric matrix.

The IFFT function expands a set of sine and cosine coefficients into a sequence equal to the sum of the coefficients times the sine and cosine functions. The argument f is an np ×2 matrix; the value returned is an n ×1 vector.

Note: If the element in the last row and second column of f is exactly 0, then n is 2np-2; otherwise, n is 2np-1.

The inverse finite Fourier transform of a two column matrix F, denoted by the vector x is
x_i = F_{1,1} + 2 \sum_{j=2}^n 
 ( F_{j,1} \cos ( \frac{2 \pi}n (j-1)(i-1) ) + 
 F_{j,2} \sin ( \frac{2 \pi}n (j-1)(i-1) )
 ) + q_i
for i = 1, ... ,n, where qi = (-1)i Fnp,1 if n is even, or q=0 if n is odd.

Note: For most efficient use of the IFFT function, n should be a power of 2. If n is a power of 2, a fast Fourier transform is used (Singleton 1969); otherwise, a Chirp-Z algorithm is used (Monro and Branch 1976).

IFFT(FFT(X)) returns n times x, where n is the dimension of x. If f is not the Fourier transform of a real sequence, then the vector generated by the IFFT function is not a true inverse Fourier transform. However, applications exist where the FFT and IFFT functions may be used for operations on multidimensional or complex data (Gentleman and Sande 1966; Nussbaumer 1982).

The convolution of two vectors x (n ×1) and y (m ×1) can be accomplished using the following statements:

   a=fft(x//j(nice-nrow(x),1,0));
   b=fft(y//j(nice-nrow(y),1,0));
   z=(a#b)],+[;
   b],2[=-b],2[;
   z=ifft(z||((a#(b],2 1[))],+[));
where NICE is a number chosen to allow efficient use of the FFT and IFFT functions and also is greater than n+m.

Windowed spectral estimates and inverse autocorrelation function estimates can also be readily obtained.

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.