1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

DSP: Slightly tidied filter-design function

This commit is contained in:
reuk 2020-12-14 10:29:15 +00:00
parent b2e49bc7e8
commit c540fa4241
No known key found for this signature in database
GPG key ID: 9ADCD339CFC98A11

View file

@ -270,24 +270,19 @@ typename FIR::Coefficients<FloatType>::Ptr
for (int i = 0; i < hh.size(); ++i)
c[i] = (float) hh[i];
double NN;
auto NN = [&]
{
if (n % 2 == 0)
return 2.0 * result->getMagnitudeForFrequency (0.5, 1.0);
if (n % 2 == 0)
{
NN = 2.0 * result->getMagnitudeForFrequency (0.5, 1.0);
}
else
{
auto w01 = std::sqrt (kp * kp + (1 - kp * kp) * std::pow (std::cos (MathConstants<double>::pi / (2.0 * n + 1.0)), 2.0));
if (std::abs (w01) <= 1.0)
{
auto om01 = std::acos (-w01);
NN = -2.0 * result->getMagnitudeForFrequency (om01 / MathConstants<double>::twoPi, 1.0);
}
else
NN = 2.0 * result->getMagnitudeForFrequency (0.5, 1.0);
}
if (std::abs (w01) > 1.0)
return 2.0 * result->getMagnitudeForFrequency (0.5, 1.0);
auto om01 = std::acos (-w01);
return -2.0 * result->getMagnitudeForFrequency (om01 / MathConstants<double>::twoPi, 1.0);
}();
for (int i = 0; i < hh.size(); ++i)
c[i] = static_cast<FloatType> ((A * hn[i] + B * hnm[i]) / NN);