00001
00002
00003
00004
00005 #ifndef _GAPE_POWERSPECTRUM_H
00006 #define _GAPE_POWERSPECTRUM_H
00007
00008 #include "gapeunit.h"
00009 #include "rfftw.h"
00016 class GapePowerSpectrum : public GapeUnit
00017 {
00018 Q_OBJECT
00019 public:
00024 GapePowerSpectrum(int fftLength);
00025 virtual ~GapePowerSpectrum();
00026
00027 public slots:
00028
00029 virtual void receiveTick(const GapeFloat* values, int numValues);
00030
00031 void takeLog(bool b) { d_takeLog = b; }
00032
00033 private:
00034 void initializeRFFTW(int fftLength);
00035
00036
00037 int d_nfft;
00038 fftw_real* d_in;
00039 fftw_real* d_out;
00040 fftw_real* d_powerSpect;
00041 rfftw_plan d_plan;
00042 bool d_planIsInitialized;
00043 bool d_takeLog;
00044 };
00045
00046
00047 #endif // _GAPE_POWERSPECTRUM