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

3G开发

开发平台:

Visual C++

  1. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2. //
  3. //  File = filtfunc.h
  4. //
  5. //
  6. #ifndef _FILTFUNC_H_
  7. #define _FILTFUNC_H_
  8. //#include <fstream>
  9. #include "poly_T.h"
  10. //#include "typedefs.h"
  11. class FilterTransFunc
  12.  public: 
  13.    
  14.    FilterTransFunc( void );
  15.    
  16.    FilterTransFunc( int order);
  17.    
  18.    void FilterFrequencyResponse(void);
  19.    std::complex<double>* GetPrototypePoles( int *num_poles );   
  20.    
  21.    std::complex<double>* GetPoles( int *num_poles ); 
  22.    
  23.    std::complex<double> GetPole(int pole_indx);  
  24.    
  25.    std::complex<double>* GetPrototypeZeros( int *num_zeros );
  26.    
  27.    std::complex<double>* GetZeros( int *num_zeros );
  28.    std::complex<double> GetZero(int zero_indx);  
  29.    
  30.    void LowpassDenorm(double cutoff_freq_hz);
  31.    
  32.    int GetNumPoles(void);
  33.    
  34.    int GetNumZeros(void);              
  35.    
  36.    float GetHSubZero( void );
  37.    
  38.    void DumpBiquads( ofstream* output_stream);
  39.    Polynomial GetDenomPoly( void );
  40.  
  41.    Polynomial GetNumerPoly( void );
  42.    void FrequencyPrewarp( double sampling_interval );
  43.  
  44.  protected:
  45.  
  46.    int Filter_Order;
  47.    int Num_Denorm_Poles;
  48.    int Num_Denorm_Zeros;
  49.    int Degree_Of_Denom;
  50.    int Degree_Of_Numer;
  51.    int Num_Prototype_Poles;
  52.    int Num_Prototype_Zeros;
  53.    int Num_Biquad_Sects;
  54.    bool Filter_Is_Denormalized;
  55.    //double Denorm_Cutoff_Freq_Hz;
  56.    double Denorm_Cutoff_Freq_Rad;
  57.    double *A_Biquad_Coef;
  58.    double *B_Biquad_Coef;
  59.    double *C_Biquad_Coef;
  60.    double H_Sub_Zero;
  61.    std::complex<double> *Prototype_Pole_Locs;
  62.    std::complex<double> *Prototype_Zero_Locs;
  63.    std::complex<double> *Denorm_Pole_Locs;
  64.    std::complex<double> *Denorm_Zero_Locs;
  65.    Polynomial Denom_Poly;
  66.    Polynomial Numer_Poly;
  67.    ofstream *Response_File;
  68. };
  69. #endif