40 lines · 726 B · C++
RawDownload
#include "VAOnePoleFilterEx.h"
#include <math.h>

#define  pi 3.1415926535897932384626433832795

CVAOnePoleFilterEx::CVAOnePoleFilterEx(void)
{
	m_dAlpha = 1.0;		
	m_dBeta = -1.0;		
	m_dGamma = 1.0;
	m_dDelta = 0.0;
	m_dEpsilon = 1.0;
	m_dFeedback = 0.0;
	m_da0 = 1.0;

	reset();
}

CVAOnePoleFilterEx::~CVAOnePoleFilterEx(void)
{
}

double CVAOnePoleFilterEx::getFeedbackOutput()
{
	return m_dBeta*(m_dZ1 + m_dFeedback*m_dDelta);
}

// do the filter
double CVAOnePoleFilterEx::doFilter(double xn)
{
	double x_in = (xn*m_dGamma + m_dFeedback + m_dEpsilon*getFeedbackOutput());
	
	double vn = (m_da0*x_in - m_dZ1)*m_dAlpha;
	double out = vn + m_dZ1;
	m_dZ1 = vn + out;

	return out;
}


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