annotate dsp/rateconversion/Decimator.h @ 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 23558405a7d1
rev   line source
c@225 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
c@225 2 /*
c@225 3 QM DSP Library
c@225 4
c@225 5 Centre for Digital Music, Queen Mary, University of London.
c@309 6 This file 2005-2006 Christian Landone.
c@309 7
c@309 8 This program is free software; you can redistribute it and/or
c@309 9 modify it under the terms of the GNU General Public License as
c@309 10 published by the Free Software Foundation; either version 2 of the
c@309 11 License, or (at your option) any later version. See the file
c@309 12 COPYING included with this distribution for more information.
c@225 13 */
c@225 14
c@225 15 #ifndef DECIMATOR_H
c@225 16 #define DECIMATOR_H
c@225 17
c@225 18 class Decimator
c@225 19 {
c@225 20 public:
c@247 21 void process( const double* src, double* dst );
c@280 22 void process( const float* src, float* dst );
c@225 23
c@279 24 /**
c@279 25 * Construct a Decimator to operate on input blocks of length
c@279 26 * inLength, with decimation factor decFactor. inLength should be
c@279 27 * a multiple of decFactor. Output blocks will be of length
c@279 28 * inLength / decFactor.
c@279 29 *
c@279 30 * decFactor must be a power of two. The highest supported factor
c@279 31 * is obtained through getHighestSupportedFactor(); for higher
c@279 32 * factors, you will need to chain more than one decimator.
c@279 33 */
c@225 34 Decimator( unsigned int inLength, unsigned int decFactor );
c@225 35 virtual ~Decimator();
c@225 36
c@247 37 int getFactor() const { return m_decFactor; }
c@247 38 static int getHighestSupportedFactor() { return 8; }
c@247 39
c@225 40 private:
c@225 41 void resetFilter();
c@225 42 void deInitialise();
c@225 43 void initialise( unsigned int inLength, unsigned int decFactor );
c@280 44 void doAntiAlias( const double* src, double* dst, unsigned int length );
c@280 45 void doAntiAlias( const float* src, double* dst, unsigned int length );
c@225 46
c@225 47 unsigned int m_inputLength;
c@225 48 unsigned int m_outputLength;
c@225 49 unsigned int m_decFactor;
c@225 50
c@225 51 double Input;
c@225 52 double Output ;
c@225 53
c@225 54 double o1,o2,o3,o4,o5,o6,o7;
c@225 55
c@225 56 double a[ 9 ];
c@225 57 double b[ 9 ];
c@225 58
c@225 59 double* decBuffer;
c@225 60 };
c@225 61
c@225 62 #endif //