IT++ Logo Newcom Logo

Fast Fourier Transforms (FFT)

One dimensional fast fourier transform. More...

Functions

void itpp::fft (const cvec &in, cvec &out)
 Fast Fourier Transform.
cvec itpp::fft (const cvec &in)
 Fast Fourier Transform.
cvec itpp::fft (const cvec &in, const int N)
 Fast Fourier Transform, with zero-padding up to size N.
void itpp::ifft (const cvec &in, cvec &out)
 Inverse Fast Fourier Transform.
cvec itpp::ifft (const cvec &in)
 Inverse Fast Fourier Transform.
cvec itpp::ifft (const cvec &in, const int N)
 Inverse Fast Fourier Transform, with zero-padding up to size N.
void itpp::fft_real (const vec &in, cvec &out)
 Real Fast Fourier Transform.
cvec itpp::fft_real (const vec &in)
 Real Fast Fourier Transform.
cvec itpp::fft_real (const vec &in, const int N)
 Real Fast Fourier Transform, with zero-padding up to size N.
void itpp::ifft_real (const cvec &in, vec &out)
 Inverse Real Fast Fourier Transform. Assumes even size.
vec itpp::ifft_real (const cvec &in)
 Inverse Real Fast Fourier Transform. Assumes even size.
vec itpp::ifft_real (const cvec &in, const int N)
 Inverse Real Fast Fourier Transform, with zero-padding up to size N.

Detailed Description

One dimensional fast fourier transform.

Author:
Tony Ottosson and Adam Piatyszek
The functions
 X = fft(x) 
and
 x = ifft(X) 
are the fourier and inverse fourier transforms of size N defined as:

\[ X(k) = \sum_{j=0}^{N-1} x(j) e^{-2\pi j k \cdot i / N} \]

\[ x(j) = \frac{1}{N} \sum_{k=0}^{N-1} X(k) e^{2\pi j k \cdot i / N} \]

 Y = fft(X, N) 
performs zero-padding up to size N and then performs an N-size fft.

The implementation is built upon one of the following libraries: FFTW, MKL, or ACML, depending on which was chosen during compilation.

The routine is fastest for powers of two. Furthermore, the second time you call the routine with the same size, the calculation is much faster due to many things were calculated and stored the first time the routine was called.

Note to FFTW users: Achieving maximum runtime efficiency with the FFTW library on some computer architectures requires that data are stored in the memory with a special alignment (to 16-byte boundaries). The IT++ memory management functions and container classes do not generally allocate memory aligned this way, and as a result calling FFTW via the IT++ interface (i.e. the fft() function) may be slower than using the FFTW library directly. Therefore, FFTW users concerned about maximum possible performance may want to consider the possibility of calling the FFTW library and its memory management/allocation routines directly, bypassing the IT++ storage classes and the fft() interface to FFTW.


Function Documentation

void itpp::fft const cvec in,
cvec out
 

Fast Fourier Transform.

Definition at line 503 of file transforms.cpp.

References it_error.

Referenced by itpp::arma_estimator(), itpp::TDL_Channel::calc_frequency_response(), itpp::fft(), itpp::filter_spectrum(), itpp::freqz(), itpp::spectrum(), and itpp::xcorr().

cvec itpp::fft const cvec in  ) 
 

Fast Fourier Transform.

Definition at line 535 of file transforms.cpp.

References itpp::fft().

cvec itpp::fft const cvec in,
const int  N
 

Fast Fourier Transform, with zero-padding up to size N.

Definition at line 542 of file transforms.cpp.

References itpp::fft(), and itpp::Vec< Num_T >::set_size().

void itpp::ifft const cvec in,
cvec out
 

Inverse Fast Fourier Transform.

Definition at line 508 of file transforms.cpp.

References it_error.

Referenced by itpp::arma_estimator(), itpp::ifft(), and itpp::xcorr().

cvec itpp::ifft const cvec in  ) 
 

Inverse Fast Fourier Transform.

Definition at line 551 of file transforms.cpp.

References itpp::ifft().

cvec itpp::ifft const cvec in,
const int  N
 

Inverse Fast Fourier Transform, with zero-padding up to size N.

Definition at line 558 of file transforms.cpp.

References itpp::ifft(), and itpp::Vec< Num_T >::set_size().

void itpp::fft_real const vec in,
cvec out
 

Real Fast Fourier Transform.

Definition at line 513 of file transforms.cpp.

References it_error.

Referenced by itpp::arma_estimator(), itpp::fft_real(), and itpp::freqz().

cvec itpp::fft_real const vec in  ) 
 

Real Fast Fourier Transform.

Definition at line 567 of file transforms.cpp.

References itpp::fft_real().

cvec itpp::fft_real const vec in,
const int  N
 

Real Fast Fourier Transform, with zero-padding up to size N.

Definition at line 574 of file transforms.cpp.

References itpp::fft_real(), and itpp::Vec< Num_T >::set_size().

void itpp::ifft_real const cvec in,
vec out
 

Inverse Real Fast Fourier Transform. Assumes even size.

Definition at line 518 of file transforms.cpp.

References it_error.

Referenced by itpp::ifft_real().

vec itpp::ifft_real const cvec in  ) 
 

Inverse Real Fast Fourier Transform. Assumes even size.

Definition at line 583 of file transforms.cpp.

References itpp::ifft_real().

vec itpp::ifft_real const cvec in,
const int  N
 

Inverse Real Fast Fourier Transform, with zero-padding up to size N.

Definition at line 590 of file transforms.cpp.

References itpp::ifft_real(), and itpp::Vec< Num_T >::set_size().

SourceForge Logo

Generated on Thu Apr 19 14:20:39 2007 for IT++ by Doxygen 1.4.6