00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef SPECTRALODFPHASE_H
00020 #define SPECTRALODFPHASE_H
00021
00022 #include "Typedefs.h"
00023 #include "Debug.h"
00024
00025 #include "SpectralODFBase.h"
00026 #include "Unwrap.h"
00027
00028 class SpectralODFPhase : public SpectralODFBase {
00029 protected:
00030
00031 int _fftSize;
00032 int _halfSize;
00033 bool _weighted;
00034 bool _normalize;
00035
00036
00037 Unwrap _unwrap;
00038
00039 MatrixXR _unwrappedAngle;
00040 MatrixXR _phaseDiff;
00041 MatrixXR _instFreq;
00042
00043 void phaseDeviation(const MatrixXC& spectrum, const MatrixXR& spectrumArg, MatrixXR* odfValue);
00044
00045 public:
00046 SpectralODFPhase(int fftSize, bool weighted = false, bool normalize = false);
00047
00048 ~SpectralODFPhase();
00049
00050 void setup();
00051
00052 void process(const MatrixXC& fft, MatrixXR* odfValue);
00053
00054 void reset();
00055
00056 };
00057
00058 #endif