# HG changeset patch # User Chris Cannam # Date 1381924357 -3600 # Node ID 0523dbfda0355727af776b4f21363a6accff960d # Parent 7669b3aa3bc9b020667892fe2cd094114e601651 Make Kaiser window in two halves diff -r 7669b3aa3bc9 -r 0523dbfda035 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]); + } }