FreeCalypso > hg > fc-selenite
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/layer1/gtt_include/ctm/viterbi.h Sun Jul 15 04:39:26 2018 +0000 @@ -0,0 +1,88 @@ +/* +******************************************************************************* +* +* COPYRIGHT (C) 2000 BY ERICSSON EUROLAB DEUTSCHLAND GmbH +* +* The program(s) may be used and/or copied only with the +* written permission from Ericsson or in accordance +* with the terms and conditions stipulated in the agreement or +* contract under which the program(s) have been supplied. +* +******************************************************************************* +* +* File : viterbi.h +* Purpose : Header file for viterbi.c +* Author : Francisco Javier Gil Gomez +* +* Revision history +* +* $Log: $ +* +******************************************************************************* +*/ + +#ifndef viterbi_h +#define viterbi_h "$Id: $" + +#include <stdio.h> +#include <math.h> + +#include "conv_poly.h" /* definition of viterbi_t */ + + +/***********************************************************************/ +/* viterbi_init() */ +/* ************** */ +/* Initialization of the Viterbi decoder. */ +/* */ +/* output variables: */ +/* *viterbi_state initialized state variable of the decoder */ +/* */ +/***********************************************************************/ + +void viterbi_init(viterbi_t* viterbi_state); + + +/***********************************************************************/ +/* viterbi_reinit() */ +/* **************** */ +/* Re-Initialization of the Viterbi decoder. This function should be */ +/* used for re-setting a Viterbi decoder that has already been */ +/* initialized. In contrast to viterbi_init(), this reinit function */ +/* does not calculate the values of all members of viterbi_state that */ +/* do not change during the execution of the Viterbi algorithm. */ +/* */ +/* output variables: */ +/* *viterbi_state initialized state variable of the decoder */ +/* */ +/***********************************************************************/ + +void viterbi_reinit(viterbi_t* viterbi_state); + + +/***********************************************************************/ +/* viterbi_exec() */ +/* ************** */ +/* Execution of the Viterbi decoder */ +/* */ +/* input variables: */ +/* inputword Vector with gross bits */ +/* length_input Number of valid gross bits in vector inputword.*/ +/* length_input must be an integer multiple of */ +/* CHC_RATE */ +/* */ +/* output variables: */ +/* out Vector with the decoded net bits. The net bits */ +/* are either 0 or 1. */ +/* *num_valid_out_bits Number of valid bits in vector out */ +/* */ +/* input/output variables: */ +/* *viterbi_state State variable of the decoder */ +/* */ +/***********************************************************************/ + +void viterbi_exec(WORD16* inputword, WORD16 length_input, + WORD16* out, WORD16* num_valid_out_bits, + viterbi_t* viterbi_state); + +#endif