Mercurial > hg > qm-dsp
comparison tests/TestFilter.cpp @ 417:fa851e147e3f
Faster filter implementation with explicit FIR support
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Wed, 07 Oct 2015 10:36:09 +0100 |
parents | 1f3244a6884c |
children | 2de6184b2ce0 |
comparison
equal
deleted
inserted
replaced
416:1f3244a6884c | 417:fa851e147e3f |
---|---|
26 { | 26 { |
27 vector<double> a(iir_a); | 27 vector<double> a(iir_a); |
28 vector<double> b(iir_b); | 28 vector<double> b(iir_b); |
29 vector<double> expected(iir_expected); | 29 vector<double> expected(iir_expected); |
30 | 30 |
31 FilterConfig config { a.size()-1, a.data(), b.data() }; | 31 Filter f({ a, b }); |
32 Filter f(config); | |
33 | 32 |
34 int n = expected.size(); | 33 int n = expected.size(); |
35 vector<double> out(n, 0.0); | 34 vector<double> out(n, 0.0); |
36 | 35 |
37 f.process(in.data(), out.data(), n); | 36 f.process(in.data(), out.data(), n); |
47 { | 46 { |
48 vector<double> a(iir_a); | 47 vector<double> a(iir_a); |
49 vector<double> b(iir_b); | 48 vector<double> b(iir_b); |
50 vector<double> expected(iir_expected); | 49 vector<double> expected(iir_expected); |
51 | 50 |
52 FilterConfig config { a.size()-1, a.data(), b.data() }; | 51 Filter f({ a, b }); |
53 Filter f(config); | |
54 | 52 |
55 int n = expected.size(); | 53 int n = expected.size(); |
56 vector<double> out(n, 0.0); | 54 vector<double> out(n, 0.0); |
57 | 55 |
58 int j = 0; | 56 int j = 0; |
75 } | 73 } |
76 } | 74 } |
77 | 75 |
78 BOOST_AUTO_TEST_CASE(fir) | 76 BOOST_AUTO_TEST_CASE(fir) |
79 { | 77 { |
80 vector<double> a(fir_b.size(), 0.0); //!!! | |
81 vector<double> b(fir_b); | 78 vector<double> b(fir_b); |
82 vector<double> expected(fir_expected); | 79 vector<double> expected(fir_expected); |
83 | 80 |
84 FilterConfig config { b.size()-1, a.data(), b.data() }; | 81 Filter f({ {}, b }); |
85 Filter f(config); | |
86 | 82 |
87 int n = expected.size(); | 83 int n = expected.size(); |
88 vector<double> out(n, 0.0); | 84 vector<double> out(n, 0.0); |
89 | 85 |
90 f.process(in.data(), out.data(), n); | 86 f.process(in.data(), out.data(), n); |