40#include "PoleFilter.h"
57class IIR_EXPORT AnalogLowPass :
public LayoutBase
62 void design (
const int numPoles,
67 double m_stopBandDb = 0.0;
74class IIR_EXPORT AnalogLowShelf :
public LayoutBase
79 void design (
int numPoles,
85 double m_stopBandDb = 0.0;
86 double m_gainDb = 0.0;
93 void setup (
int order,
94 double cutoffFrequency,
100 void setup (
int order,
101 double cutoffFrequency,
107 void setup (
int order,
108 double centerFrequency,
109 double widthFrequency,
115 void setup (
int order,
116 double centerFrequency,
117 double widthFrequency,
123 void setup (
int order,
124 double cutoffFrequency,
131 void setup (
int order,
132 double cutoffFrequency,
139 void setup (
int order,
140 double centerFrequency,
141 double widthFrequency,
157template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
158struct LowPass : PoleFilter <LowPassBase, StateType, FilterOrder>
167 double cutoffFrequency,
169 LowPassBase::setup (FilterOrder,
170 cutoffFrequency / sampleRate,
183 double cutoffFrequency,
185 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
186 LowPassBase::setup (reqOrder,
187 cutoffFrequency / sampleRate,
202 LowPassBase::setup (FilterOrder,
214 double cutoffFrequency,
216 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
217 LowPassBase::setup (reqOrder,
229template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
230struct HighPass : PoleFilter <HighPassBase, StateType, FilterOrder>
239 double cutoffFrequency,
241 HighPassBase::setup (FilterOrder,
242 cutoffFrequency / sampleRate,
255 double cutoffFrequency,
257 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
258 HighPassBase::setup (reqOrder,
259 cutoffFrequency / sampleRate,
273 HighPassBase::setup (FilterOrder,
285 double cutoffFrequency,
287 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
288 HighPassBase::setup (reqOrder,
300template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
301struct BandPass : PoleFilter <BandPassBase, StateType, FilterOrder, FilterOrder*2>
311 double centerFrequency,
312 double widthFrequency,
314 BandPassBase::setup (FilterOrder,
315 centerFrequency / sampleRate,
316 widthFrequency / sampleRate,
330 double centerFrequency,
331 double widthFrequency,
333 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
334 BandPassBase::setup (reqOrder,
335 centerFrequency / sampleRate,
336 widthFrequency / sampleRate,
350 double widthFrequency,
352 BandPassBase::setup (FilterOrder,
366 double centerFrequency,
367 double widthFrequency,
369 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
370 BandPassBase::setup (reqOrder,
382template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
383struct BandStop : PoleFilter <BandStopBase, StateType, FilterOrder, FilterOrder*2>
393 double centerFrequency,
394 double widthFrequency,
396 BandStopBase::setup (FilterOrder,
397 centerFrequency / sampleRate,
398 widthFrequency / sampleRate,
412 double centerFrequency,
413 double widthFrequency,
415 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
416 BandStopBase::setup (reqOrder,
417 centerFrequency / sampleRate,
418 widthFrequency / sampleRate,
432 double widthFrequency,
434 BandStopBase::setup (FilterOrder,
448 double centerFrequency,
449 double widthFrequency,
451 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
452 BandStopBase::setup (reqOrder,
464template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
465struct LowShelf : PoleFilter <LowShelfBase, StateType, FilterOrder>
475 double cutoffFrequency,
478 LowShelfBase::setup (FilterOrder,
479 cutoffFrequency / sampleRate,
494 double cutoffFrequency,
497 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
498 LowShelfBase::setup (reqOrder,
499 cutoffFrequency / sampleRate,
517 LowShelfBase::setup (FilterOrder,
531 double cutoffFrequency,
534 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
535 LowShelfBase::setup (reqOrder,
548template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
549struct HighShelf : PoleFilter <HighShelfBase, StateType, FilterOrder>
559 double cutoffFrequency,
562 HighShelfBase::setup (FilterOrder,
563 cutoffFrequency / sampleRate,
578 double cutoffFrequency,
581 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
582 HighShelfBase::setup (reqOrder,
583 cutoffFrequency / sampleRate,
602 HighShelfBase::setup (FilterOrder,
616 double cutoffFrequency,
619 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
620 HighShelfBase::setup (reqOrder,
633template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
634struct BandShelf : PoleFilter <BandShelfBase, StateType, FilterOrder, FilterOrder*2>
645 double centerFrequency,
646 double widthFrequency,
649 BandShelfBase::setup (FilterOrder,
650 centerFrequency / sampleRate,
651 widthFrequency / sampleRate,
668 double centerFrequency,
669 double widthFrequency,
672 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
673 BandShelfBase::setup (reqOrder,
674 centerFrequency / sampleRate,
675 widthFrequency / sampleRate,
694 double widthFrequency,
697 BandShelfBase::setup (FilterOrder,
714 double centerFrequency,
715 double widthFrequency,
718 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
719 BandShelfBase::setup (reqOrder,
Definition PoleFilter.h:90
Definition ChebyshevII.cpp:41
Definition ChebyshevII.h:106
Definition ChebyshevII.h:302
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency, double stopBandDb)
Definition ChebyshevII.h:328
void setupN(double centerFrequency, double widthFrequency, double stopBandDb)
Definition ChebyshevII.h:349
void setup(double sampleRate, double centerFrequency, double widthFrequency, double stopBandDb)
Definition ChebyshevII.h:310
void setupN(int reqOrder, double centerFrequency, double widthFrequency, double stopBandDb)
Definition ChebyshevII.h:365
Definition ChebyshevII.h:138
Definition ChebyshevII.h:635
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:666
void setupN(int reqOrder, double centerFrequency, double widthFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:713
void setupN(double centerFrequency, double widthFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:693
void setup(double sampleRate, double centerFrequency, double widthFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:644
Definition ChebyshevII.h:114
Definition ChebyshevII.h:384
void setup(double sampleRate, double centerFrequency, double widthFrequency, double stopBandDb)
Definition ChebyshevII.h:392
void setupN(int reqOrder, double centerFrequency, double widthFrequency, double stopBandDb)
Definition ChebyshevII.h:447
void setupN(double centerFrequency, double widthFrequency, double stopBandDb)
Definition ChebyshevII.h:431
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency, double stopBandDb)
Definition ChebyshevII.h:410
Definition ChebyshevII.h:99
Definition ChebyshevII.h:231
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double stopBandDb)
Definition ChebyshevII.h:253
void setup(double sampleRate, double cutoffFrequency, double stopBandDb)
Definition ChebyshevII.h:238
void setupN(int reqOrder, double cutoffFrequency, double stopBandDb)
Definition ChebyshevII.h:284
void setupN(double cutoffFrequency, double stopBandDb)
Definition ChebyshevII.h:271
Definition ChebyshevII.h:130
Definition ChebyshevII.h:550
void setupN(double cutoffFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:599
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:576
void setupN(int reqOrder, double cutoffFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:615
void setup(double sampleRate, double cutoffFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:558
Definition ChebyshevII.h:92
Definition ChebyshevII.h:159
void setupN(int reqOrder, double cutoffFrequency, double stopBandDb)
Definition ChebyshevII.h:213
void setup(double sampleRate, double cutoffFrequency, double stopBandDb)
Definition ChebyshevII.h:166
void setupN(double cutoffFrequency, double stopBandDb)
Definition ChebyshevII.h:200
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double stopBandDb)
Definition ChebyshevII.h:181
Definition ChebyshevII.h:122
Definition ChebyshevII.h:466
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:492
void setupN(int reqOrder, double cutoffFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:530
void setup(double sampleRate, double cutoffFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:474
void setupN(double cutoffFrequency, double gainDb, double stopBandDb)
Definition ChebyshevII.h:514