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

3G开发

开发平台:

Visual C++

  1. //
  2. //  File = anlg_filt_intg.h
  3. //
  4. #ifndef _ANLG_FILT_INTG_H_
  5. #define _ANLG_FILT_INTG_H_
  6. #include <complex>
  7. #include "signal_T.h"
  8. #include "filter_proto.h"
  9. #include "denorm_proto.h"
  10. #include "numinteg.h"
  11. #include "psmodel.h"
  12. #include "filter_types.h"
  13. class AnalogFilterByInteg : public PracSimModel
  14. {
  15. public:
  16.   // Constructor
  17.   AnalogFilterByInteg( char* instance_name,
  18.               PracSimModel *outer_model,
  19.               Signal<float> *in_sig,
  20.               Signal<float> *out_sig );
  21.   //AnalogFilter( char *instance_name,
  22.   //            int kind_of_interface,
  23.   //            int filter_band_config,
  24.   //            int filter_order,
  25.   //            float upper_passband_edge,
  26.   //            float lower_passband_edge,
  27.   //            bool bypass_enabled);
  28.   ~AnalogFilterByInteg(void);
  29.   virtual void Initialize(void);
  30.   void Initialize(int proc_block_size, double samp_intvl);
  31.   virtual int Execute();
  32. protected:
  33.   void Init_Kernel(void);
  34.   Signal<float> *In_Sig;
  35.   Signal<float> *Out_Sig;
  36.   float Estim_Delay;
  37.   bool Bypass_Enabled;
  38.   double Samp_Rate;
  39.   double Samp_Intvl;
  40.   DenormalizedPrototype *Denorm_Proto_Filt;
  41.   AnalogFilterPrototype *Lowpass_Proto_Filt;
  42.   int Filt_Shape;
  43.   FILT_BAND_CONFIG_T Filt_Band_Config;
  44.   int Filt_Order;
  45.   bool Resp_Plot_Enabled;
  46.   bool Db_Scale_Enabled;
  47.   int Prototype_Order;
  48.   int Upper_Summation_Limit;
  49.   float Upper_Cutoff_NFU;
  50.   float Lower_Cutoff_NFU;
  51.   float Passband_Ripple;
  52.   float Stopband_Ripple;
  53.   float Stopband_Atten;
  54.   float Norm_Hz_Pass_Edge;
  55.   float Norm_Hz_Stop_Edge;
  56.   float Norm_Hz_Pass_Edge_2;
  57.   float Warped_Upper_Passband_Edge;
  58.   float Warped_Lower_Passband_Edge;
  59.   
  60.   float Upper_Stopband_Edge;
  61.   float Lower_Stopband_Edge;
  62.   float Upper_Trans_Width;
  63.   float Lower_Trans_Width;
  64.    NumericInteg** Integrator_0;
  65.    NumericInteg** Integrator_1;
  66.    double *W0_Prime;
  67.    double *W1_Prime;
  68.    double *W2_Prime;
  69.    double *B0_Coef;
  70.    double *B1_Coef;
  71.    double *A0_Coef;
  72.    double *A1_Coef;
  73.    double *A2_Coef;
  74.    bool Using_Biquads;
  75.   double *A_Coefs;
  76.   double *B_Coefs;
  77.   NumericInteg** Integrator;
  78.   double *Y_Prime;
  79.   double H_Zero;
  80.   double Integ_Alpha;
  81.   int Num_Poles;
  82.   int Num_Zeros;
  83.   int Num_Biquads;
  84.   int Cumul_Samp_Count;
  85.   int Proc_Block_Size;
  86.   
  87. };
  88. #endif