40#include "PoleFilter.h"
54class IIR_EXPORT AnalogLowPass :
public LayoutBase
59 void design (
const int numPoles,
64 double m_rippleDb = 0.0;
70class IIR_EXPORT AnalogLowShelf :
public LayoutBase
75 void design (
int numPoles,
81 double m_rippleDb = 0.0;
82 double m_gainDb = 0.0;
89 void setup (
int order,
90 double cutoffFrequency,
96 void setup (
int order,
97 double cutoffFrequency,
103 void setup (
int order,
104 double centerFrequency,
105 double widthFrequency,
111 void setup (
int order,
112 double centerFrequency,
113 double widthFrequency,
119 void setup (
int order,
120 double cutoffFrequency,
127 void setup (
int order,
128 double cutoffFrequency,
135 void setup (
int order,
136 double centerFrequency,
137 double widthFrequency,
153template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
154 struct LowPass : PoleFilter <LowPassBase, StateType, FilterOrder>
163 double cutoffFrequency,
165 LowPassBase::setup (FilterOrder,
166 cutoffFrequency / sampleRate,
179 double cutoffFrequency,
181 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
182 LowPassBase::setup (reqOrder,
183 cutoffFrequency / sampleRate,
196 LowPassBase::setup (FilterOrder,
208 double cutoffFrequency,
210 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
211 LowPassBase::setup (reqOrder,
222template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
223 struct HighPass : PoleFilter <HighPassBase, StateType, FilterOrder>
232 double cutoffFrequency,
234 HighPassBase::setup (FilterOrder,
235 cutoffFrequency / sampleRate,
248 double cutoffFrequency,
250 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
251 HighPassBase::setup (reqOrder,
252 cutoffFrequency / sampleRate,
265 HighPassBase::setup (FilterOrder,
277 double cutoffFrequency,
279 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
280 HighPassBase::setup (reqOrder,
291template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
292 struct BandPass : PoleFilter <BandPassBase, StateType, FilterOrder, FilterOrder*2>
302 double centerFrequency,
303 double widthFrequency,
305 BandPassBase::setup (FilterOrder,
306 centerFrequency / sampleRate,
307 widthFrequency / sampleRate,
321 double centerFrequency,
322 double widthFrequency,
324 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
325 BandPassBase::setup (reqOrder,
326 centerFrequency / sampleRate,
327 widthFrequency / sampleRate,
340 double widthFrequency,
342 BandPassBase::setup (FilterOrder,
356 double centerFrequency,
357 double widthFrequency,
359 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
360 BandPassBase::setup (reqOrder,
372template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
373 struct BandStop : PoleFilter <BandStopBase, StateType, FilterOrder, FilterOrder*2>
383 double centerFrequency,
384 double widthFrequency,
386 BandStopBase::setup (FilterOrder,
387 centerFrequency / sampleRate,
388 widthFrequency / sampleRate,
402 double centerFrequency,
403 double widthFrequency,
405 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
406 BandStopBase::setup (reqOrder,
407 centerFrequency / sampleRate,
408 widthFrequency / sampleRate,
421 double widthFrequency,
423 BandStopBase::setup (FilterOrder,
437 double centerFrequency,
438 double widthFrequency,
440 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
441 BandStopBase::setup (reqOrder,
454template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
455 struct LowShelf : PoleFilter <LowShelfBase, StateType, FilterOrder>
465 double cutoffFrequency,
468 LowShelfBase::setup (FilterOrder,
469 cutoffFrequency / sampleRate,
484 double cutoffFrequency,
487 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
488 LowShelfBase::setup (reqOrder,
489 cutoffFrequency / sampleRate,
505 LowShelfBase::setup (FilterOrder,
519 double cutoffFrequency,
522 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
523 LowShelfBase::setup (reqOrder,
535template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
536 struct HighShelf : PoleFilter <HighShelfBase, StateType, FilterOrder>
546 double cutoffFrequency,
549 HighShelfBase::setup (FilterOrder,
550 cutoffFrequency / sampleRate,
565 double cutoffFrequency,
568 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
569 HighShelfBase::setup (reqOrder,
570 cutoffFrequency / sampleRate,
587 HighShelfBase::setup (FilterOrder,
601 double cutoffFrequency,
604 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
605 HighShelfBase::setup (reqOrder,
618template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
619 struct BandShelf : PoleFilter <BandShelfBase, StateType, FilterOrder, FilterOrder*2>
630 double centerFrequency,
631 double widthFrequency,
634 BandShelfBase::setup (FilterOrder,
635 centerFrequency / sampleRate,
636 widthFrequency / sampleRate,
653 double centerFrequency,
654 double widthFrequency,
657 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
658 BandShelfBase::setup (reqOrder,
659 centerFrequency / sampleRate,
660 widthFrequency / sampleRate,
677 double widthFrequency,
680 BandShelfBase::setup (FilterOrder,
697 double centerFrequency,
698 double widthFrequency,
701 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
702 BandShelfBase::setup (reqOrder,
Definition PoleFilter.h:90
Definition ChebyshevI.cpp:41
Definition ChebyshevI.h:102
Definition ChebyshevI.h:293
void setupN(int reqOrder, double centerFrequency, double widthFrequency, double rippleDb)
Definition ChebyshevI.h:355
void setupN(double centerFrequency, double widthFrequency, double rippleDb)
Definition ChebyshevI.h:339
void setup(double sampleRate, double centerFrequency, double widthFrequency, double rippleDb)
Definition ChebyshevI.h:301
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency, double rippleDb)
Definition ChebyshevI.h:319
Definition ChebyshevI.h:134
Definition ChebyshevI.h:620
void setupN(int reqOrder, double centerFrequency, double widthFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:696
void setup(double sampleRate, double centerFrequency, double widthFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:629
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:651
void setupN(double centerFrequency, double widthFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:676
Definition ChebyshevI.h:110
Definition ChebyshevI.h:374
void setupN(double centerFrequency, double widthFrequency, double rippleDb)
Definition ChebyshevI.h:420
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency, double rippleDb)
Definition ChebyshevI.h:400
void setupN(int reqOrder, double centerFrequency, double widthFrequency, double rippleDb)
Definition ChebyshevI.h:436
void setup(double sampleRate, double centerFrequency, double widthFrequency, double rippleDb)
Definition ChebyshevI.h:382
Definition ChebyshevI.h:95
Definition ChebyshevI.h:224
void setup(double sampleRate, double cutoffFrequency, double rippleDb)
Definition ChebyshevI.h:231
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double rippleDb)
Definition ChebyshevI.h:246
void setupN(int reqOrder, double cutoffFrequency, double rippleDb)
Definition ChebyshevI.h:276
void setupN(double cutoffFrequency, double rippleDb)
Definition ChebyshevI.h:263
Definition ChebyshevI.h:126
Definition ChebyshevI.h:537
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:563
void setup(double sampleRate, double cutoffFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:545
void setupN(double cutoffFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:584
void setupN(int reqOrder, double cutoffFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:600
Definition ChebyshevI.h:88
Definition ChebyshevI.h:155
void setupN(int reqOrder, double cutoffFrequency, double rippleDb)
Definition ChebyshevI.h:207
void setupN(double cutoffFrequency, double rippleDb)
Definition ChebyshevI.h:194
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double rippleDb)
Definition ChebyshevI.h:177
void setup(double sampleRate, double cutoffFrequency, double rippleDb)
Definition ChebyshevI.h:162
Definition ChebyshevI.h:118
Definition ChebyshevI.h:456
void setup(double sampleRate, double cutoffFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:464
void setupN(double cutoffFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:502
void setupN(int reqOrder, double cutoffFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:518
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double gainDb, double rippleDb)
Definition ChebyshevI.h:482