Asterisk - The Open Source Telephony Project
GIT-master-f36a736
codecs
ilbc
anaFilter.c
Go to the documentation of this file.
1
2
/******************************************************************
3
4
iLBC Speech Coder ANSI-C Source Code
5
6
anaFilter.c
7
8
Copyright (C) The Internet Society (2004).
9
All Rights Reserved.
10
11
******************************************************************/
12
13
#include <string.h>
14
#include "
iLBC_define.h
"
15
16
/*----------------------------------------------------------------*
17
* LP analysis filter.
18
*---------------------------------------------------------------*/
19
20
void
anaFilter
(
21
float
*In,
/* (i) Signal to be filtered */
22
float
*
a
,
/* (i) LP parameters */
23
int
len
,
/* (i) Length of signal */
24
float
*Out,
/* (o) Filtered signal */
25
float
*mem
/* (i/o) Filter state */
26
){
27
int
i, j;
28
float
*po, *pi, *pm, *pa;
29
30
po = Out;
31
32
/* Filter first part using memory from past */
33
34
for
(i=0; i<
LPC_FILTERORDER
; i++) {
35
pi = &In[i];
36
pm = &mem[
LPC_FILTERORDER
-1];
37
pa =
a
;
38
*po=0.0;
39
40
41
42
43
44
for
(j=0; j<=i; j++) {
45
*po+=(*pa++)*(*pi--);
46
}
47
for
(j=i+1; j<
LPC_FILTERORDER
+1; j++) {
48
49
*po+=(*pa++)*(*pm--);
50
}
51
po++;
52
}
53
54
/* Filter last part where the state is entirely
55
in the input vector */
56
57
for
(i=
LPC_FILTERORDER
; i<
len
; i++) {
58
pi = &In[i];
59
pa =
a
;
60
*po=0.0;
61
for
(j=0; j<
LPC_FILTERORDER
+1; j++) {
62
*po+=(*pa++)*(*pi--);
63
}
64
po++;
65
}
66
67
/* Update state vector */
68
69
memcpy(mem, &In[
len
-
LPC_FILTERORDER
],
70
LPC_FILTERORDER
*
sizeof
(
float
));
71
}
anaFilter
void anaFilter(float *In, float *a, int len, float *Out, float *mem)
Definition:
anaFilter.c:20
len
static int len(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t buflen)
Definition:
func_strings.c:1567
iLBC_define.h
LPC_FILTERORDER
#define LPC_FILTERORDER
Definition:
iLBC_define.h:40
a
static struct test_val a
Definition:
test_linkedlists.c:46
Generated on Wed Dec 25 2024 20:04:15 for Asterisk - The Open Source Telephony Project by
1.9.4