VITERBI DECODER FOR LRPT


Viterbi encoding a data stream is a relatively simple task. For the Metop spec viterbi scheme, where two symbols
are generated for each original bit, the circuit below describes one possible method. Constraint length refers to
how many consecutive bits are involved in the encoder. The rate=1/2 refers to the fact that two symbols are output
for one input bit. The two polynomials, G1 and G2, are simply a fancy way of showing which points in the shift
register the XOR gates are connected to.
Unfortunately, decoding a viterbi encoded stream is much more difficult. The good new is you don't have to! There
is a free piece of software that has been available for years that can do the job for you. The Phil Karn suite of
forward-error-correction routines, located here, are available under the terms of the GNU Public License (Lesser).
This very good software is configured up to install under a Unix/Linux environment, but a little perseverence and care
will allow you to carve out the essentials if you choose to stay in the Windows world.
This (and any other) viterbi decoder needs to have the input symbols presented to it in the corret order. Depending
on what you are reading, the literature refers to this as symbol phasing or node synchronisation. The decoder needs
to send the G1 symbols to the G1 path and the G2 symbols to the G2 path! If the Metop format stream was currently
on the unique word detector and de-interleaver stages would have already delivered you the data in G1,G2... order.
But in the present Meteor-specific format the symbols have arrived straight from the QPSK demodulator. So the
QPSK mapping needs to resolved. The first thing to note is that the viterbi algorithm used here is 'transparent'. This
simply means that if the input symbols are inverted, the resulting output bit will be inverted but otherwise correctly
resolved by the viterbi process.

BACK