Mercurial > hg > qm-dsp
changeset 132:0523dbfda035
Make Kaiser window in two halves
author | Chris Cannam |
---|---|
date | Wed, 16 Oct 2013 12:52:37 +0100 |
parents | 7669b3aa3bc9 |
children | ef42b60d0100 |
files | base/KaiserWindow.cpp |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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]); + } }