annotate dsp/rateconversion/Decimator.h @ 247:a98a8fe967c0

* Add decimation filter for 8x decimation
author Chris Cannam <c.cannam@qmul.ac.uk>
date Thu, 10 Jan 2008 15:14:11 +0000
parents 49844bc8a895
children 5bec06ecc88a
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@225 6 This file copyright 2005-2006 Christian Landone.
c@225 7 All rights reserved.
c@225 8 */
c@225 9
c@225 10 #ifndef DECIMATOR_H
c@225 11 #define DECIMATOR_H
c@225 12
c@225 13 class Decimator
c@225 14 {
c@225 15 public:
c@247 16 void process( const double* src, double* dst );
c@247 17 void doAntiAlias( const double* src, double* dst, unsigned int length );
c@225 18
c@225 19 Decimator( unsigned int inLength, unsigned int decFactor );
c@225 20 virtual ~Decimator();
c@225 21
c@247 22 int getFactor() const { return m_decFactor; }
c@247 23 static int getHighestSupportedFactor() { return 8; }
c@247 24
c@225 25 private:
c@225 26 void resetFilter();
c@225 27 void deInitialise();
c@225 28 void initialise( unsigned int inLength, unsigned int decFactor );
c@225 29
c@225 30 unsigned int m_inputLength;
c@225 31 unsigned int m_outputLength;
c@225 32 unsigned int m_decFactor;
c@225 33
c@225 34 double Input;
c@225 35 double Output ;
c@225 36
c@225 37 double o1,o2,o3,o4,o5,o6,o7;
c@225 38
c@225 39 double a[ 9 ];
c@225 40 double b[ 9 ];
c@225 41
c@225 42 double* decBuffer;
c@225 43 };
c@225 44
c@225 45 #endif //