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
Definition: Biquad.h:52
Definition: Cascade.h:114
void setup(const double(&sosCoefficients)[MaxStages][6])
Definition: Cascade.h:136
Definition: Biquad.cpp:40
Definition: Custom.h:62
Definition: Custom.h:91
SOSCascade(const double(&sosCoefficients)[NSOS][6])
Definition: Custom.h:107
void setup(const double(&sosCoefficients)[NSOS][6])
Definition: Custom.h:120
Definition: Custom.h:76