Add real ADSP-2191 assembly examples + open21xx assembler test
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
****************************************************************************
|
||||
|
||||
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'.
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user