Mercurial > hg > batch-feature-extraction-tool
annotate Source/.svn/text-base/FFT.h.svn-base @ 0:25bf17994ef1
First commit. VS2013, Codeblocks and Mac OSX configuration
author | Geogaddi\David <d.m.ronan@qmul.ac.uk> |
---|---|
date | Thu, 09 Jul 2015 01:12:16 +0100 |
parents | |
children |
rev | line source |
---|---|
d@0 | 1 /* |
d@0 | 2 ============================================================================== |
d@0 | 3 |
d@0 | 4 FFT.h |
d@0 | 5 Created: 11 Aug 2014 11:18:53am |
d@0 | 6 Author: mickael.legoff |
d@0 | 7 |
d@0 | 8 ============================================================================== |
d@0 | 9 */ |
d@0 | 10 |
d@0 | 11 #ifndef FFT_H_INCLUDED |
d@0 | 12 #define FFT_H_INCLUDED |
d@0 | 13 |
d@0 | 14 #include "FFTW.h" |
d@0 | 15 |
d@0 | 16 |
d@0 | 17 template < typename FFTImpl > |
d@0 | 18 class FastFourierTransform |
d@0 | 19 { |
d@0 | 20 |
d@0 | 21 public: |
d@0 | 22 FastFourierTransform(); |
d@0 | 23 FastFourierTransform( unsigned fftLength ) |
d@0 | 24 : m_fft_impl( fftLength ) |
d@0 | 25 { |
d@0 | 26 |
d@0 | 27 m_realPart = new float[fftLength]; |
d@0 | 28 m_imagPart = new float[fftLength]; |
d@0 | 29 |
d@0 | 30 memset(m_realPart, 0, (fftLength)*sizeof(float)); |
d@0 | 31 memset(m_imagPart, 0, (fftLength)*sizeof(float)); |
d@0 | 32 } |
d@0 | 33 |
d@0 | 34 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
d@0 | 35 |
d@0 | 36 ~FastFourierTransform() |
d@0 | 37 { |
d@0 | 38 if(m_realPart != NULL) |
d@0 | 39 { |
d@0 | 40 delete[] m_realPart; |
d@0 | 41 m_realPart = nullptr; |
d@0 | 42 } |
d@0 | 43 |
d@0 | 44 if(m_imagPart != NULL) |
d@0 | 45 { |
d@0 | 46 delete[] m_imagPart; |
d@0 | 47 m_imagPart = nullptr; |
d@0 | 48 } |
d@0 | 49 } |
d@0 | 50 |
d@0 | 51 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
d@0 | 52 |
d@0 | 53 void process( const float* input ) { m_fft_impl.process( input , m_realPart , m_imagPart ); } |
d@0 | 54 |
d@0 | 55 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
d@0 | 56 |
d@0 | 57 const float * realPart() { return m_realPart; } |
d@0 | 58 const float * imagPart() { return m_imagPart; } |
d@0 | 59 |
d@0 | 60 private: |
d@0 | 61 |
d@0 | 62 float* m_realPart; |
d@0 | 63 float* m_imagPart; |
d@0 | 64 |
d@0 | 65 FFTImpl m_fft_impl; |
d@0 | 66 |
d@0 | 67 }; |
d@0 | 68 |
d@0 | 69 |
d@0 | 70 typedef FastFourierTransform<FFTW> FFT; |
d@0 | 71 |
d@0 | 72 |
d@0 | 73 #endif // FFT_H_INCLUDED |