Mercurial > hg > batch-feature-extraction-tool
view Source/FFT.h @ 3:005e311b5e62
Fixed memory leak. :) Need to fix Debug FFTW now though.
author | Geogaddi\David <d.m.ronan@qmul.ac.uk> |
---|---|
date | Fri, 10 Jul 2015 00:33:15 +0100 |
parents | 25bf17994ef1 |
children | 262e084a15a9 |
line wrap: on
line source
/* ============================================================================== FFT.h Created: 11 Aug 2014 11:18:53am Author: mickael.legoff ============================================================================== */ #ifndef FFT_H_INCLUDED #define FFT_H_INCLUDED #include "FFTW.h" template < typename FFTImpl > class FastFourierTransform { public: FastFourierTransform(); FastFourierTransform( unsigned fftLength ) : m_fft_impl( fftLength ) { m_realPart = new float[fftLength]; m_imagPart = new float[fftLength]; memset(m_realPart, 0, (fftLength)*sizeof(float)); memset(m_imagPart, 0, (fftLength)*sizeof(float)); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ~FastFourierTransform() { if(m_realPart != NULL) { delete[] m_realPart; m_realPart = nullptr; } if(m_imagPart != NULL) { delete[] m_imagPart; m_imagPart = nullptr; } } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void process( const float* input ) { m_fft_impl.process( input , m_realPart , m_imagPart ); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - const float * realPart() { return m_realPart; } const float * imagPart() { return m_imagPart; } private: float* m_realPart; float* m_imagPart; FFTImpl m_fft_impl; }; typedef FastFourierTransform<FFTW> FFT; #endif // FFT_H_INCLUDED