C++
C#
VB
JScript
All

Fast Fourier Transform


Copyright (C) 2005 IENT-RWTH Aachen

Notation convention

The C Interface for FFT functions uses the following notation convention:

FFT: c|z|s|d [h] [a|n] fft [1|2]

IFFT: c|z|s|d ifft [1|2]

c|z|s|d single precision complex | double precision complex | single precision real | double precision real
[h] halfed output (only possible for real input)
[a|n] abs | norm (presently only possible for vectorial input)
[1|2] matrices rows | matrices

Examples

{
  int n=8;
  DenseVector<float>::self X(n,1);
  DenseVector<complex<float> >::self Y(n);
  //sfft(X.size(),&X[0],(float *)&Y[0]); // slower than shfft
  shfft(X.size(),Y.size(),&X[0],(float *)&Y[0]);   
  sifft(X.size(),(float *)&Y[0],&X[0]);
  cout << X << endl;
}

{
  int n=8;
  DenseVector<complex<double> >::self X(n,1), Y(n);
  zfft (X.size(),(double *)&X[0],(double *)&Y[0]);
  zifft(X.size(),(double *)&Y[0],(double *)&X[0]);
  cout << X << endl;
}

{
  int m=8,n=8;
  DenseMatrix<float>::self X(m,n,1);      
  DenseMatrix<complex<double> >::self Y(m,n);
  //sfft2 (X.nrows(),X.ncols(),&X(0,0),(float *)&Y(0,0)); // slower than shfft2
  shfft2(X.nrows(),X.ncols(),Y.nrows(),&X(0,0),(float *)&Y(0,0));
  sifft2(X.nrows(),X.ncols(),Y.nrows(),(float *)&Y(0,0),&X(0,0));
  cout << X << endl;
}

{
  int m=8,n=8;
  DenseMatrix<complex<double> >::self X(m,n,1), Y(m,n);
  zfft2 (X.nrows(),X.ncols(),(double *)&X(0,0),(double *)&Y(0,0));
  zifft2(X.nrows(),X.ncols(),(double *)&Y(0,0),(double *)&X(0,0));
  cout << X << endl;
}
External Function cafft  
External Function cfft  
External Function cfft1  
External Function cfft2  
External Function cifft  
External Function cifft1  
External Function cifft2  
External Function cnfft  
External Function dafft  
External Function dfft  
External Function dfft1  
External Function dfft2  
External Function dhafft  
External Function dhfft  
External Function dhfft1  
External Function dhfft2  
External Function dhnfft  
External Function difft  
External Function difft1  
External Function difft2  
External Function dnfft  
External Function safft  
External Function sfft  
External Function sfft1  
External Function sfft2  
External Function shafft  
External Function shfft  
External Function shfft1  
External Function shfft2  
External Function shnfft  
External Function sifft  
External Function sifft1  
External Function sifft2  
External Function snfft  
External Function zafft  
External Function zfft  
External Function zfft1  
External Function zfft2  
External Function zifft  
External Function zifft1  
External Function zifft2  
External Function znfft  

See Also

Signal Processing