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