mffm-fftw (1.7-3) realFFTData.H

Summary

 realFFTData.H |   75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)

    
download this patch

Patch contents

--- mffm-fftw-1.7.orig/realFFTData.H
+++ mffm-fftw-1.7/realFFTData.H
@@ -0,0 +1,75 @@
+/* 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 REALFFTDATA_H_
+#define REALFFTDATA_H_
+
+#include "realFFT.H"
+#include <fftw3.h>
+
+#include <iostream>
+using namespace std;
+
+#ifndef fftw_real
+#define fftw_real double
+#endif
+
+/// class realFFTData controls and manipulates fft data
+class realFFTData {
+  /// Var used to specify if the memory was allocated by the realFFTData class
+  int deleteInOutMemory;
+public:
+  /// Specifies the size of the data array
+  int size;
+  /// Specifies the minimum and maximum power bins as used in the methods findMaxMinPowerBins and compPowerSpec
+  int minPowerBin, maxPowerBin;
+  /// the input, output and power_spectrum arrays
+  fftw_real *in, *out, *power_spectrum; //, *powerDeriv; power deriv. removed for now
+  /// The total power (summed) of the power spectrum as used in the method compPowerSpec
+  double totalPower;
+
+  /// All memory to be allocated internally
+  realFFTData(int sz);
+  /// input and output data arrays are to be allocated by another process
+  realFFTData(int sz, fftw_real*inp, fftw_real*outp);
+  /// Deconstructor
+  ~realFFTData(void);
+
+  /// Limits the maximum to 'lim' and returns the last fft bin with max
+  int limitHalfPowerSpec(double lim); 
+
+  /// Returns the number of elements in the input and output arrays
+  int getSize(void){return size;}
+  /// Returns the number of elements in the power spectrum array
+  int getHalfSize(void){ if (!(size%2)) return size/2; else return size/2+1;}
+
+  /// Returns the maximum input variable
+  fftw_real findMaxIn(void);
+  /// Fills the max and min power spectrum bins
+  void findMaxMinPowerBins(void);
+
+  /// This function computes the power spectrum and returns the max bin
+  int compPowerSpec();
+  /// This function computes the square root of the power spectrum and returns the max bin
+  int sqrtPowerSpec();
+
+  //  int powerSpecDeriv(); // Find the derivative of the power spectrum
+
+  /// This function zeros the output data array (out)
+  void zeroFFTData(void);
+};
+#endif // REALFFTDATA_H_