iir1

Custom.h
1
36 #ifndef IIR1_CUSTOM_H
37 #define IIR1_CUSTOM_H
38
39 #include "Common.h"
40 #include "Biquad.h"
41 #include "Cascade.h"
42 #include "PoleFilter.h"
43 #include "State.h"
44
45
46 namespace Iir {
47
53 namespace Custom {
54
61 struct OnePole : public Biquad
62 {
63 void setup (double scale,
64 double pole,
65 double zero);
66 };
67
75 struct TwoPole : public Biquad
76 {
77 void setup (double scale,
78 double poleRho,
79 double poleTheta,
80 double zeroRho,
81 double zeroTheta);
82 };
83
89 template <int NSOS, class StateType = DEFAULT_STATE>
90 struct SOSCascade : CascadeStages<NSOS,StateType>
91 {
96 SOSCascade() = default;
107 SOSCascade(const double (&sosCoefficients)[NSOS][6]) {
108 CascadeStages<NSOS,StateType>::setup(sosCoefficients);
109 }
120 void setup (const double (&sosCoefficients)[NSOS][6]) {
121 CascadeStages<NSOS,StateType>::setup(sosCoefficients);
122 }
123 };
124
125 }
126
127 }
128
129 #endif
Iir::Biquad
Definition: Biquad.h:52
Iir::CascadeStages
Definition: Cascade.h:114
Iir::CascadeStages::setup
void setup(const double(&sosCoefficients)[MaxStages][6])
Definition: Cascade.h:136
Iir
Definition: Biquad.cpp:40
Iir::Custom::OnePole
Definition: Custom.h:62
Iir::Custom::SOSCascade
Definition: Custom.h:91
Iir::Custom::SOSCascade::SOSCascade
SOSCascade()=default
Iir::Custom::SOSCascade::SOSCascade
SOSCascade(const double(&sosCoefficients)[NSOS][6])
Definition: Custom.h:107
Iir::Custom::SOSCascade::setup
void setup(const double(&sosCoefficients)[NSOS][6])
Definition: Custom.h:120
Iir::Custom::TwoPole
Definition: Custom.h:76