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@0: static void process(unsigned int p_nSamples, bool p_bInverseTransform, cannam@0: double *p_lpRealIn, double *p_lpImagIn, cannam@0: double *p_lpRealOut, double *p_lpImagOut); cannam@0: FFT(); cannam@0: virtual ~FFT(); cannam@0: cannam@0: protected: cannam@0: static unsigned int reverseBits(unsigned int p_nIndex, unsigned int p_nBits); cannam@0: static unsigned int numberOfBitsNeeded( unsigned int p_nSamples ); cannam@0: static bool isPowerOfTwo( unsigned int p_nX ); cannam@0: }; cannam@0: cannam@0: #endif