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