annotate Source/.svn/text-base/FFT.h.svn-base @ 15:585caf503ef5 tip

Tidy up for ROLI
author Geogaddi\David <d.m.ronan@qmul.ac.uk>
date Tue, 17 May 2016 18:50:19 +0100
parents 25bf17994ef1
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