45 return result > 1.0f ? 1.0f : result;
51 virtual const char*
name() = 0;
57 const float twoPi = 6.28318531f;
59 const float sixPi = 18.84955593f;
81 const char*
name()
override {
82 static char buffer[80] =
"Buffered ";
122 if (idx < 0 || idx >=
i_samples)
return 0;
125 const char*
name() {
return "Rectange"; }
138 return 0.54f - (0.46f * cos(
twoPi *
ratio(idx)));
140 const char*
name() {
return "Hamming"; }
152 const char*
name() {
return "Hann"; }
155 return 0.54f * (1.0f - cos(
twoPi *
ratio(idx)));
168 const char*
name() {
return "Triangle"; }
170 return 1.0f - ((2.0f * fabs((idx - 1) -
171 (
static_cast<float>(
i_samples - 1) / 2.0f))) /
186 const char*
name()
override {
return "Nuttall"; }
188 float r =
ratio(idx);
189 return 0.355768f - (0.487396f * (cos(
twoPi * r))) +
190 (0.144232f * (cos(
fourPi * r))) - (0.012604f * (cos(
sixPi * r)));
204 const char*
name()
override {
return "Blackman"; }
206 float r =
ratio(idx);
207 return 0.42323f - (0.49755f * (cos(
twoPi * r))) +
208 (0.07922f * (cos(
fourPi * r)));
221 const char*
name()
override {
return "BlackmanNuttall"; }
223 float r =
ratio(idx);
224 return 0.3635819f - (0.4891775f * (cos(
twoPi * r))) +
225 (0.1365995f * (cos(
fourPi * r))) - (0.0106411f * (cos(
sixPi * r)));
238 const char*
name()
override {
return "BlackmanHarris"; }
240 float r =
ratio(idx);
241 return 0.35875f - (0.48829f * (cos(
twoPi * r))) +
242 (0.14128f * (cos(
fourPi * r))) - (0.01168f * (cos(
sixPi * r)));
255 const char*
name()
override {
return "FlatTop"; }
257 float r =
ratio(idx);
258 return 0.2810639f - (0.5208972f * cos(
twoPi * r)) +
259 (0.1980399f * cos(
fourPi * r));
272 const char*
name()
override {
return "Welch"; }
276 return 1.0f - (tmp * tmp);
#define assert(T)
Definition avr.h:10