MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
parksmcclellan.h
Go to the documentation of this file.
1//=============================================================================================================
62#ifndef PARKSMCCLELLAN_H
63#define PARKSMCCLELLAN_H
64
65//=============================================================================================================
66// INCLUDES
67//=============================================================================================================
68
69#include "../rtprocessing_global.h"
70
71//=============================================================================================================
72// EIGEN INCLUDES
73//=============================================================================================================
74
75#include <Eigen/Core>
76
77//=============================================================================================================
78// QT INCLUDES
79//=============================================================================================================
80
81#include <QObject>
82
83//=============================================================================================================
84// DEFINE NAMESPACE RTPROCESSINGLIB
85//=============================================================================================================
86
87namespace RTPROCESSINGLIB
88{
89
96{
97 Q_OBJECT
98 Q_ENUMS(TPassType) //makes enum available to the class' Qt meta object
99
100public:
101 enum TPassType {LPF, HPF, BPF, NOTCH };
102
104
105 //=========================================================================================================
127 ParksMcClellan(int NumTaps,
128 double OmegaC,
129 double BW,
130 double ParksWidth,
131 TPassType PassType);
132
134
135 //=========================================================================================================
140 void init(int NumTaps,
141 double OmegaC,
142 double BW,
143 double ParksWidth,
144 TPassType PassType);
145
146 //=========================================================================================================
149 void CalcParkCoeff2(int NBANDS, int NFILT);
150
151 //=========================================================================================================
155 double LeGrangeInterp2(int K, int N, int M);
156
157 //=========================================================================================================
162 double GEE2(int K, int N);
163
164 //=========================================================================================================
167 int Remez2(int GridIndex);
168
169 //=========================================================================================================
173 bool ErrTest(int k,
174 int Nut,
175 double Comp,
176 double *Err);
177
178 //=========================================================================================================
183 void CalcCoefficients();
184
185 Eigen::RowVectorXd FirCoeff;
187private:
188 int HalfTapCount;
189 Eigen::VectorXi ExchangeIndex;
190 Eigen::VectorXd LeGrangeD;
191 Eigen::VectorXd Alpha;
192 Eigen::VectorXd CosOfGrid;
193 Eigen::VectorXd DesPlus;
194 Eigen::VectorXd Coeff;
195 Eigen::VectorXd Edge;
196 Eigen::VectorXd BandMag;
197 Eigen::VectorXd InitWeight;
198 Eigen::VectorXd DesiredMag;
199 Eigen::VectorXd Grid;
200 Eigen::VectorXd Weight;
201
202 bool InitDone2;
203};
204} // NAMESPACE RTPROCESSINGLIB
205
206#endif // PARKSMCCLELLAN_H
#define RTPROCESINGSHARED_EXPORT
int k
Definition fiff_tag.cpp:324
The ParksMcClellan class provides the ParksMcClellan filter desing algorithm.