SigPack - the C++ signal processing library
fir_iir.cpp
Go to the documentation of this file.
1 
25 #include "sigpack.h"
26 
27 using namespace arma;
28 using namespace sp;
29 
30 int main()
31 {
32  // Filter coeffs.
33  vec b;
34  int N = 15;
35 
36  // Create a FIR filter
38  b = fir1(7, 0.35);
39  fir_filt.set_coeffs(b);
40 
41  vec X(N); // Input sig
42  X.zeros();
43  X[0] = 1; // Impulse
44 
45  vec Y(N); // Output sig
46  Y.zeros();
47 
48  // Filter - sample loop
49  for (int n = 0; n < N; n++)
50  {
51  Y[n] = fir_filt(X[n]);
52  }
53 
54  std::cout << "Filter coeffs: \n" << b.t() << std::endl;
55  std::cout << "Impulse response:\n" << Y.t() << std::endl;
56 
57  // Create a IIR filter
59  vec a;
60  b << 0.25 << 0.5 << 0.25 << endr;
61  a << 1.0 << -0.9 << endr;
62 
63  iir_filt.set_coeffs(b, a);
64  Y = iir_filt.filter(X);
65  std::cout
66  << "IIR theor. impulse response: \n 0.2500 0.7250 0.9025 0.8123 "
67  " 0.7310 0.6579 0.5921 0.5329 0.4796 0.4317 0.3885 ..."
68  << std::endl;
69  std::cout << "IIR output: \n" << Y.t() << std::endl;
70 
71  Delay<double> del(3);
72  std::cout << "Delay three samples:\n" << del.delay(Y).t() << std::endl;
73 
74  return 0;
75 }
IIR/ARMA filter class.
Definition: filter.h:477
int main()
Definition: fir_iir.cpp:30
Definition: base.h:7
FIR/MA filter class.
Definition: filter.h:20
A delay class.
Definition: timing.h:18
arma::Col< T1 > delay(const arma::Col< T1 > &in)
A delay operator (vector version).
Definition: timing.h:88
arma_inline arma::vec fir1(const arma::uword M, const double f0)
FIR lowpass design function. FIR lowpassdesign using windows method (hamming window). NB! Returns size M+1.
Definition: filter.h:607
void set_coeffs(const arma::Mat< T2 > &_b)
Sets coefficients in FIR filter. The internal state and pointers are cleared.
Definition: filter.h:65
void set_coeffs(const arma::Col< T2 > &_b, const arma::Col< T2 > &_a)
Sets coefficients in IIR filter. The internal state and pointers are cleared.
Definition: filter.h:516
arma::Col< T3 > filter(const arma::Col< T1 > &in)
Filter function.
Definition: filter.h:585