Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef FK_H
00028 #define FK_H
00029
00030 #include <QGpCoreTools.h>
00031 #include "FrequencyBand.h"
00032 #include "ArrayCoreDLLExport.h"
00033
00034 namespace ArrayCore {
00035
00036 class FKStationSignals;
00037
00038 class ARRAYCORE_EXPORT FK : public AbstractFunction2
00039 {
00040 public:
00041 FK(QList<FKStationSignals *> array);
00042 ~FK() {delete [] _gaussian;}
00043
00044 void setMaximumSlowness(double slow) {_squaredSlowMax=slow*slow;}
00045 double maximumSlowness() const {return sqrt(_squaredSlowMax);}
00046
00047 void setMaximumWavenumber(double k) {_squaredKmaxGrid=k*k;}
00048 void setFrequencyBand(const FrequencyBand& f, double windowLength);
00049
00050 virtual void initGrid(int n);
00051 virtual void initGrid(double kx, double ky, int index);
00052 virtual double value(double kx, double ky) const;
00053 virtual double value(double kx, double ky, int index) const;
00054 double absolutePower(int iComp) const;
00055 protected:
00056 double maximumK2() const {return _squaredKmaxTotal;}
00057
00058 QList<FKStationSignals *> _array;
00059
00060 int _iFreqMin, _iFreqMax;
00061
00062 double _frequency;
00063 double * _gaussian, * _gaussianPtr;
00064 private:
00065
00066 double _squaredKmaxGrid;
00067
00068 double _squaredSlowMax;
00069
00070 double _squaredKmaxTotal;
00071 };
00072
00073 }
00074
00075 #endif // FK_H