realFFT.H
/* Copyright 2001,2002 Matt Flax <flatmax@ieee.org>
This file is part of the MFFM FFTw Wrapper library.
MFFM MFFM FFTw Wrapper library is free software; you can
redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
MFFM FFTw Wrapper library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You have received a copy of the GNU General Public License
along with the MFFM FFTw Wrapper library
*/
#ifndef REALFFT_H_
#define REALFFT_H_
#include "realFFTData.H"
#include <fftw3.h>
#include <iostream>
using namespace std;
class realFFTData;
#define PLANTYPE FFTW_ESTIMATE
///class realFFT controls fftw plans and executes fwd/inv transforms
class realFFT {
/// The fwd/inv plans
fftw_plan fwdPlan, invPlan;
/// Method to create the plans
void createPlan(void);
/// Method to destroy the plans
void destroyPlan(void);
protected:
/// The pointer to the relevant data
realFFTData *data;
public:
/// fft init ... don't forget to associate data using switchData
realFFT(void);
/// fft init ... data pointed to by 'd'
realFFT(realFFTData *d);
/// fft deconstructor
~realFFT(void);
/// Use this to change associated fft data (for fft'ing)
void switchData(realFFTData *d);
/// Forward transform the data (in to out)
void fwdTransform(); // Forward fft
/// Inverse transform the data (out to in)
void invTransform(); // Inverse fft
};
/** \example realFFTExample.cc
* This is an example of how to use the class.
* It transforms a sine tone stored in the .dat file and saves the
* in, out, and power_spectrum results of using the class
*/
#endif // REALFFT_H_
realFFTData
class realFFTData controls and manipulates fft data
Definition realFFTData.H:32
realFFT
class realFFT controls fftw plans and executes fwd/inv transforms
Definition realFFT.H:32
realFFT::invTransform
void invTransform()
Inverse transform the data (out to in)
realFFT::realFFT
realFFT(void)
fft init ... don't forget to associate data using switchData
realFFT::data
realFFTData * data
The pointer to the relevant data.
Definition realFFT.H:42
realFFT::realFFT
realFFT(realFFTData *d)
fft init ... data pointed to by 'd'
realFFT::fwdTransform
void fwdTransform()
Forward transform the data (in to out)
realFFT::~realFFT
~realFFT(void)
fft deconstructor
realFFT::switchData
void switchData(realFFTData *d)
Use this to change associated fft data (for fft'ing)