2
|
1
|
|
2 /******************************************************************
|
|
3
|
|
4 iLBC Speech Coder ANSI-C Source Code
|
|
5
|
|
6 filter.h
|
|
7
|
|
8 Copyright (C) The Internet Society (2004).
|
|
9 All Rights Reserved.
|
|
10
|
|
11 ******************************************************************/
|
|
12
|
|
13
|
|
14
|
|
15
|
|
16
|
|
17
|
|
18 #ifndef __iLBC_FILTER_H
|
|
19 #define __iLBC_FILTER_H
|
|
20
|
|
21 void AllPoleFilter(float *InOut, /* (i/o) on entrance InOut[-orderCoef] to
|
|
22 InOut[-1] contain the state of the
|
|
23 filter (delayed samples). InOut[0] to
|
|
24 InOut[lengthInOut-1] contain the filter
|
|
25 input, on en exit InOut[-orderCoef] to
|
|
26 InOut[-1] is unchanged and InOut[0] to
|
|
27 InOut[lengthInOut-1] contain filtered
|
|
28 samples */
|
|
29 float *Coef, /* (i) filter coefficients, Coef[0] is assumed
|
|
30 to be 1.0 */
|
|
31 int lengthInOut, /* (i) number of input/output samples */
|
|
32 int orderCoef /* (i) number of filter coefficients */
|
|
33 );
|
|
34
|
|
35 void AllZeroFilter(float *In, /* (i) In[0] to In[lengthInOut-1] contain
|
|
36 filter input samples */
|
|
37 float *Coef, /* (i) filter coefficients (Coef[0] is assumed
|
|
38 to be 1.0) */
|
|
39 int lengthInOut, /* (i) number of input/output samples */
|
|
40 int orderCoef, /* (i) number of filter coefficients */
|
|
41 float *Out /* (i/o) on entrance Out[-orderCoef] to Out[-1]
|
|
42 contain the filter state, on exit Out[0]
|
|
43 to Out[lengthInOut-1] contain filtered
|
|
44 samples */
|
|
45 );
|
|
46
|
|
47 void ZeroPoleFilter(float *In, /* (i) In[0] to In[lengthInOut-1] contain filter
|
|
48 input samples In[-orderCoef] to In[-1]
|
|
49 contain state of all-zero section */
|
|
50 float *ZeroCoef, /* (i) filter coefficients for all-zero
|
|
51 section (ZeroCoef[0] is assumed to
|
|
52 be 1.0) */
|
|
53 float *PoleCoef, /* (i) filter coefficients for all-pole section
|
|
54 (ZeroCoef[0] is assumed to be 1.0) */
|
|
55 int lengthInOut, /* (i) number of input/output samples */
|
|
56 int orderCoef, /* (i) number of filter coefficients */
|
|
57 float *Out /* (i/o) on entrance Out[-orderCoef] to Out[-1]
|
|
58 contain state of all-pole section. On
|
|
59 exit Out[0] to Out[lengthInOut-1]
|
|
60 contain filtered samples */
|
|
61 );
|
|
62
|
|
63
|
|
64
|
|
65
|
|
66
|
|
67
|
|
68 void DownSample(float *In, /* (i) input samples */
|
|
69 float *Coef, /* (i) filter coefficients */
|
|
70 int lengthIn, /* (i) number of input samples */
|
|
71 float *state, /* (i) filter state */
|
|
72 float *Out /* (o) downsampled output */
|
|
73 );
|
|
74
|
|
75 #endif
|