libgenua
Basic Geometry, Numerical Algorithms and Interfaces
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
FftBase Class Referenceabstract

Detailed Description

Base class for FFT library interfaces.

The purpose of this class is to hide an underlying FFT implementation behind a common interface.

TODO: Switch primitive Laplace transform implementation to Talbot's method or Wiedeman's.

See Also
Fftw3Transform, DftiTransform

#include <fftbase.h>

Inheritance diagram for FftBase:
[legend]
Collaboration diagram for FftBase:
[legend]

Public Member Functions

 FftBase ()
 initialize
 
virtual ~FftBase ()
 virtual destructor
 
virtual void plan (size_t n, bool forward=true, int flags=0)=0
 create a plan for size n and with library-dependent flags
 
size_t length () const
 length for which the transform was planned
 
virtual void execute (const Complex in[], Complex out[])=0
 perform FFT on in, write to out
 
virtual Real directLaplace (Real dt, Complex ft[], Complex Fs[])
 numerical Laplace transform build using forward fft (unreliable)
 
virtual Real inverseLaplace (Real dt, Complex Fs[], Complex ft[])
 inverse numerical Laplace transform (unreliable)
 
void computeWindow (WindowFunction wf, Real w[]) const
 determine window function coefficients
 
void windowScaling (const Real w[], Real &S1, Real &S2) const
 compute scaling factors S1, S2 for a windowing function
 
Real periodogram (Real fs, const Complex in[], Real psd[], WindowFunction wf=Boxcar, Scaling scl=PowerDensity)
 compute a periodogram, return frequency resolution
 

Static Public Member Functions

static FftBasePtr create ()
 instantiate the best available FFT implementation
 

Protected Member Functions

Real damping (Real dt) const
 compute damping constant for numerical Laplace transform
 

Protected Attributes

size_t m_size
 number of elements in 'm_in', out; passed to plan()
 
DVector< Complex > m_psdwork
 work array for periodogram
 
DVector< Real > m_psdwindow
 window function used by periodogram
 
WindowFunction m_wfun
 window function stored
 

The documentation for this class was generated from the following files: