Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
iir_design.hpp File Reference

High-order analog-prototype IIR design (Chebyshev Type I, Chebyshev Type II, Elliptic / Cauer) producing biquad cascades (SOS) via the bilinear transform. More...

#include <pulp/signal/filter_design.hpp>
#include <pulp/signal/frequency_response.hpp>
#include <pulp/signal/special_functions.hpp>
#include <cmath>
#include <complex>
#include <span>
#include <vector>
#include <algorithm>

Go to the source code of this file.

Classes

struct  pulp::signal::IirDesign
 Chebyshev / Elliptic IIR design utilities. More...

Namespaces

namespace  pulp
namespace  pulp::signal

Functions

bool pulp::signal::cascade_is_stable (std::span< const FilterDesign::Coefficients > sos)
 Returns true if every biquad section's poles lie strictly inside the unit circle (i.e.

Detailed Description

High-order analog-prototype IIR design (Chebyshev Type I, Chebyshev Type II, Elliptic / Cauer) producing biquad cascades (SOS) via the bilinear transform.

Design math runs in double for numerical headroom and emits float coefficients compatible with FilterDesign::Coefficients so the existing biquad infrastructure consumes the output unchanged.

References:

  • A. Antoniou, "Digital Signal Processing: Signals, Systems, and Filters", McGraw-Hill, 2005 — analog prototypes and bilinear.
  • L. R. Rabiner & B. Gold, "Theory and Application of Digital Signal Processing", Prentice-Hall, 1975.
  • Audio EQ Cookbook (Robert Bristow-Johnson) — biquad form.
  • S. J. Orfanidis, "Lecture Notes on Elliptic Filter Design" (2006) — analog elliptic prototype via Jacobi sn / cd.
  • W. Cody, "Chebyshev approximations for the complete elliptic integrals K and E" (1965) — AGM for K(m).