FreeCalypso > hg > tcs211-fcmodem
comparison chipsetsw/layer1/gtt_include/ctm/diag_deinterleaver.h @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:509db1a7b7b8 |
---|---|
1 /* | |
2 | |
3 ******************************************************************************* | |
4 | |
5 * | |
6 | |
7 * COPYRIGHT (C) 2000 BY ERICSSON EUROLAB DEUTSCHLAND GmbH | |
8 | |
9 * 90411 NUERNBERG, GERMANY, Tel Int + 49 911 5217 100 | |
10 | |
11 * | |
12 | |
13 * The program(s) may be used and/or copied only with the | |
14 | |
15 * written permission from Ericsson or in accordance | |
16 | |
17 * with the terms and conditions stipulated in the agreement or | |
18 | |
19 * contract under which the program(s) have been supplied. | |
20 | |
21 * | |
22 | |
23 ******************************************************************************* | |
24 | |
25 * | |
26 | |
27 * File : diag_interleaver.h | |
28 | |
29 * Purpose : diagonal (chain) deinterleaver routine | |
30 | |
31 * | |
32 | |
33 ******************************************************************************* | |
34 | |
35 */ | |
36 | |
37 #ifndef diag_deinterleaver_h | |
38 | |
39 #define diag_deinterleaver_h "$Id: $" | |
40 | |
41 #include "l1_confg.h" | |
42 | |
43 /* | |
44 | |
45 ******************************************************************************* | |
46 | |
47 * INCLUDE FILES | |
48 | |
49 ******************************************************************************* | |
50 | |
51 */ | |
52 | |
53 | |
54 | |
55 #include "init_interleaver.h" | |
56 | |
57 | |
58 | |
59 /* | |
60 | |
61 ******************************************************************************* | |
62 | |
63 * DECLARATION OF PROTOTYPES | |
64 | |
65 ******************************************************************************* | |
66 | |
67 */ | |
68 | |
69 | |
70 | |
71 /* ---------------------------------------------------------------------- */ | |
72 | |
73 /* diag_deinterleaver: */ | |
74 | |
75 /* Corresponding deinterleaver to diag_interleaver. */ | |
76 | |
77 /* An arbitrary number of bits can be interleaved, depending of the */ | |
78 | |
79 /* length of the vector "in". The vector "out", which must have the same */ | |
80 | |
81 /* length than "in", contains the interleaved samples. */ | |
82 | |
83 /* All states (memory etc.) of the interleaver are stored in the variable */ | |
84 | |
85 /* *intl_state. Therefore, a pointer to this variable must be handled to */ | |
86 | |
87 /* this function. This variable initially has to be initialized by the */ | |
88 | |
89 /* function init_interleaver, which offers also the possibility to */ | |
90 | |
91 /* specify the dimensions of the deinterleaver matrix. */ | |
92 | |
93 /* ---------------------------------------------------------------------- */ | |
94 | |
95 | |
96 | |
97 void diag_deinterleaver(WORD16 *out, | |
98 | |
99 WORD16 *in, | |
100 | |
101 WORD16 num_valid_bits, | |
102 | |
103 interleaver_state_t *intl_state); | |
104 | |
105 | |
106 | |
107 /* ---------------------------------------------------------------------- */ | |
108 | |
109 /* shift_deinterleaver: */ | |
110 | |
111 /* Shift of the deinterleaver buffer by <shift> samples. */ | |
112 | |
113 /* shift>0 -> shift to the right */ | |
114 | |
115 /* shift<0 -> shift to the left */ | |
116 | |
117 /* The elements from <insert_bits> are inserted into the resulting space. */ | |
118 | |
119 /* The vector <insert_bits> must have at least abs(shift) elements. */ | |
120 | |
121 /* ---------------------------------------------------------------------- */ | |
122 | |
123 | |
124 | |
125 void shift_deinterleaver(WORD16 shift, | |
126 | |
127 WORD16 *insert_bits, | |
128 | |
129 interleaver_state_t *ptr_state); | |
130 | |
131 | |
132 #if(NEW_WKA_PATCH==1) | |
133 void just_shift(WORD16 shift, WORD16* in_bits, interleaver_state_t *intl_state); | |
134 #endif | |
135 | |
136 #if (TTY_SYNC_MCU == 1) | |
137 void flush_and_shift_deinterleaver(WORD16 shift,WORD16 *insert_bits,interleaver_state_t *ptr_state); | |
138 #endif | |
139 | |
140 #if(TTY_SYNC_MCU_2==1) | |
141 WORD16 flush_diag_deint(WORD16 *out, WORD16 *in, interleaver_state_t *intl_state); | |
142 void zero_pad_deint(interleaver_state_t *intl_state); | |
143 #endif | |
144 | |
145 #if(OPTIMISED==1) | |
146 void new_diag_deinterleaver(WORD16 *out, | |
147 WORD16 jump, | |
148 WORD16 *flush_vector, | |
149 WORD16 *in, | |
150 WORD16 num_valid_bits, | |
151 interleaver_state_t *intl_state); | |
152 #endif | |
153 | |
154 #endif | |
155 |