annotate dsp/rateconversion/Decimator.h @ 22:f7edcd9138bd
* Add decimation filter for 8x decimation
author |
cannam |
date |
Thu, 10 Jan 2008 15:14:11 +0000 |
parents |
d7116e3183f8 |
children |
5bec06ecc88a |
rev |
line source |
cannam@0
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
cannam@0
|
2 /*
|
cannam@0
|
3 QM DSP Library
|
cannam@0
|
4
|
cannam@0
|
5 Centre for Digital Music, Queen Mary, University of London.
|
cannam@0
|
6 This file copyright 2005-2006 Christian Landone.
|
cannam@0
|
7 All rights reserved.
|
cannam@0
|
8 */
|
cannam@0
|
9
|
cannam@0
|
10 #ifndef DECIMATOR_H
|
cannam@0
|
11 #define DECIMATOR_H
|
cannam@0
|
12
|
cannam@0
|
13 class Decimator
|
cannam@0
|
14 {
|
cannam@0
|
15 public:
|
cannam@22
|
16 void process( const double* src, double* dst );
|
cannam@22
|
17 void doAntiAlias( const double* src, double* dst, unsigned int length );
|
cannam@0
|
18
|
cannam@0
|
19 Decimator( unsigned int inLength, unsigned int decFactor );
|
cannam@0
|
20 virtual ~Decimator();
|
cannam@0
|
21
|
cannam@22
|
22 int getFactor() const { return m_decFactor; }
|
cannam@22
|
23 static int getHighestSupportedFactor() { return 8; }
|
cannam@22
|
24
|
cannam@0
|
25 private:
|
cannam@0
|
26 void resetFilter();
|
cannam@0
|
27 void deInitialise();
|
cannam@0
|
28 void initialise( unsigned int inLength, unsigned int decFactor );
|
cannam@0
|
29
|
cannam@0
|
30 unsigned int m_inputLength;
|
cannam@0
|
31 unsigned int m_outputLength;
|
cannam@0
|
32 unsigned int m_decFactor;
|
cannam@0
|
33
|
cannam@0
|
34 double Input;
|
cannam@0
|
35 double Output ;
|
cannam@0
|
36
|
cannam@0
|
37 double o1,o2,o3,o4,o5,o6,o7;
|
cannam@0
|
38
|
cannam@0
|
39 double a[ 9 ];
|
cannam@0
|
40 double b[ 9 ];
|
cannam@0
|
41
|
cannam@0
|
42 double* decBuffer;
|
cannam@0
|
43 };
|
cannam@0
|
44
|
cannam@0
|
45 #endif //
|