FreeCalypso > hg > fc-tourmaline
comparison src/cs/layer1/gtt_include/ctm/diag_interleaver.h @ 0:4e78acac3d88
src/{condat,cs,gpf,nucleus}: import from Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:23:26 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4e78acac3d88 |
---|---|
1 /* | |
2 ******************************************************************************* | |
3 * | |
4 * COPYRIGHT (C) 2000 BY ERICSSON EUROLAB DEUTSCHLAND GmbH | |
5 * 90411 NUERNBERG, GERMANY, Tel Int + 49 911 5217 100 | |
6 * | |
7 * The program(s) may be used and/or copied only with the | |
8 * written permission from Ericsson or in accordance | |
9 * with the terms and conditions stipulated in the agreement or | |
10 * contract under which the program(s) have been supplied. | |
11 * | |
12 ******************************************************************************* | |
13 * | |
14 * File : diag_interleaver.h | |
15 * Purpose : diagonal (chain) interleaver routine | |
16 * | |
17 ******************************************************************************* | |
18 */ | |
19 #ifndef diag_interleaver_h | |
20 #define diag_interleaver_h "$Id: $" | |
21 | |
22 /* | |
23 ******************************************************************************* | |
24 * INCLUDE FILES | |
25 ******************************************************************************* | |
26 */ | |
27 | |
28 #include "init_interleaver.h" | |
29 | |
30 | |
31 /* | |
32 ******************************************************************************* | |
33 * DECLARATION OF PROTOTYPES | |
34 ******************************************************************************* | |
35 */ | |
36 | |
37 /* ---------------------------------------------------------------------- */ | |
38 /* diag_interleaver: */ | |
39 /* Diagonal (chain) interleaver, based on block-by-block processing. */ | |
40 /* An arbitrary number of bits can be interleaved, depending of the */ | |
41 /* value num_bits. The vector "out", which must have the same */ | |
42 /* length than "in", contains the interleaved samples. */ | |
43 /* All states (memory etc.) of the interleaver are stored in the variable */ | |
44 /* *intl_state. Therefore, a pointer to this variable must be handled to */ | |
45 /* this function. This variable initially has to be initialized by the */ | |
46 /* function init_interleaver, which offers also the possibility to */ | |
47 /* specify the dimensions of the interleaver matrix. */ | |
48 /* ---------------------------------------------------------------------- */ | |
49 | |
50 void diag_interleaver(WORD16 *out, | |
51 WORD16 *in, | |
52 WORD16 num_bits, | |
53 interleaver_state_t *intl_state); | |
54 | |
55 /* ---------------------------------------------------------------------- */ | |
56 /* diag_interleaver_flush: */ | |
57 /* Execution of the diagonal (chain) interleaver without writing in new */ | |
58 /* samples. The number of calculated output samples is returned via the */ | |
59 /* value *num_bits. */ | |
60 /* ---------------------------------------------------------------------- */ | |
61 | |
62 void diag_interleaver_flush(WORD16 *out, | |
63 WORD16 *num_bits, | |
64 interleaver_state_t *intl_state); | |
65 | |
66 #endif | |
67 |