63 #ifndef PARKSMCCLELLAN_H
64 #define PARKSMCCLELLAN_H
74 #include <Eigen/SparseCore>
78 #include <QMetaObject>
80 #define BIG 4096 // Used to define array sizes. Must be somewhat larger than 8 * MaxNumTaps
82 #define M_2PI 6.28318530717958647692
83 #define ITRMAX 50 // Max Number of Iterations. Some filters require as many as 45 iterations.
84 #define MIN_TEST_VAL 1.0E-6 // Min value used in LeGrangeInterp and GEE
91 using namespace Eigen;
102 enum TPassType {LPF, HPF, BPF, NOTCH };
128 ParksMcClellan(
int NumTaps,
double OmegaC,
double BW,
double ParksWidth, TPassType PassType);
137 void init(
int NumTaps,
double OmegaC,
double BW,
double ParksWidth, TPassType PassType);
142 void CalcParkCoeff2(
int NBANDS,
int NFILT);
148 double LeGrangeInterp2(
int K,
int N,
int M);
155 double GEE2(
int K,
int N);
160 int Remez2(
int GridIndex);
166 bool ErrTest(
int k,
int Nut,
double Comp,
double *Err);
173 void CalcCoefficients();
175 RowVectorXd FirCoeff;
179 VectorXi ExchangeIndex;
198 #endif // PARKSMCCLELLAN_H
#define UTILSSHARED_EXPORT
utils library export/import macros.