Chebyshev / Elliptic IIR design utilities.
More...
#include <iir_design.hpp>
|
| static std::vector< Coefficients > | chebyshev1_lowpass (int order, float freq_hz, float ripple_db, float sample_rate) |
| | Chebyshev Type I lowpass cascade.
|
| static std::vector< Coefficients > | chebyshev1_highpass (int order, float freq_hz, float ripple_db, float sample_rate) |
| | Chebyshev Type I highpass cascade.
|
| static std::vector< Coefficients > | chebyshev2_lowpass (int order, float stop_freq_hz, float stop_atten_db, float sample_rate) |
| | Chebyshev Type II lowpass cascade.
|
| static std::vector< Coefficients > | chebyshev2_highpass (int order, float stop_freq_hz, float stop_atten_db, float sample_rate) |
| | Chebyshev Type II highpass cascade.
|
| static std::vector< Coefficients > | elliptic_lowpass (int order, float freq_hz, float passband_ripple_db, float stopband_attn_db, float sample_rate) |
| | Elliptic (Cauer) lowpass cascade — equiripple in both bands.
|
| static std::vector< Coefficients > | elliptic_highpass (int order, float freq_hz, float passband_ripple_db, float stopband_attn_db, float sample_rate) |
| | Elliptic highpass cascade.
|
Chebyshev / Elliptic IIR design utilities.
RT contract: these helpers allocate vectors and perform expensive design math. Run them on prepare/control/offline threads, then publish immutable coefficient cascades to audio-thread processors.
static std::vector< Coefficients > chebyshev1_lowpass(int order, float freq_hz, float ripple_db, float sample_rate)
Chebyshev Type I lowpass cascade.
Definition iir_design.hpp:66
static std::vector< Coefficients > elliptic_lowpass(int order, float freq_hz, float passband_ripple_db, float stopband_attn_db, float sample_rate)
Elliptic (Cauer) lowpass cascade — equiripple in both bands.
Definition iir_design.hpp:123
static std::vector< Coefficients > chebyshev2_lowpass(int order, float stop_freq_hz, float stop_atten_db, float sample_rate)
Chebyshev Type II lowpass cascade.
Definition iir_design.hpp:87
◆ Coefficients
◆ chebyshev1_highpass()
| std::vector< Coefficients > pulp::signal::IirDesign::chebyshev1_highpass |
( |
int | order, |
|
|
float | freq_hz, |
|
|
float | ripple_db, |
|
|
float | sample_rate ) |
|
inlinestatic |
Chebyshev Type I highpass cascade.
◆ chebyshev1_lowpass()
| std::vector< Coefficients > pulp::signal::IirDesign::chebyshev1_lowpass |
( |
int | order, |
|
|
float | freq_hz, |
|
|
float | ripple_db, |
|
|
float | sample_rate ) |
|
inlinestatic |
Chebyshev Type I lowpass cascade.
Equiripple in passband, monotonic in stopband.
- Parameters
-
| order | Filter order (>= 2, even). Odd orders are rejected. |
| freq_hz | Passband edge frequency (where ripple ends). |
| ripple_db | Passband ripple in dB (e.g. 0.5, 1.0, 3.0). |
| sample_rate | Sample rate in Hz. |
- Returns
- order/2 biquad sections; empty if order < 2 or invalid input.
◆ chebyshev2_highpass()
| std::vector< Coefficients > pulp::signal::IirDesign::chebyshev2_highpass |
( |
int | order, |
|
|
float | stop_freq_hz, |
|
|
float | stop_atten_db, |
|
|
float | sample_rate ) |
|
inlinestatic |
Chebyshev Type II highpass cascade.
◆ chebyshev2_lowpass()
| std::vector< Coefficients > pulp::signal::IirDesign::chebyshev2_lowpass |
( |
int | order, |
|
|
float | stop_freq_hz, |
|
|
float | stop_atten_db, |
|
|
float | sample_rate ) |
|
inlinestatic |
Chebyshev Type II lowpass cascade.
Maximally flat in passband, equiripple in stopband.
- Parameters
-
| order | Filter order (>= 2, even). |
| stop_freq_hz | Stopband edge frequency (where attenuation reaches stop_atten_db). |
| stop_atten_db | Stopband attenuation in dB (positive, e.g. 40). |
| sample_rate | Sample rate in Hz. |
◆ elliptic_highpass()
| std::vector< Coefficients > pulp::signal::IirDesign::elliptic_highpass |
( |
int | order, |
|
|
float | freq_hz, |
|
|
float | passband_ripple_db, |
|
|
float | stopband_attn_db, |
|
|
float | sample_rate ) |
|
inlinestatic |
Elliptic highpass cascade.
◆ elliptic_lowpass()
| std::vector< Coefficients > pulp::signal::IirDesign::elliptic_lowpass |
( |
int | order, |
|
|
float | freq_hz, |
|
|
float | passband_ripple_db, |
|
|
float | stopband_attn_db, |
|
|
float | sample_rate ) |
|
inlinestatic |
Elliptic (Cauer) lowpass cascade — equiripple in both bands.
- Parameters
-
| order | Filter order (>= 2, even). Odd orders rejected. |
| freq_hz | Passband edge (where ripple ends). |
| passband_ripple_db | Passband ripple in dB (positive, e.g. 0.5). |
| stopband_attn_db | Minimum stopband attenuation in dB (positive, e.g. 60). |
| sample_rate | Sample rate in Hz. |
- Returns
- order/2 biquad sections; empty if inputs invalid.
The documentation for this struct was generated from the following file:
- /home/runner/work/pulp/pulp/core/signal/include/pulp/signal/iir_design.hpp