00001
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef TDSPFILTER_H
00019 #define TDSPFILTER_H
00020
00021 #include <TDSPRating.h>
00022 #include <TDSPSignal.h>
00023
00028 class TDSPFilter : virtual public TDSPRating {
00029
00030 protected:
00031
00032 Double_t fNorm;
00033 Bool_t fNormalized;
00034
00035 public:
00036
00037 TDSPVector *fFIR;
00038 TDSPVector *fIIR;
00039
00040 Double_t GetNorm() const { return fNorm;};
00041 void SetNorm(Double_t n) { fNorm = n;};
00042 void Normalize();
00043 Bool_t IsNormalized() const { return fNormalized;};
00044
00045 TDSPFilter();
00046 virtual ~TDSPFilter();
00047
00048
00049 TDSPVector* GetFIR() const { return fFIR; };
00050 TDSPVector* GetIIR() const { return fIIR; };
00051
00052 void FIR(TDSPVector *fir) {fFIR = fir;fNormalized=kFALSE;};
00053 void IIR(TDSPVector *iir) {fIIR = iir;};
00054
00055 TDSPVector *filter(TDSPVector *input, TDSPVector *output=NULL) {
00056 return ::filter(input,output,fFIR,fIIR);
00057 }
00058
00059 TDSPVector *filter(TDSPFifo *input, TDSPVector *output=NULL) {
00060 return ::filter(input,output,fFIR,fIIR);
00061 }
00062
00063 TComplex filter(TDSPFifo *input, TDSPFifo *output) {
00064 return ::filter(input,output,fFIR,fIIR);
00065 }
00066
00067 ClassDef(TDSPFilter,1)
00068
00069 };
00070
00071 #endif