00001 #ifndef _M_FIR_HH_ 00002 #define _M_FIR_HH_ 00003 00050 #include "QModule.hh" 00051 #include "QVector.hh" 00052 #include "QFFTFir.hh" 00053 00054 class MFir : public QModule { 00055 00056 public: 00058 MFir(QSequence* s); 00059 00061 ~MFir(); 00062 00064 void Init(); 00065 00067 QEvent* Do(QEvent* ev); 00068 00070 void Done(); 00071 00072 private: 00073 00075 void SaveCutFreqByChannel(int channel, double cut_freq); 00076 00078 void SaveSampFreqByChannel(int channel, double samp_freq); 00079 00081 inline const std::string& GetFilename() const {return fOutputFile;} 00082 00084 inline const bool IsSaveFilter() const {return fSaveFilter;} 00085 00086 std::string fOutputFile; 00087 std::string fWindowName; 00088 bool fCausal; 00089 bool fSubSampling; 00090 bool fSaveFilter; 00091 size_t fFilterSize; 00092 int fOldRun; 00093 00094 QFFT::WindowType fWindowType; 00095 00096 struct ChannelFilter { 00097 QFFTFir* fFir; 00098 size_t fSubRatio; 00099 }; 00100 00101 std::map<int,ChannelFilter> fChannelFilters; 00102 00103 00104 }; 00105 00106 #endif 00107