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

Status
Not open for further replies.

hunter555persia

Member level 2
Joined
Jul 24, 2010
Messages
44
Helped
5
Reputation
10
Reaction score
5
Trophy points
1,288
Location
Iran
Visit site
Activity points
1,540
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 ???

Thanks for any reply.
 

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:
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.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…