fix: calculate normals without struct
This commit is contained in:
@@ -13,11 +13,11 @@ BandPassFilter::BandPassFilter(float freq, float res, float q) {}
|
||||
BandPassFilter::~BandPassFilter() {}
|
||||
|
||||
void BandPassFilter::calculate_coefficients() {
|
||||
Filter::Normals base = calculate_normals();
|
||||
m_norm = 1 / (1 + base.K / m_q + base.K * base.K);
|
||||
m_a0 = base.K / m_q * m_norm;
|
||||
calculate_normals();
|
||||
m_norm = 1 / (1 + m_k / m_q + m_k * m_k);
|
||||
m_a0 = m_k / m_q * m_norm;
|
||||
m_a1 = 0;
|
||||
m_a2 = -m_a0;
|
||||
m_b1 = 2 * (base.K * base.K - 1) * m_norm;
|
||||
m_b2 = (1 - base.K / m_q + base.K * base.K) * m_norm;
|
||||
m_b1 = 2 * (m_k * m_k - 1) * m_norm;
|
||||
m_b2 = (1 - m_k / m_q + m_k * m_k) * m_norm;
|
||||
}
|
||||
@@ -5,12 +5,9 @@ Filter::Filter(/* args */) {}
|
||||
|
||||
Filter::~Filter() {}
|
||||
|
||||
Filter::Normals Filter::calculate_normals() {
|
||||
Filter::Normals res;
|
||||
res.V = powf(10, fabs(m_order) / 20.0);
|
||||
res.K = tanf(M_PI * m_freq);
|
||||
|
||||
return res;
|
||||
void Filter::calculate_normals() {
|
||||
m_v = powf(10, fabs(m_order) / 20.0);
|
||||
m_k = tanf(M_PI * m_freq);
|
||||
}
|
||||
|
||||
void Filter::Trigger() {}
|
||||
|
||||
@@ -13,11 +13,11 @@ HighPassFilter::HighPassFilter(float freq, float res, float q) {}
|
||||
HighPassFilter::~HighPassFilter() {}
|
||||
|
||||
void HighPassFilter::calculate_coefficients() {
|
||||
Filter::Normals base = calculate_normals();
|
||||
m_norm = 1 / (1 + base.K / m_q + base.K * base.K);
|
||||
calculate_normals();
|
||||
m_norm = 1 / (1 + m_k / m_q + m_k * m_k);
|
||||
m_a0 = 1 * m_norm;
|
||||
m_a1 = -2 * m_a0;
|
||||
m_a2 = m_a0;
|
||||
m_b1 = 2 * (base.K * base.K - 1) * m_norm;
|
||||
m_b2 = (1 - base.K / m_q + base.K * base.K) * m_norm;
|
||||
m_b1 = 2 * (m_k * m_k - 1) * m_norm;
|
||||
m_b2 = (1 - m_k / m_q + m_k * m_k) * m_norm;
|
||||
}
|
||||
@@ -23,11 +23,11 @@ LowPassFilter::LowPassFilter(Filter* filter) {
|
||||
LowPassFilter::~LowPassFilter() {}
|
||||
|
||||
void LowPassFilter::calculate_coefficients() {
|
||||
Filter::Normals base = calculate_normals();
|
||||
m_norm = 1 / (1 + base.K / m_q + base.K * base.K);
|
||||
m_a0 = base.K * base.K * m_norm;
|
||||
calculate_normals();
|
||||
m_norm = 1 / (1 + m_k / m_q + m_k * m_k);
|
||||
m_a0 = m_k * m_k * m_norm;
|
||||
m_a1 = 2 * m_a0;
|
||||
m_a2 = m_a0;
|
||||
m_b1 = 2 * (base.K * base.K - 1) * m_norm;
|
||||
m_b2 = (1 - base.K / m_q + base.K * base.K) * m_norm;
|
||||
m_b1 = 2 * (m_k * m_k - 1) * m_norm;
|
||||
m_b2 = (1 - m_k / m_q + m_k * m_k) * m_norm;
|
||||
}
|
||||
Reference in New Issue
Block a user