Joel Matthyscreated Mesh2D instrumentf4a391d12 years agoHistory
61 lines · 1.4 KB · C++
RawDownload
/***************************************************//*! \class OnePole    \brief STK one-pole filter class.     This class implements a one-pole digital filter.  A method is    provided for setting the pole position along the real axis of the    z-plane while maintaining a constant peak filter gain.     by Perry R. Cook and Gary P. Scavone, 1995-2012.*//***************************************************/ #include "OnePole.h" namespace stk { OnePole :: OnePole( StkFloat thePole ){  b_.resize( 1 );  a_.resize( 2 );  a_[0] = 1.0;  inputs_.resize( 1, 1, 0.0 );  outputs_.resize( 2, 1, 0.0 );   this->setPole( thePole );} OnePole :: ~OnePole()    {} void OnePole :: setPole( StkFloat thePole ){  if ( std::abs( thePole ) >= 1.0 ) {    oStream_ << "OnePole::setPole: argument (" << thePole << ") should be less than 1.0!";    handleError( StkError::WARNING ); return;  }   // Normalize coefficients for peak unity gain.  if ( thePole > 0.0 )    b_[0] = (StkFloat) (1.0 - thePole);  else    b_[0] = (StkFloat) (1.0 + thePole);   a_[1] = -thePole;} void OnePole :: setCoefficients( StkFloat b0, StkFloat a1, bool clearState ){  if ( std::abs( a1 ) >= 1.0 ) {    oStream_ << "OnePole::setCoefficients: a1 argument (" << a1 << ") should be less than 1.0!";    handleError( StkError::WARNING ); return;  }   b_[0] = b0;  a_[1] = a1;   if ( clearState ) this->clear();} } // stk namespace

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t