cannam@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ cannam@0: cannam@0: /* cannam@0: QM DSP Library cannam@0: cannam@0: Centre for Digital Music, Queen Mary, University of London. cannam@0: This file is based on Don Cross's public domain FFT implementation. cannam@0: */ cannam@0: cannam@0: #ifndef FFT_H cannam@0: #define FFT_H cannam@0: cannam@0: class FFT cannam@0: { cannam@0: public: cannam@30: static void process(unsigned int nSamples, bool bInverseTransform, cannam@30: const double *lpRealIn, const double *lpImagIn, cannam@30: double *lpRealOut, double *lpImagOut); cannam@0: FFT(); cannam@0: virtual ~FFT(); cannam@0: cannam@0: protected: cannam@30: static unsigned int reverseBits(unsigned int nIndex, unsigned int nBits); cannam@30: static unsigned int numberOfBitsNeeded( unsigned int nSamples ); cannam@30: static bool isPowerOfTwo( unsigned int nX ); cannam@0: }; cannam@0: cannam@0: #endif