RTXI 1.3
plugins/include/DSP/remezalg.h
Go to the documentation of this file.
00001 //
00002 // File = remezalg.h
00003 //
00004 #ifndef _REMEZALG_H_
00005 #define _REMEZALG_H_ 
00006 
00007 #include "fir_dsgn.h" 
00008 
00009 class RemezAlgorithm
00010 {
00011 public: 
00012 
00013   //  constructor
00014   RemezAlgorithm( std::istream& uin,
00015                   std::ostream& uout,
00016                   int filter_length,
00017                   double passband_edge_freq,
00018                   double stopband_edge_freq,
00019                   double ripple_ratio,
00020                   FirFilterDesign **fir_filter);
00021 void SetupGrid( void );
00022 
00023 double GetFrequency( int grid_index); 
00024 
00025 void RemezError( void); 
00026 
00027 void RemezSearch(void);
00028 
00029 int RemezStop(void);
00030 
00031 int RemezStop2(void); 
00032 
00033 double ComputeRemezAmplitudeResponse( int init_flag,
00034                                       double contin_freq); 
00035 void RemezFinish(double *filter_coeffs);
00036 
00037 
00038 private:
00039 
00040  int Num_PB_Freqs;
00041  int Num_SB_Freqs;
00042  int Num_Grid_Pts_PB;
00043  int Num_Grid_pts_SB;
00044  int Filter_Length;
00045  double PB_Increment;
00046  double SB_Increment;
00047  int Grid_Density;
00048  int Num_Approx_Funcs;
00049  double PB_Edge_Freq;
00050  double SB_Edge_Freq;
00051  int* Ext_Freq;
00052  int* Old_Ext_Freq;
00053  double* Error;
00054  int Max_Grid_Indx;
00055  double WeightFunction(double freq);
00056  double DesiredResponse(double freq);
00057  double Abs_Delta; 
00058  double Ripple_Ratio;
00059  double *X_;
00060  double *Beta_;
00061  double *Gamma_;
00062  
00063 }; 
00064 #endif 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines