FreeCalypso > hg > gsm-codec-lib
comparison libtwamr/calc_cor.c @ 325:67c31802392b
libtwamr: integrate calc_cor.c
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 18 Apr 2024 20:12:48 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
324:dc3b7caa59c4 | 325:67c31802392b |
---|---|
1 /* | |
2 ******************************************************************************** | |
3 * | |
4 * GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001 | |
5 * R99 Version 3.3.0 | |
6 * REL-4 Version 4.1.0 | |
7 * | |
8 ******************************************************************************** | |
9 * | |
10 * File : calc_cor.c | |
11 * Purpose : Calculate all correlations for prior the OL LTP | |
12 * | |
13 ******************************************************************************** | |
14 */ | |
15 | |
16 /* | |
17 ******************************************************************************** | |
18 * MODULE INCLUDE FILE AND VERSION ID | |
19 ******************************************************************************** | |
20 */ | |
21 #include "namespace.h" | |
22 #include "calc_cor.h" | |
23 | |
24 /* | |
25 ******************************************************************************** | |
26 * INCLUDE FILES | |
27 ******************************************************************************** | |
28 */ | |
29 #include "typedef.h" | |
30 #include "basic_op.h" | |
31 #include "oper_32b.h" | |
32 #include "no_count.h" | |
33 #include "cnst.h" | |
34 | |
35 /* | |
36 ******************************************************************************** | |
37 * PUBLIC PROGRAM CODE | |
38 ******************************************************************************** | |
39 */ | |
40 /************************************************************************* | |
41 * | |
42 * FUNCTION: comp_corr | |
43 * | |
44 * PURPOSE: Calculate all correlations of scal_sig[] in a given delay | |
45 * range. | |
46 * | |
47 * DESCRIPTION: | |
48 * The correlation is given by | |
49 * cor[t] = <scal_sig[n],scal_sig[n-t]>, t=lag_min,...,lag_max | |
50 * The functions outputs the all correlations | |
51 * | |
52 *************************************************************************/ | |
53 void comp_corr ( | |
54 Word16 scal_sig[], /* i : scaled signal. */ | |
55 Word16 L_frame, /* i : length of frame to compute pitch */ | |
56 Word16 lag_max, /* i : maximum lag */ | |
57 Word16 lag_min, /* i : minimum lag */ | |
58 Word32 corr[]) /* o : correlation of selected lag */ | |
59 { | |
60 Word16 i, j; | |
61 Word16 *p, *p1; | |
62 Word32 t0; | |
63 | |
64 for (i = lag_max; i >= lag_min; i--) | |
65 { | |
66 p = scal_sig; move16 (); | |
67 p1 = &scal_sig[-i]; move16 (); | |
68 t0 = 0; move32 (); | |
69 | |
70 for (j = 0; j < L_frame; j++, p++, p1++) | |
71 { | |
72 t0 = L_mac (t0, *p, *p1); | |
73 } | |
74 corr[-i] = t0; move32 (); | |
75 } | |
76 | |
77 return; | |
78 } |