Hi, Turbo codes implementation through BCJR algorithm for binary modulation is straightforward. Can someone inform me about how to do that for multi-level modulation, say QPSK or 16-QAM. Specifically, how does the decoder function. Any reference paper is also welcome. Thanks. _____________________________ Posted through www.DSPRelated.com

# Turbo codes for multi-level modulation

Started by ●January 2, 2014

Reply by ●January 2, 20142014-01-02

On Thu, 02 Jan 2014 19:21:48 -0600, "commsignal" <58672@dsprelated> wrote:>Hi, > Turbo codes implementation through BCJR algorithm for binary modulation >is straightforward. Can someone inform me about how to do that for >multi-level modulation, say QPSK or 16-QAM. Specifically, how does the >decoder function. Any reference paper is also welcome. >Thanks.There is no difference in the BCJR algorithm or anything else for Turbo Codes in higher-order modulation. The only difference is generating the soft decision metrics for each bit, and that's no different than for any other typical FEC with soft-decision input. You can look generally at soft-decision slicing for whatever modulation type you're interested in, and it will be the same or very similar for a Turbo Code. Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com

Reply by ●January 5, 20142014-01-05

>On Thu, 02 Jan 2014 19:21:48 -0600, "commsignal" <58672@dsprelated> >wrote: > >>Hi, >> Turbo codes implementation through BCJR algorithm for binarymodulation>>is straightforward. Can someone inform me about how to do that for >>multi-level modulation, say QPSK or 16-QAM. Specifically, how does the >>decoder function. Any reference paper is also welcome. >>Thanks. > >There is no difference in the BCJR algorithm or anything else for >Turbo Codes in higher-order modulation. The only difference is >generating the soft decision metrics for each bit, and that's no >different than for any other typical FEC with soft-decision input. > >You can look generally at soft-decision slicing for whatever >modulation type you're interested in, and it will be the same or very >similar for a Turbo Code. > > >Eric Jacobsen >Anchor Hill Communications >http://www.anchorhill.com >Hi Eric, Thanks for your input. What I want to know is that how should I compute gamma (the transition probabilities) and extrinsic information for each bit in multi-level modulations. Should I just compute gamma as usual ( p(r|bit).Apriori(bit) ) and the extrinsic information as LLR-Apriori(bit)-channel information. Now is this channel information equal to p(r|bit) above? Thanks again. _____________________________ Posted through www.DSPRelated.com

Reply by ●January 6, 20142014-01-06

On Sun, 05 Jan 2014 18:10:25 -0600, "commsignal" <58672@dsprelated> wrote:>>On Thu, 02 Jan 2014 19:21:48 -0600, "commsignal" <58672@dsprelated> >>wrote: >> >>>Hi, >>> Turbo codes implementation through BCJR algorithm for binary >modulation >>>is straightforward. Can someone inform me about how to do that for >>>multi-level modulation, say QPSK or 16-QAM. Specifically, how does the >>>decoder function. Any reference paper is also welcome. >>>Thanks. >> >>There is no difference in the BCJR algorithm or anything else for >>Turbo Codes in higher-order modulation. The only difference is >>generating the soft decision metrics for each bit, and that's no >>different than for any other typical FEC with soft-decision input. >> >>You can look generally at soft-decision slicing for whatever >>modulation type you're interested in, and it will be the same or very >>similar for a Turbo Code. >> >> >>Eric Jacobsen >>Anchor Hill Communications >>http://www.anchorhill.com >> > >Hi Eric, > Thanks for your input. What I want to know is that how should I compute >gamma (the transition probabilities) and extrinsic information for each bit >in multi-level modulations. Should I just compute gamma as usual ( >p(r|bit).Apriori(bit) ) and the extrinsic information as >LLR-Apriori(bit)-channel information. Now is this channel information equal >to p(r|bit) above? >Thanks again.Are you doing turbo demodulation/turbo equalization or just turbo decoding? If you're just doing turbo decoding, once the channel LLRs are generated by the slicer you don't need to revisit the modulation type during decoding. Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com

Reply by ●January 6, 20142014-01-06

>On Sun, 05 Jan 2014 18:10:25 -0600, "commsignal" <58672@dsprelated> >wrote: > >>>On Thu, 02 Jan 2014 19:21:48 -0600, "commsignal" <58672@dsprelated> >>>wrote: >>> >>>>Hi, >>>> Turbo codes implementation through BCJR algorithm for binary >>modulation >>>>is straightforward. Can someone inform me about how to do that for >>>>multi-level modulation, say QPSK or 16-QAM. Specifically, how does the >>>>decoder function. Any reference paper is also welcome. >>>>Thanks. >>> >>>There is no difference in the BCJR algorithm or anything else for >>>Turbo Codes in higher-order modulation. The only difference is >>>generating the soft decision metrics for each bit, and that's no >>>different than for any other typical FEC with soft-decision input. >>> >>>You can look generally at soft-decision slicing for whatever >>>modulation type you're interested in, and it will be the same or very >>>similar for a Turbo Code. >>> >>> >>>Eric Jacobsen >>>Anchor Hill Communications >>>http://www.anchorhill.com >>> >> >>Hi Eric, >> Thanks for your input. What I want to know is that how should Icompute>>gamma (the transition probabilities) and extrinsic information for eachbit>>in multi-level modulations. Should I just compute gamma as usual ( >>p(r|bit).Apriori(bit) ) and the extrinsic information as >>LLR-Apriori(bit)-channel information. Now is this channel informationequal>>to p(r|bit) above? >>Thanks again. > >Are you doing turbo demodulation/turbo equalization or just turbo >decoding? > >If you're just doing turbo decoding, once the channel LLRs are >generated by the slicer you don't need to revisit the modulation type >during decoding. > > >Eric Jacobsen >Anchor Hill Communications >http://www.anchorhill.com >It's just decoding. I might be confusing something. When you say, "The only difference is generating the soft decision metrics for each bit", what exactly do you mean? Thanks. _____________________________ Posted through www.DSPRelated.com

Reply by ●January 6, 20142014-01-06

>Hi, > Turbo codes implementation through BCJR algorithm for binarymodulation>is straightforward. Can someone inform me about how to do that for >multi-level modulation, say QPSK or 16-QAM. Specifically, how does the >decoder function. Any reference paper is also welcome. >Thanks. > >_____________________________ >Posted through www.DSPRelated.com >http://downloads.hindawi.com/journals/jece/2007/053517.pdf _____________________________ Posted through www.DSPRelated.com

Reply by ●January 6, 20142014-01-06

On Sun, 05 Jan 2014 23:00:55 -0600, "commsignal" <58672@dsprelated> wrote:>>On Sun, 05 Jan 2014 18:10:25 -0600, "commsignal" <58672@dsprelated> >>wrote: >> >>>>On Thu, 02 Jan 2014 19:21:48 -0600, "commsignal" <58672@dsprelated> >>>>wrote: >>>> >>>>>Hi, >>>>> Turbo codes implementation through BCJR algorithm for binary >>>modulation >>>>>is straightforward. Can someone inform me about how to do that for >>>>>multi-level modulation, say QPSK or 16-QAM. Specifically, how does the >>>>>decoder function. Any reference paper is also welcome. >>>>>Thanks. >>>> >>>>There is no difference in the BCJR algorithm or anything else for >>>>Turbo Codes in higher-order modulation. The only difference is >>>>generating the soft decision metrics for each bit, and that's no >>>>different than for any other typical FEC with soft-decision input. >>>> >>>>You can look generally at soft-decision slicing for whatever >>>>modulation type you're interested in, and it will be the same or very >>>>similar for a Turbo Code. >>>> >>>> >>>>Eric Jacobsen >>>>Anchor Hill Communications >>>>http://www.anchorhill.com >>>> >>> >>>Hi Eric, >>> Thanks for your input. What I want to know is that how should I >compute >>>gamma (the transition probabilities) and extrinsic information for each >bit >>>in multi-level modulations. Should I just compute gamma as usual ( >>>p(r|bit).Apriori(bit) ) and the extrinsic information as >>>LLR-Apriori(bit)-channel information. Now is this channel information >equal >>>to p(r|bit) above? >>>Thanks again. >> >>Are you doing turbo demodulation/turbo equalization or just turbo >>decoding? >> >>If you're just doing turbo decoding, once the channel LLRs are >>generated by the slicer you don't need to revisit the modulation type >>during decoding. >> >> >>Eric Jacobsen >>Anchor Hill Communications >>http://www.anchorhill.com >> > >It's just decoding. I might be confusing something. When you say, "The only >difference is generating the soft decision metrics for each bit", what >exactly do you mean? Thanks.For BPSK you generate the channel LLRs by scaling each received symbol to its corresponding bit. For QPSK you do the same but on two axes instead of one. For higher-order modulations you must take some additional care to really get a useful channel soft-decision LLR for each bit, but it is possible to do and depends on how the mapping is constructed. Once that is done and there is a channel LLR value for each received decoder input bit, that job doesn't have to be done again and the decoder doesn't really care what the modulation type was. Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com

Reply by ●January 7, 20142014-01-07

For BPSK you generate the channel LLRs by scaling each received symbol>to its corresponding bit. For QPSK you do the same but on two axes >instead of one. For higher-order modulations you must take some >additional care to really get a useful channel soft-decision LLR for >each bit, but it is possible to do and depends on how the mapping is >constructed. > >Once that is done and there is a channel LLR value for each received >decoder input bit, that job doesn't have to be done again and the >decoder doesn't really care what the modulation type was. > > >Eric Jacobsen >Anchor Hill Communications >http://www.anchorhill.com >Do you have some document which describes this in detail? Alexander's reference is for a different case and I'm still not very clear. _____________________________ Posted through www.DSPRelated.com

Reply by ●January 7, 20142014-01-07

On Mon, 06 Jan 2014 22:13:46 -0600, "commsignal" <58672@dsprelated> wrote:>For BPSK you generate the channel LLRs by scaling each received symbol >>to its corresponding bit. For QPSK you do the same but on two axes >>instead of one. For higher-order modulations you must take some >>additional care to really get a useful channel soft-decision LLR for >>each bit, but it is possible to do and depends on how the mapping is >>constructed. >> >>Once that is done and there is a channel LLR value for each received >>decoder input bit, that job doesn't have to be done again and the >>decoder doesn't really care what the modulation type was. >> >> >>Eric Jacobsen >>Anchor Hill Communications >>http://www.anchorhill.com >> > >Do you have some document which describes this in detail? Alexander's >reference is for a different case and I'm still not very clear.You could try some search terms like "high-order modulation soft-decision" or something like that. You just need a soft-decision (LLR) input value for each coded bit. For BPSK that's one bit per symbol, two for QPSK. For 16QAM there are two bits per axis, so you need to generate two LLR values per symbol per axis to get the four channel bits per symbol. For high-order modulations (e.g., 16QAM or above) specifically how to do the scaling for the LLR sometimes depends on the mapping of the constellation. Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com

Reply by ●January 7, 20142014-01-07

> Alexander's reference is for a different case and I'm still not veryclear. Why? QAM soft demapper does not depend on type of binary code. One nuance about high order constellations(>16QAM), bits are unequal protection, and some bits may be uncoded, like Ungerboeck set partitioning. _____________________________ Posted through www.DSPRelated.com