## 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 2*np*-2; otherwise, *n* is 2*np*-1.

The inverse finite Fourier transform of a two column
matrix **F**, denoted by the vector **x** is

for *i* = 1, ... ,*n*, where *q*_{i} = (-1)^{i} **F**_{np,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.

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