filter_proto.h
上传用户:jtjnyq9001
上传日期:2014-11-21
资源大小:3974k
文件大小:1k
源码类别:

3G开发

开发平台:

Visual C++

  1. //
  2. //  File = filter_proto.h
  3. //
  4. #ifndef _FILTER_PROTO_H_
  5. #define _FILTER_PROTO_H_
  6. #include "realpoly.h"
  7. class AnalogFilterPrototype
  8. {
  9. public:
  10.    AnalogFilterPrototype( void );
  11.    AnalogFilterPrototype( int order );
  12.    virtual ~AnalogFilterPrototype();
  13.    std::complex<double> *GetZeros();
  14.    std::complex<double> *GetPoles();
  15.    int GetOrder();
  16.    int GetNumZeros();
  17.    int GetNumPoles();
  18.    double GetHZero();
  19.    int Get_Biquads(  double **coef_a2,
  20.                  double **coef_a1,
  21.                  double **coef_a0,
  22.                  double **coef_b1,
  23.                  double **coef_b0 );
  24.    void DumpBiquads( ofstream* output_stream);
  25.    RealPolynomial GetDenomPoly( bool binomial_use_enab );
  26.    RealPolynomial GetNumerPoly( bool binomial_use_enab );
  27.    void FilterFrequencyResponse(void);
  28. protected:
  29.    int Filt_Order;
  30.    int Num_Poles;
  31.    int Num_Zeros;
  32.    std::complex<double> *Pole_Locs;
  33.    std::complex<double> *Zero_Locs;
  34.    double H_Zero;
  35.    int Degree_Of_Denom;
  36.    int Degree_Of_Numer;
  37.    int Num_Biquad_Sects;
  38.    double *A0_Coef;
  39.    double *A1_Coef;
  40.    double *A2_Coef;
  41.    double *B0_Coef;
  42.    double *B1_Coef;
  43.    double Real_Pole;
  44.    RealPolynomial Denom_Poly;
  45.    RealPolynomial Numer_Poly;
  46. };
  47. #endif