comparison tests/TestWindow.cpp @ 124:263181813eec

Add Kaiser window (and some tests for it)
author Chris Cannam
date Fri, 04 Oct 2013 18:46:32 +0100
parents 4920d100b290
children 7669b3aa3bc9
comparison
equal deleted inserted replaced
123:a37635bbb2c1 124:263181813eec
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 2
3 #include "base/Window.h" 3 #include "base/Window.h"
4 #include "base/KaiserWindow.h"
4 5
5 #include <iostream> 6 #include <iostream>
6 7
7 #define BOOST_TEST_DYN_LINK 8 #define BOOST_TEST_DYN_LINK
8 #define BOOST_TEST_MAIN 9 #define BOOST_TEST_MAIN
115 0, 0.0402, 0.2008, 0.5098, 0.8492, 116 0, 0.0402, 0.2008, 0.5098, 0.8492,
116 1.0000, 0.8492, 0.5098, 0.2008, 0.0402, 117 1.0000, 0.8492, 0.5098, 0.2008, 0.0402,
117 }; 118 };
118 testWindow<10>(BlackmanWindow, e10); 119 testWindow<10>(BlackmanWindow, e10);
119 } 120 }
121
122 BOOST_AUTO_TEST_CASE(kaiser_4_10)
123 {
124 double d[10];
125 for (int i = 0; i < 10; ++i) d[i] = 1.0;
126 double e[] = {
127 0.0885, 0.2943, 0.5644, 0.8216, 0.9789,
128 0.9789, 0.8216, 0.5644, 0.2943, 0.0885
129 };
130 KaiserWindow::Parameters p;
131 p.length = 10;
132 p.beta = 4;
133 KaiserWindow k(p);
134 k.cut(d);
135 COMPARE_ARRAY(d, e);
136 }
120 137
138 BOOST_AUTO_TEST_CASE(kaiser_2p5_11)
139 {
140 double d[11];
141 for (int i = 0; i < 11; ++i) d[i] = 1.0;
142 double e[] = {
143 0.3040, 0.5005, 0.6929, 0.8546, 0.9622,
144 1.0000, 0.9622, 0.8546, 0.6929, 0.5005, 0.3040
145 };
146 KaiserWindow::Parameters p;
147 p.length = 11;
148 p.beta = 2.5;
149 KaiserWindow k(p);
150 k.cut(d);
151 COMPARE_ARRAY(d, e);
152 }
153
154 //!!! todo: tests for kaiser with attenuation and bandwidth parameters
155
121 BOOST_AUTO_TEST_SUITE_END() 156 BOOST_AUTO_TEST_SUITE_END()
122 157