annotate maths/Correlation.cpp @ 321:f1e6be2de9a5

A threshold (delta) is added in the peak picking parameters structure (PPickParams). It is used as an offset when computing the smoothed detection function. A constructor for the structure PPickParams is also added to set the parameters to 0 when a structure instance is created. Hence programmes using the peak picking parameter structure and which do not set the delta parameter (e.g. QM Vamp note onset detector) won't be affected by the modifications. Functions modified: - dsp/onsets/PeakPicking.cpp - dsp/onsets/PeakPicking.h - dsp/signalconditioning/DFProcess.cpp - dsp/signalconditioning/DFProcess.h
author mathieub <mathieu.barthet@eecs.qmul.ac.uk>
date Mon, 20 Jun 2011 19:01:48 +0100
parents d5014ab8b0e5
children fa407c1d9923
rev   line source
c@241 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
c@241 2
c@241 3 /*
c@241 4 QM DSP Library
c@241 5
c@241 6 Centre for Digital Music, Queen Mary, University of London.
c@309 7 This file 2005-2006 Christian Landone.
c@309 8
c@309 9 This program is free software; you can redistribute it and/or
c@309 10 modify it under the terms of the GNU General Public License as
c@309 11 published by the Free Software Foundation; either version 2 of the
c@309 12 License, or (at your option) any later version. See the file
c@309 13 COPYING included with this distribution for more information.
c@241 14 */
c@241 15
c@241 16 #include "Correlation.h"
c@241 17
c@241 18 //////////////////////////////////////////////////////////////////////
c@241 19 // Construction/Destruction
c@241 20 //////////////////////////////////////////////////////////////////////
c@241 21
c@241 22 Correlation::Correlation()
c@241 23 {
c@241 24
c@241 25 }
c@241 26
c@241 27 Correlation::~Correlation()
c@241 28 {
c@241 29
c@241 30 }
c@241 31
c@241 32 void Correlation::doAutoUnBiased(double *src, double *dst, unsigned int length)
c@241 33 {
c@241 34 double tmp = 0.0;
c@241 35 double outVal = 0.0;
c@241 36
c@241 37 unsigned int i,j;
c@241 38
c@241 39 for( i = 0; i < length; i++)
c@241 40 {
c@241 41 for( j = i; j < length; j++)
c@241 42 {
c@241 43 tmp += src[ j-i ] * src[ j ];
c@241 44 }
c@241 45
c@241 46
c@241 47 outVal = tmp / ( length - i );
c@241 48
c@241 49 if( outVal <= 0 )
c@241 50 dst[ i ] = EPS;
c@241 51 else
c@241 52 dst[ i ] = outVal;
c@241 53
c@241 54 tmp = 0.0;
c@241 55 }
c@241 56 }