00001
00029 #ifndef FILTER_DESIGN_H
00030 #define FILTER_DESIGN_H
00031
00032 #include <itpp/base/vec.h>
00033
00034
00035 namespace itpp
00036 {
00037
00054 void polystab(const vec &a, vec &out);
00055 inline vec polystab(const vec &a) { vec temp; polystab(a, temp); return temp; }
00056 void polystab(const cvec &a, cvec &out);
00057 inline cvec polystab(const cvec &a) { cvec temp; polystab(a, temp); return temp; }
00073 void freqz(const cvec &b, const cvec& a, const int N, cvec &h, vec &w);
00074 cvec freqz(const cvec &b, const cvec& a, const int N = 512);
00075 cvec freqz(const cvec &b, const cvec& a, const vec &w);
00076
00077 void freqz(const vec &b, const vec& a, const int N, cvec &h, vec &w);
00078 cvec freqz(const vec &b, const vec& a, const int N = 512);
00079 cvec freqz(const vec &b, const vec& a, const vec &w);
00097 void filter_design_autocorrelation(const int N, const vec &f, const vec &m, vec &R);
00098
00099
00118 void modified_yule_walker(const int m, const int n, const int N, const vec &R, vec &a);
00119
00120
00121
00143 void arma_estimator(const int m, const int n, const vec &R, vec &b, vec &a);
00144
00145
00160 void yulewalk(const int N, const vec &f, const vec &m, vec &b, vec &a);
00161
00162
00163 }
00164
00165 #endif // #ifndef FILTER_DESIGN_H