39vec
filter(
const vec &b,
const vec &a,
const vec &input)
45cvec
filter(
const vec &b,
const vec &a,
const cvec &input)
51cvec
filter(
const cvec &b,
const cvec &a,
const cvec &input)
57cvec
filter(
const cvec &b,
const cvec &a,
const vec &input)
64vec
filter(
const vec &b,
const int one,
const vec &input)
66 it_assert(one == 1,
"filter(): in a MA filter a=1");
71cvec
filter(
const vec &b,
const int one,
const cvec &input)
73 it_assert(one == 1,
"filter(): in a MA filter a=1");
78cvec
filter(
const cvec &b,
const int one,
const cvec &input)
80 it_assert(one == 1,
"filter(): in a MA filter a=1");
85cvec
filter(
const cvec &b,
const int one,
const vec &input)
87 it_assert(one == 1,
"filter(): in a MA filter a=1");
93vec
filter(
const int one,
const vec &a,
const vec &input)
95 it_assert(one == 1,
"filter(): in a AR filter b=1");
100cvec
filter(
const int one,
const vec &a,
const cvec &input)
102 it_assert(one == 1,
"filter(): in a AR filter b=1");
107cvec
filter(
const int one,
const cvec &a,
const cvec &input)
109 it_assert(one == 1,
"filter(): in a AR filter b=1");
114cvec
filter(
const int one,
const cvec &a,
const vec &input)
116 it_assert(one == 1,
"filter(): in a AR filter b=1");
125vec
filter(
const vec &b,
const vec &a,
const vec &input,
const vec &state_in, vec &state_out)
129 vec output = f(input);
134cvec
filter(
const vec &b,
const vec &a,
const cvec &input,
const cvec &state_in, cvec &state_out)
138 cvec output = f(input);
143cvec
filter(
const cvec &b,
const cvec &a,
const cvec &input,
const cvec &state_in, cvec &state_out)
147 cvec output = f(input);
152cvec
filter(
const cvec &b,
const cvec &a,
const vec &input,
const cvec &state_in, cvec &state_out)
156 cvec output = f(input);
162vec
filter(
const vec &b,
const int one,
const vec &input,
const vec &state_in, vec &state_out)
164 it_assert(one == 1,
"filter(): in a MA filter a=1");
167 vec output = f(input);
172cvec
filter(
const vec &b,
const int one,
const cvec &input,
const cvec &state_in, cvec &state_out)
174 it_assert(one == 1,
"filter(): in a MA filter a=1");
177 cvec output = f(input);
182cvec
filter(
const cvec &b,
const int one,
const cvec &input,
const cvec &state_in, cvec &state_out)
184 it_assert(one == 1,
"filter(): in a MA filter a=1");
187 cvec output = f(input);
192cvec
filter(
const cvec &b,
const int one,
const vec &input,
const cvec &state_in, cvec &state_out)
194 it_assert(one == 1,
"filter(): in a MA filter a=1");
197 cvec output = f(input);
203vec
filter(
const int one,
const vec &a,
const vec &input,
const vec &state_in, vec &state_out)
205 it_assert(one == 1,
"filter(): in a AR filter b=1");
208 vec output = f(input);
213cvec
filter(
const int one,
const vec &a,
const cvec &input,
const cvec &state_in, cvec &state_out)
215 it_assert(one == 1,
"filter(): in a AR filter b=1");
218 cvec output = f(input);
223cvec
filter(
const int one,
const cvec &a,
const cvec &input,
const cvec &state_in, cvec &state_out)
225 it_assert(one == 1,
"filter(): in a AR filter b=1");
228 cvec output = f(input);
233cvec
filter(
const int one,
const cvec &a,
const vec &input,
const cvec &state_in, cvec &state_out)
235 it_assert(one == 1,
"filter(): in a AR filter b=1");
238 cvec output = f(input);
245 vec a(N + 1), h =
hamming(N + 1);
247 for (
int i = 0;i <
length(a);i++) {
248 a[i] = h[i] *
sinc(cutoff * (i - N / 2.0));
254template class ITPP_EXPORT MA_Filter<double, double, double>;
255template class ITPP_EXPORT MA_Filter < double, std::complex<double>,
256std::complex<double> >;
257template class ITPP_EXPORT MA_Filter<std::complex<double>, double, std::complex<double> >;
258template class ITPP_EXPORT MA_Filter < std::complex<double>, std::complex<double>,
259std::complex<double> >;
261template class ITPP_EXPORT AR_Filter<double, double, double>;
262template class ITPP_EXPORT AR_Filter < double, std::complex<double>,
263std::complex<double> >;
264template class ITPP_EXPORT AR_Filter < std::complex<double>, double,
265std::complex<double> >;
266template class ITPP_EXPORT AR_Filter < std::complex<double>, std::complex<double>,
267std::complex<double> >;
269template class ITPP_EXPORT ARMA_Filter<double, double, double>;
270template class ITPP_EXPORT ARMA_Filter < double, std::complex<double>,
271std::complex<double> >;
272template class ITPP_EXPORT ARMA_Filter < std::complex<double>, double,
273std::complex<double> >;
274template class ITPP_EXPORT ARMA_Filter < std::complex<double>, std::complex<double>,
275std::complex<double> >;
Autoregressive Moving Average (ARMA) Filter Base Class.
Vec< T3 > get_state() const
Get state of filter.
void set_state(const Vec< T3 > &state)
Set state of filter.
Autoregressive (AR) Filter Base Class.
Vec< T3 > get_state() const
Get state of filter.
void set_state(const Vec< T3 > &state)
Set state of filter.
Moving Average Filter Base Class.
void set_state(const Vec< T3 > &state)
Set state of filter.
Vec< T3 > get_state() const
Get state of filter.
Definitions of Filter classes and functions.
#define it_assert(t, s)
Abort if t is not true.
vec fir1(int N, double cutoff)
Design a Nth order FIR filter with cut-off frequency cutoff using the window method.
vec filter(const vec &b, const vec &a, const vec &input)
ARMA filter function.
T sum(const Vec< T > &v)
Sum of all elements in the vector.
int length(const Vec< T > &v)
Length of vector.
double sinc(double x)
Sinc function: sinc(x) = sin(pi*x)/pi*x.
vec hamming(int n)
Hamming window.
Various functions on vectors and matrices - header file.
Trigonometric and hyperbolic functions - header file.
Definitions of window functions.