FreeCalypso > hg > fc-selenite
comparison src/cs/layer1/gtt_include/ctm/viterbi.h @ 0:b6a5e36de839
src/cs: initial import from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Jul 2018 04:39:26 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:b6a5e36de839 |
---|---|
1 /* | |
2 ******************************************************************************* | |
3 * | |
4 * COPYRIGHT (C) 2000 BY ERICSSON EUROLAB DEUTSCHLAND GmbH | |
5 * | |
6 * The program(s) may be used and/or copied only with the | |
7 * written permission from Ericsson or in accordance | |
8 * with the terms and conditions stipulated in the agreement or | |
9 * contract under which the program(s) have been supplied. | |
10 * | |
11 ******************************************************************************* | |
12 * | |
13 * File : viterbi.h | |
14 * Purpose : Header file for viterbi.c | |
15 * Author : Francisco Javier Gil Gomez | |
16 * | |
17 * Revision history | |
18 * | |
19 * $Log: $ | |
20 * | |
21 ******************************************************************************* | |
22 */ | |
23 | |
24 #ifndef viterbi_h | |
25 #define viterbi_h "$Id: $" | |
26 | |
27 #include <stdio.h> | |
28 #include <math.h> | |
29 | |
30 #include "conv_poly.h" /* definition of viterbi_t */ | |
31 | |
32 | |
33 /***********************************************************************/ | |
34 /* viterbi_init() */ | |
35 /* ************** */ | |
36 /* Initialization of the Viterbi decoder. */ | |
37 /* */ | |
38 /* output variables: */ | |
39 /* *viterbi_state initialized state variable of the decoder */ | |
40 /* */ | |
41 /***********************************************************************/ | |
42 | |
43 void viterbi_init(viterbi_t* viterbi_state); | |
44 | |
45 | |
46 /***********************************************************************/ | |
47 /* viterbi_reinit() */ | |
48 /* **************** */ | |
49 /* Re-Initialization of the Viterbi decoder. This function should be */ | |
50 /* used for re-setting a Viterbi decoder that has already been */ | |
51 /* initialized. In contrast to viterbi_init(), this reinit function */ | |
52 /* does not calculate the values of all members of viterbi_state that */ | |
53 /* do not change during the execution of the Viterbi algorithm. */ | |
54 /* */ | |
55 /* output variables: */ | |
56 /* *viterbi_state initialized state variable of the decoder */ | |
57 /* */ | |
58 /***********************************************************************/ | |
59 | |
60 void viterbi_reinit(viterbi_t* viterbi_state); | |
61 | |
62 | |
63 /***********************************************************************/ | |
64 /* viterbi_exec() */ | |
65 /* ************** */ | |
66 /* Execution of the Viterbi decoder */ | |
67 /* */ | |
68 /* input variables: */ | |
69 /* inputword Vector with gross bits */ | |
70 /* length_input Number of valid gross bits in vector inputword.*/ | |
71 /* length_input must be an integer multiple of */ | |
72 /* CHC_RATE */ | |
73 /* */ | |
74 /* output variables: */ | |
75 /* out Vector with the decoded net bits. The net bits */ | |
76 /* are either 0 or 1. */ | |
77 /* *num_valid_out_bits Number of valid bits in vector out */ | |
78 /* */ | |
79 /* input/output variables: */ | |
80 /* *viterbi_state State variable of the decoder */ | |
81 /* */ | |
82 /***********************************************************************/ | |
83 | |
84 void viterbi_exec(WORD16* inputword, WORD16 length_input, | |
85 WORD16* out, WORD16* num_valid_out_bits, | |
86 viterbi_t* viterbi_state); | |
87 | |
88 #endif |