⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 polefilt.cpp

📁 Digital filter designer s handbook C++ code source
💻 CPP
字号:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//  File = polefilt.cpp
//
//  simulation of analog all-pole filter
//

#include <math.h>
#include "polefilt.h"

extern ofstream DebugFile;

//======================================================
//  default constructor
//------------------------------------------------------

//AnalogAllPoleFilt::AnalogAllPoleFilt( )
//{
//};
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
//======================================================
//  constructor that actually initializes filter model
//------------------------------------------------------

AnalogAllPoleFilt::AnalogAllPoleFilt( Polynomial denom_poly,
                                      double h_sub_zero,
                                      double delta_t)
                 : AnalogFilter()
{
 int k, order;
 
 order = denom_poly.GetDegree();
     
 Integrator = new NumericInteg*[order];
 Y_Prime = new double[order+1];
 B_Coef = new double[order];
 
 Order = order;
 H_Sub_Zero = h_sub_zero;
 
 for(k=0; k<order; k++)
   {
    Integrator[k] = new NumericInteg(delta_t);
    B_Coef[k] = -(denom_poly.GetCoefficient(k));
    DebugFile << "in AnalogAllPoleFilt, B_Coef["
              << k << "] = " << B_Coef[k] << endl;
    Y_Prime[k] = 0.0;
   }
 return;
};
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++      


//======================================================
//
//------------------------------------------------------

double AnalogAllPoleFilt::Run( double input )
{
double sum;
int k;

sum = input;
for( k=0; k<Order; k++)
  {
   sum += (Y_Prime[k] * B_Coef[k]);
  }
Y_Prime[Order] = sum;

DebugFile << "in Run, input = " << input
          << "Y_Prime[" << Order << "] = "
          << sum << endl; 

for( k=Order-1; k>=0; k--)
  {
   Y_Prime[k] = ((Integrator[k])->Integrate(Y_Prime[k+1]));
  }    
return(H_Sub_Zero*Y_Prime[0]);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -