36#ifndef IIR1_CHEBYSHEVII_H
37#define IIR1_CHEBYSHEVII_H
41#include "PoleFilter.h"
53namespace ChebyshevII {
63 void design (
const int numPoles,
68 double m_stopBandDb = 0.0;
80 void design (
int numPoles,
86 double m_stopBandDb = 0.0;
87 double m_gainDb = 0.0;
94 void setup (
int order,
95 double cutoffFrequency,
101 void setup (
int order,
102 double cutoffFrequency,
108 void setup (
int order,
109 double centerFrequency,
110 double widthFrequency,
116 void setup (
int order,
117 double centerFrequency,
118 double widthFrequency,
124 void setup (
int order,
125 double cutoffFrequency,
132 void setup (
int order,
133 double cutoffFrequency,
140 void setup (
int order,
141 double centerFrequency,
142 double widthFrequency,
158template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
168 double cutoffFrequency,
170 LowPassBase::setup (FilterOrder,
171 cutoffFrequency / sampleRate,
184 double cutoffFrequency,
186 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
187 LowPassBase::setup (reqOrder,
188 cutoffFrequency / sampleRate,
203 LowPassBase::setup (FilterOrder,
215 double cutoffFrequency,
217 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
218 LowPassBase::setup (reqOrder,
230template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
240 double cutoffFrequency,
242 HighPassBase::setup (FilterOrder,
243 cutoffFrequency / sampleRate,
256 double cutoffFrequency,
258 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
259 HighPassBase::setup (reqOrder,
260 cutoffFrequency / sampleRate,
274 HighPassBase::setup (FilterOrder,
286 double cutoffFrequency,
288 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
289 HighPassBase::setup (reqOrder,
301template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
312 double centerFrequency,
313 double widthFrequency,
315 BandPassBase::setup (FilterOrder,
316 centerFrequency / sampleRate,
317 widthFrequency / sampleRate,
331 double centerFrequency,
332 double widthFrequency,
334 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
335 BandPassBase::setup (reqOrder,
336 centerFrequency / sampleRate,
337 widthFrequency / sampleRate,
351 double widthFrequency,
353 BandPassBase::setup (FilterOrder,
367 double centerFrequency,
368 double widthFrequency,
370 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
371 BandPassBase::setup (reqOrder,
383template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
394 double centerFrequency,
395 double widthFrequency,
397 BandStopBase::setup (FilterOrder,
398 centerFrequency / sampleRate,
399 widthFrequency / sampleRate,
413 double centerFrequency,
414 double widthFrequency,
416 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
417 BandStopBase::setup (reqOrder,
418 centerFrequency / sampleRate,
419 widthFrequency / sampleRate,
433 double widthFrequency,
435 BandStopBase::setup (FilterOrder,
449 double centerFrequency,
450 double widthFrequency,
452 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
453 BandStopBase::setup (reqOrder,
465template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
476 double cutoffFrequency,
479 LowShelfBase::setup (FilterOrder,
480 cutoffFrequency / sampleRate,
495 double cutoffFrequency,
498 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
499 LowShelfBase::setup (reqOrder,
500 cutoffFrequency / sampleRate,
518 LowShelfBase::setup (FilterOrder,
532 double cutoffFrequency,
535 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
536 LowShelfBase::setup (reqOrder,
549template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
560 double cutoffFrequency,
563 HighShelfBase::setup (FilterOrder,
564 cutoffFrequency / sampleRate,
579 double cutoffFrequency,
582 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
583 HighShelfBase::setup (reqOrder,
584 cutoffFrequency / sampleRate,
603 HighShelfBase::setup (FilterOrder,
617 double cutoffFrequency,
620 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
621 HighShelfBase::setup (reqOrder,
634template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
646 double centerFrequency,
647 double widthFrequency,
650 BandShelfBase::setup (FilterOrder,
651 centerFrequency / sampleRate,
652 widthFrequency / sampleRate,
669 double centerFrequency,
670 double widthFrequency,
673 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
674 BandShelfBase::setup (reqOrder,
675 centerFrequency / sampleRate,
676 widthFrequency / sampleRate,
695 double widthFrequency,
698 BandShelfBase::setup (FilterOrder,
715 double centerFrequency,
716 double widthFrequency,
719 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
720 BandShelfBase::setup (reqOrder,
Definition: ChebyshevII.h:59
Definition: ChebyshevII.h:76
Definition: PoleFilter.h:90
Definition: Biquad.cpp:40
Definition: ChebyshevII.h:107
Definition: ChebyshevII.h:303
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency, double stopBandDb)
Definition: ChebyshevII.h:329
void setupN(double centerFrequency, double widthFrequency, double stopBandDb)
Definition: ChebyshevII.h:350
void setup(double sampleRate, double centerFrequency, double widthFrequency, double stopBandDb)
Definition: ChebyshevII.h:311
void setupN(int reqOrder, double centerFrequency, double widthFrequency, double stopBandDb)
Definition: ChebyshevII.h:366
Definition: ChebyshevII.h:139
Definition: ChebyshevII.h:636
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:667
void setupN(int reqOrder, double centerFrequency, double widthFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:714
void setupN(double centerFrequency, double widthFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:694
void setup(double sampleRate, double centerFrequency, double widthFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:645
Definition: ChebyshevII.h:115
Definition: ChebyshevII.h:385
void setup(double sampleRate, double centerFrequency, double widthFrequency, double stopBandDb)
Definition: ChebyshevII.h:393
void setupN(int reqOrder, double centerFrequency, double widthFrequency, double stopBandDb)
Definition: ChebyshevII.h:448
void setupN(double centerFrequency, double widthFrequency, double stopBandDb)
Definition: ChebyshevII.h:432
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency, double stopBandDb)
Definition: ChebyshevII.h:411
Definition: ChebyshevII.h:100
Definition: ChebyshevII.h:232
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double stopBandDb)
Definition: ChebyshevII.h:254
void setup(double sampleRate, double cutoffFrequency, double stopBandDb)
Definition: ChebyshevII.h:239
void setupN(int reqOrder, double cutoffFrequency, double stopBandDb)
Definition: ChebyshevII.h:285
void setupN(double cutoffFrequency, double stopBandDb)
Definition: ChebyshevII.h:272
Definition: ChebyshevII.h:131
Definition: ChebyshevII.h:551
void setupN(double cutoffFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:600
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:577
void setupN(int reqOrder, double cutoffFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:616
void setup(double sampleRate, double cutoffFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:559
Definition: ChebyshevII.h:93
Definition: ChebyshevII.h:160
void setupN(int reqOrder, double cutoffFrequency, double stopBandDb)
Definition: ChebyshevII.h:214
void setup(double sampleRate, double cutoffFrequency, double stopBandDb)
Definition: ChebyshevII.h:167
void setupN(double cutoffFrequency, double stopBandDb)
Definition: ChebyshevII.h:201
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double stopBandDb)
Definition: ChebyshevII.h:182
Definition: ChebyshevII.h:123
Definition: ChebyshevII.h:467
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:493
void setupN(int reqOrder, double cutoffFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:531
void setup(double sampleRate, double cutoffFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:475
void setupN(double cutoffFrequency, double gainDb, double stopBandDb)
Definition: ChebyshevII.h:515
Definition: PoleFilter.h:114