Asterisk - The Open Source Telephony Project  18.5.0
filter.h
Go to the documentation of this file.
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(
22  float *InOut, /* (i/o) on entrance InOut[-orderCoef] to
23  InOut[-1] contain the state of the
24  filter (delayed samples). InOut[0] to
25  InOut[lengthInOut-1] contain the filter
26  input, on en exit InOut[-orderCoef] to
27  InOut[-1] is unchanged and InOut[0] to
28  InOut[lengthInOut-1] contain filtered
29  samples */
30  float *Coef,/* (i) filter coefficients, Coef[0] is assumed
31  to be 1.0 */
32  int lengthInOut,/* (i) number of input/output samples */
33  int orderCoef /* (i) number of filter coefficients */
34  );
35 
36  void AllZeroFilter(
37  float *In, /* (i) In[0] to In[lengthInOut-1] contain
38  filter input samples */
39  float *Coef,/* (i) filter coefficients (Coef[0] is assumed
40  to be 1.0) */
41  int lengthInOut,/* (i) number of input/output samples */
42  int orderCoef, /* (i) number of filter coefficients */
43  float *Out /* (i/o) on entrance Out[-orderCoef] to Out[-1]
44  contain the filter state, on exit Out[0]
45  to Out[lengthInOut-1] contain filtered
46  samples */
47  );
48 
49  void ZeroPoleFilter(
50  float *In, /* (i) In[0] to In[lengthInOut-1] contain filter
51  input samples In[-orderCoef] to In[-1]
52  contain state of all-zero section */
53  float *ZeroCoef,/* (i) filter coefficients for all-zero
54  section (ZeroCoef[0] is assumed to
55  be 1.0) */
56  float *PoleCoef,/* (i) filter coefficients for all-pole section
57  (ZeroCoef[0] is assumed to be 1.0) */
58  int lengthInOut,/* (i) number of input/output samples */
59  int orderCoef, /* (i) number of filter coefficients */
60  float *Out /* (i/o) on entrance Out[-orderCoef] to Out[-1]
61  contain state of all-pole section. On
62  exit Out[0] to Out[lengthInOut-1]
63  contain filtered samples */
64  );
65 
66 
67 
68 
69 
70 
71  void DownSample (
72  float *In, /* (i) input samples */
73  float *Coef, /* (i) filter coefficients */
74  int lengthIn, /* (i) number of input samples */
75  float *state, /* (i) filter state */
76  float *Out /* (o) downsampled output */
77  );
78 
79  #endif
void AllPoleFilter(float *InOut, float *Coef, int lengthInOut, int orderCoef)
Definition: filter.c:19
void ZeroPoleFilter(float *In, float *ZeroCoef, float *PoleCoef, int lengthInOut, int orderCoef, float *Out)
Definition: filter.c:80
void DownSample(float *In, float *Coef, int lengthIn, float *state, float *Out)
Definition: filter.c:110
void AllZeroFilter(float *In, float *Coef, int lengthInOut, int orderCoef, float *Out)
Definition: filter.c:52