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 //
|