d@0: /* d@0: ============================================================================== d@0: d@0: FFT.h d@0: Created: 11 Aug 2014 11:18:53am d@0: Author: mickael.legoff d@0: d@0: ============================================================================== d@0: */ d@0: d@0: #ifndef FFT_H_INCLUDED d@0: #define FFT_H_INCLUDED d@0: d@0: #include "FFTW.h" d@0: d@0: d@0: template < typename FFTImpl > d@0: class FastFourierTransform d@0: { d@0: d@0: public: d@9: FastFourierTransform(){}; d@0: FastFourierTransform( unsigned fftLength ) d@0: : m_fft_impl( fftLength ) d@0: { d@0: d@9: std::vector m_realPart = std::vector(fftLength, 0); d@9: std::vector m_imagPart = std::vector(fftLength, 0); d@0: } d@0: d@0: // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d@0: d@0: ~FastFourierTransform() d@0: { d@0: d@0: } d@0: d@0: // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d@0: d@0: void process( const float* input ) { m_fft_impl.process( input , m_realPart , m_imagPart ); } d@0: d@0: // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d@0: d@9: std::vector realPart() { return m_realPart; } d@9: std::vector imagPart() { return m_imagPart; } d@0: d@0: private: d@0: d@9: std::vector m_realPart; d@9: std::vector m_imagPart; d@0: d@0: FFTImpl m_fft_impl; d@0: d@0: }; d@0: d@0: d@0: typedef FastFourierTransform FFT; d@0: d@0: d@0: #endif // FFT_H_INCLUDED