GNU Radio's SATELLITES Package
viterbi.h
Go to the documentation of this file.
1/*
2 * K=7 r=1/2 Viterbi decoder in portable C
3 * Copyright Feb 2004, Phil Karn, KA9Q
4 * May be used under the terms of the GNU Lesser General Public License (LGPL)
5 */
6
7#ifndef VITERBI_H_
8#define VITERBI_H_
9
10#include <stdint.h>
11
12#define VITERBI_CONSTRAINT 7
13#define VITERBI_TAIL 1
14#define VITERBI_RATE 2
15
16/* r=1/2 k=7 convolutional encoder polynomials
17 * The NASA-DSN convention is to use V27POLYA inverted, then V27POLYB
18 * The CCSDS/NASA-GSFC convention is to use V27POLYB, then V27POLYA inverted
19 */
20#define V27POLYA 0x6d
21#define V27POLYB 0x4f
22
23void *create_viterbi_packed(int16_t len);
24int init_viterbi_packed(void *vp,int starting_state);
25int update_viterbi_packed(void *vp, unsigned char sym[], uint16_t npairs);
26int chainback_viterbi_packed(void *vp, unsigned char *data, unsigned int nbits,unsigned int endstate);
27void delete_viterbi_packed(void *vp);
28void encode_viterbi_packed(unsigned char * channel, unsigned char * data, int framebits);
29void set_viterbi_polynomial_packed(int16_t polys[2]);
30
31#endif // VITERBI_H_
void encode_viterbi_packed(unsigned char *channel, unsigned char *data, int framebits)
int update_viterbi_packed(void *vp, unsigned char sym[], uint16_t npairs)
void set_viterbi_polynomial_packed(int16_t polys[2])
void delete_viterbi_packed(void *vp)
int chainback_viterbi_packed(void *vp, unsigned char *data, unsigned int nbits, unsigned int endstate)
int init_viterbi_packed(void *vp, int starting_state)
void * create_viterbi_packed(int16_t len)