00001 #pragma ident "$Id$"
00002
00008 #ifndef GPSTK_FIRDIFFERENTIATOR5THORDER_HPP
00009 #define GPSTK_FIRDIFFERENTIATOR5THORDER_HPP
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include <cmath>
00036 #include <deque>
00037
00038
00039 #include "FilterBase.hpp"
00040
00041
00042
00043 namespace gpstk
00044 {
00045
00047
00048
00050
00051
00100 class FIRDifferentiator5thOrder : public FilterBase
00101 {
00102 public:
00103
00104
00106 FIRDifferentiator5thOrder()
00107 : T(1.0)
00108 { Init(); };
00109
00110
00115 FIRDifferentiator5thOrder( double period )
00116 { setT(period); Init(); };
00117
00118
00123 virtual double Compute( double input );
00124
00125
00127 virtual void Reset(void);
00128
00129
00131 virtual double getT( void ) const
00132 { return T; };
00133
00134
00144 virtual FIRDifferentiator5thOrder& setT( double period );
00145
00146
00148 virtual ~FIRDifferentiator5thOrder() {};
00149
00150
00151 private:
00152
00153
00155 double T;
00156
00157
00159 std::deque<double> X;
00160
00161
00163 double k1;
00164 double k2;
00165 double k3;
00166 double k4;
00167 double k5;
00168
00170 void Init( void );
00171
00172
00173 };
00174
00175
00177
00178 }
00179
00180 #endif // GPSTK_FIRDIFFERENTIATOR5THORDER_HPP