I have repeated the MAP decoder noise tests using the "optimum" lookup tables. It has taken awhile since I have to adjust the signal amplitude in one Xilinx chip and change the look-up tables in another Xilinx chip. Each of these involve long recompilations of the designs. Below are the amplitude values that I used
Eb/No (dB) A ------------------ -3.0 8 -2.5 9 -2.0 10 -1.5 11 -1.0 13 -0.5 14 0.0 14 0.5 15 1.0 15 1.5 16 2.0 16
The decoder uses six bit quantised samples (from -31 to +31). For -3.0 to -1.5 dB I had to reduce the amplitude from the "optimum" value so that I would not exceed the range of my lookup tables. You can get a plot of the results in
http://www.itr.unisa.edu.au/~steven/turbo/codec/map49o.ps
Also shown in the figure is a computer simulation of the Viterbi algorithm using block encoded data (infinite quantisation). The length is the same as the MAP decoder (N = 128). At low Eb/No the block Viterbi performs better then continuous Viterbi and worse at high Eb/No.
As you can see, the MAP decoder performs better than the Viterbi algorithm up to about -1.0 dB, after which it performs about 0.15 dB worse. The optimum tables certainly helped the MAP decoders performance (as I predicted in my previous report). I believe this 0.15 dB loss is due to limiting of the 8-bit state metrics. The 512 state, rate 1/4 code I'm using has dfree = 26. Multiplying dfree with the signal amplitude gives 416 which certainly exceeds the range of the decoder (which is 255). I am just doing a test where I've reduced A to 7. I'm getting a value of about 6.7e-4 at 2.0 dB compared to 5.8e-4 for ideal Viterbi (which gives a 0.07 dB implementation loss). Remember that MAP and Viterbi are very close to each other at low BER. I'm going to do a full test for A = 7 and give the results in my next report.
Steven S. Pietrobon, Satellite Communications Research Centre
University of South Australia, The Levels SA 5095, Australia.
steven@spri.levels.unisa.edu.au
http://www.itr.unisa.edu.au/~steven/