GNU Radio's GSM Package
viterbi_detector.h
Go to the documentation of this file.
1
/* -*- c++ -*- */
2
/*
3
* @file
4
* @author (C) 2009 Piotr Krysik <ptrkrysik@gmail.com>
5
* @section LICENSE
6
*
7
* Gr-gsm is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 3, or (at your option)
10
* any later version.
11
*
12
* Gr-gsm is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with gr-gsm; see the file COPYING. If not, write to
19
* the Free Software Foundation, Inc., 51 Franklin Street,
20
* Boston, MA 02110-1301, USA.
21
*/
22
23
/*
24
* viterbi_detector:
25
* This part does the detection of received sequnece.
26
* Employed algorithm is viterbi Maximum Likehood Sequence Estimation.
27
* At this moment it gives hard decisions on the output, but
28
* it was designed with soft decisions in mind.
29
*
30
* SYNTAX: void viterbi_detector(
31
* const gr_complex * input,
32
* unsigned int samples_num,
33
* gr_complex * rhh,
34
* unsigned int start_state,
35
* const unsigned int * stop_states,
36
* unsigned int stops_num,
37
* float * output)
38
*
39
* INPUT: input: Complex received signal afted matched filtering.
40
* samples_num: Number of samples in the input table.
41
* rhh: The autocorrelation of the estimated channel
42
* impulse response.
43
* start_state: Number of the start point. In GSM each burst
44
* starts with sequence of three bits (0,0,0) which
45
* indicates start point of the algorithm.
46
* stop_states: Table with numbers of possible stop states.
47
* stops_num: Number of possible stop states
48
*
49
*
50
* OUTPUT: output: Differentially decoded hard output of the algorithm:
51
* -1 for logical "0" and 1 for logical "1"
52
*
53
* SUB_FUNC: none
54
*
55
* TEST(S): Tested with real world normal burst.
56
*/
57
58
#ifndef INCLUDED_VITERBI_DETECTOR_H
59
#define INCLUDED_VITERBI_DETECTOR_H
60
61
void
viterbi_detector
(
const
gr_complex * input,
unsigned
int
samples_num, gr_complex * rhh,
unsigned
int
start_state,
const
unsigned
int
* stop_states,
unsigned
int
stops_num,
float
* output);
62
63
#endif
/* INCLUDED_VITERBI_DETECTOR_H */
viterbi_detector
void viterbi_detector(const gr_complex *input, unsigned int samples_num, gr_complex *rhh, unsigned int start_state, const unsigned int *stop_states, unsigned int stops_num, float *output)
lib
receiver
viterbi_detector.h
Generated by
1.9.8