Continue to Site

# [SOLVED]Soft-decision Viterbi decoder for M-QAM modulation scheme

Status
Not open for further replies.

#### hunter555persia

##### Member level 2
In modulation schemes other than BPSK each symbol contains more than one bit. Now in soft-decision Viterbi algorithm the Euclidean distances (metrics) between the received symbol and all possible symbols are calculated. But since each symbol represents a few bits (the number of bits is not necessarily equal to the number of bits on each trellis branch) , the calculated metrics cannot be the branch metrics of one trellis step. So I can't figure out how to find branch metrics and consequently I can't calculate path metrics and can't do the trace back.

How is the soft-decision Viterbi done in a M-ary modulated system ???

Hi Hunter,

Please clarify what means "But since each symbol represents a few bits (the number of bits is not necessarily equal to the number of bits on each trellis branch) , the calculated metrics cannot be the branch metrics of one trellis step."
You are speaking about TCM, i guess. Right?
Regards

Z

Not TCM. in TCM the constellation size is chosen such that any codeword will be one symbol. for example for a R=2/3 convolution code, 8-QAM is suitable since it carries three bits and each codeword consists of 3 bits. so in this case the Euclidean distance calculated at receiver is the distance between codewords.
Now suppose that we send this R=2/3 code (3bit codewords) with 16-QAM modulation. In this case each symbol will carry 4 bits, so the Euclidean distance between symbols is NOT the distance between code words. Furthermore in this particular case every consecutive 3 symbols carry 12 bits, which would be 4 codewords. Now how is the Viterbi algorithm carried out in here ??

Thanks for any help

Hi Hunter,

The following is just an idea. Let's take your example.

You take 2 bits and form a 3-bit codeword with the 2/3 convolutional code. Then you take 4 of these and map these 12 bits in 3 symbols of 16-QAM.
The simple way would be to make hard detection of 16QAM and then standard detection of the convolutional code. But this is not the best. Right?

How to perform a really optimum decoding?
You could consider that the 2/3 convolutional code codes a set of 8 source bits into a set of 12 bits, and that they determine the selection of a "supersmbol" from an alphabet that consists in one of the 4096 (=16^3) possible sets of 3 consecutive 16-QAM signals.
With this point of view, you have a big TCM system. It expands a reference set of 256 (=2^(2*4)) symbols in a constellation of 4096. It could be decoded by standard Viterbi algorithm.

Maybe there is a simpler way to perform an optimal decoding.
Regards

Z

Last edited:
hunter555persia

### hunter555persia

Points: 2
The 8 bit source code seems to be a good idea. Thanks for the help.

Last edited:

Hi,

N.B.: I've corrected some wrong numbers in the above post.
Regards

Z

Is there anyway to decode this using the trellis of the original code. The 8 bit input makes a more complicated trellis.

Yes there is. LLR demodulation of QAM symbols. LLR demodulation is a bitwise demodulation method that gives you a reliability measure of bit estimates. By assigning a reference reliability to 0 and 1 branch metrics are calculated. Coding is identical to BPSK mode.

Status
Not open for further replies.