# HG changeset patch # User Chris Cannam # Date 1381924357 -3600 # Node ID 5ff562f5b5219fb35fdea1d2c64c82b74b94a2ac # Parent 5d9489187abdccee14504119e9f1cbfa910f9e29 Make Kaiser window in two halves diff -r 5d9489187abd -r 5ff562f5b521 base/KaiserWindow.cpp --- a/base/KaiserWindow.cpp Thu Oct 10 17:53:41 2013 +0100 +++ b/base/KaiserWindow.cpp Wed Oct 16 12:52:37 2013 +0100 @@ -54,8 +54,12 @@ KaiserWindow::init() { double denominator = bessel0(m_beta); - for (int i = 0; i < m_length; ++i) { + bool even = (m_length % 2 == 0); + for (int i = 0; i < (even ? m_length/2 : (m_length+1)/2); ++i) { double k = double(2*i) / double(m_length-1) - 1.0; m_window.push_back(bessel0(m_beta * sqrt(1.0 - k*k)) / denominator); } + for (int i = 0; i < (even ? m_length/2 : (m_length-1)/2); ++i) { + m_window.push_back(m_window[int(m_length/2) - i - 1]); + } }