00001
00002
00003 #ifndef _FFT_H_
00004 #define _FFT_H_
00005
00015 class FFT
00016 {
00017 public:
00018 enum Exception { InvalidSize };
00019
00020 FFT(unsigned int size);
00021 ~FFT();
00022
00023 void forward(double *realIn, double *realOut, double *imagOut);
00024 void inverse(double *realIn, double *imagIn, double *realOut);
00025
00026 void tune();
00027
00028 protected:
00029 unsigned int m_size;
00030 int *m_table;
00031 double *m_spare;
00032 void basefft(bool inverse, double *ri, double *ii, double *ro, double *io);
00033 };
00034
00035 #endif