Mercurial > hg > cepstral-pitchtracker
changeset 5:383c5b497f4a track
Vertical filtering
author | Chris Cannam |
---|---|
date | Tue, 26 Jun 2012 15:30:12 +0100 |
parents | c74846514b09 |
children | 291c75f6e837 |
files | CepstrumPitchTracker.cpp CepstrumPitchTracker.h |
diffstat | 2 files changed, 14 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/CepstrumPitchTracker.cpp Mon Jun 25 16:35:38 2012 +0100 +++ b/CepstrumPitchTracker.cpp Tue Jun 26 15:30:12 2012 +0100 @@ -38,7 +38,8 @@ m_blockSize(1024), m_fmin(50), m_fmax(1000), - m_histlen(3), + m_histlen(1), + m_vflen(3), m_binFrom(0), m_binTo(0), m_bins(0), @@ -246,7 +247,17 @@ } for (int i = 0; i < m_bins; ++i) { - m_history[hix][i] = cep[i + m_binFrom]; + double v = 0; + int n = 0; + // average according to the vertical filter length + for (int j = -m_vflen/2; j <= m_vflen/2; ++j) { + int ix = i + m_binFrom + j; + if (ix >= 0 && ix < m_blockSize) { + v += cep[ix]; + ++n; + } + } + m_history[hix][i] = v / n; } for (int i = 0; i < m_bins; ++i) {