qm-dsp  1.8
FFT.h
Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
00002 
00003 /*
00004     QM DSP Library
00005 
00006     Centre for Digital Music, Queen Mary, University of London.
00007 */
00008 
00009 #ifndef FFT_H
00010 #define FFT_H
00011 
00012 class FFT  
00013 {
00014 public:
00020     FFT(int nsamples);
00021     ~FFT();
00022 
00037     void process(bool inverse,
00038                  const double *realIn, const double *imagIn,
00039                  double *realOut, double *imagOut);
00040     
00041 private:
00042     class D;
00043     D *m_d;
00044 };
00045 
00046 class FFTReal
00047 {
00048 public:
00056     FFTReal(int nsamples);
00057     ~FFTReal();
00058 
00068     void forward(const double *realIn,
00069                  double *realOut, double *imagOut);
00070 
00081     void forwardMagnitude(const double *realIn, double *magOut);
00082 
00097     void inverse(const double *realIn, const double *imagIn,
00098                  double *realOut);
00099 
00100 private:
00101     class D;
00102     D *m_d;
00103 };    
00104 
00105 #endif