Files

81 lines
2.7 KiB
Plaintext
Raw Permalink Normal View History

****************************************************************************
Viterbi.asm Soft Decision GSM Viterbi Decoder
Analog Devices, Inc.
DSP Division
Three Technology Way
P.O. Box 9106
Norwood, MA 02062
21-JUNE-2001 BJM
This directory contains an example ADSP-2191 single-core subroutine
that implements a soft decision half-rate, soft-decision, GSM Viterbi decoder.
Files contained in this directory:
VITERBI.dpj VisualDSP project file
VITERBI.asm ADSP-2191 source for Viterbi
ADSP-2191.ldf Linker description file
GSM_REC.dat Soft decision data for Viterbi
_________________________________________________________________
CONTENTS
I. FUNCTION/ALGORITHM DESCRIPTION
II. IMPLEMENTATION DESCRIPTION
III. DESCRIPTION OF INPUT DATA
I. FUNCTION/ALGORITHM DESCRIPTION
The project Viterbi.dpj contains an implementation of a single-core
subroutine that implements a half-rate, soft-decision, GSM Vitertbi decoder.
II. IMPLEMENTATION DESCRIPTION
1. METRIC UPDATE:
-----------------
The metric update section accumulates branch distance metrics into path metrics.
The lowest path metric at the end of processing is considered to denote the
path most likely to contain the correct decoding of the input.
Each element of the state_trans[] array represents a state transition.
Each of the 16-bits in an element of state_trans[] represents one of the
16 possible new states, and indicates which of two possible states
is the most likely previous state.
2. TRACE BACK:
--------------
The traceback traces back through the state_trans[] array. Starting
with a new state, the bits of "state" are rotated to compute the
position of the bit in the current state_trans[] array element that
represents this new state. This bit indicates which state was previous.
We update the state to the previous state using this bit.
During any state transition, the most significant of the four bits in
"state" is the most recent input bit to the convolutional encoder.
This is the bit which is added to the output of the decoder.
III. DESCRIPTION OF INPUT DATA
1. INPUT SAMPLES:
-----------------
The Viterbi decoder routine expects input data which conforms to the following criteria:
The class 1 bits are encoded with the 1/2 rate convolutional code defined by
the polynomials:
G0 = 1 + D3+ D4
G1 = 1 + D + D3+ D4
Encoded outputs are transmitted as signed antipodal analog signals. They are received at
the decoder and quantized. The quantized number is represented in a 2's
compliment giving the range of -8 to 7. The process of quantizing a binary analog signal
with a multi-bit qunatizer is called soft decision. This soft decision is stored in the
array 'SOFT_DEC_INPUT'.