DSPRelated.com
Forums

Advantages of Gray Coding for QAM

Started by Deamon January 6, 2011
On 01/08/2011 09:02 PM, dvsarwate wrote:
> On Jan 8, 5:05 pm, Randy Yates<ya...@ieee.org> wrote: > >> I asked what kind of modulator there could be, other than a linear modulator, >> for QAM. Now maybe I missed it (I seem to be missing a lot lately...), but I >> don't see an answer to that question here. > > All right, regardless of whatever else anyone may have told you, QAM > **is not** a linear modulation scheme. (See Eric Jacobsen's comments > re this matter too). There are 4 inputs to a 16-QAM transmitter with > each input being restricted to have value 0 or 1, and the output is > *not* a linear function of these 4 inputs, whether you take them > singly or in pairs or collectively.
What is your definition of "linear modulation?" One definition that could be used is from [vantrees, p.467]: The modulated signal is s(t, a(t)). Denote the component of s(t, a(t)) that does not depend on a(t) as c_o(t). If the signal [s(t, a(t)) - c_o(t)] obeys superposition, then s(t, a(t)) is a linear modulation system. So, under that definition, I claim that QAM is a linear modulation scheme as follows. Let the nth input to a 16-QAM modulator be a(t) = (p[n(t)], q[n(t)], r[n(t)], and s[n(t)]), each of which is from the set of two integers (0, 1), where n denotes the symbol index. Let the output of the modulator s(t, a(t)) be denoted as s(t, a(t)) = x(t) + i*y(t), where i = sqrt{-1} and where x(t) = (-3 + 2*A[n(t)]) * v(t - n(t)*T), A[n(t)] = 2*p[n(t)] + q[n(t)], v(t) = pulse shape, T = symbol period, n(t) = floor(t/T) Similarly y(t) = (-3 + 2*B[n(t)]) * v(t - m*T), B[n(t)] = 2*r[n(t)] + s[n(t)] Now we can rewrite this as s(t, a(t)) = c_a(t) + c_o(t) where c_a(t) is the part of the signal that depends on the input a(t), c_a(t) = 2*A[n(t)]*v(t - n(t)*T) + i*2*B[n(t)]*v(t - n(t)*T) and c_o(t) is the "other" part c_o(t) = [-3 *v(t - n(t)*T)] * (1 + i). Then since c_a(t) obeys the superposition principle, 16-QAM is a linear modulator.
> If you nevertheless insist > that 16-QAM is a linear modulation scheme, then please > tell us what the output signal is for inputs > > (1,1,0,0) > > (0,0,1,1) > > (1,1,1,1) > > Now, prove that the third output of the three that I have > asked you to provide is the sum of the first two outputs > that you have provided us. After all, a linear scheme > -- call it L for convenience -- should have the property > L(x+y) = L(x) + L(y), no?
No, not by the definition above. I think that's the problem with this "linear modulation" thing - it's not well defined across the profession. I actually was initially thinking of Proakis' definition [proakiscomm], but found it his "definition" was weak.
>> Do you know where I can find some of Jesus' spit? > > Huh?
A reference to the blind being healed: [bible, Mark 8:23]
> > --Dilip Sarwate >
--Randy @book{vantrees, title = "Detection, Estimation, and Modulation Theory, Part I", author = "Harry L. Van Trees", publisher = "Wiley", year = "2001"} @BOOK{proakiscomm, title = "{Digital Communications}", author = "John~G.~Proakis", publisher = "McGraw-Hill", edition = "fourth", year = "2001"} @book{bible, title = "Bible}, author = "God", year = "all"} -- Randy Yates % "My Shangri-la has gone away, fading like Digital Signal Labs % the Beatles on 'Hey Jude'" yates@digitalsignallabs.com % http://www.digitalsignallabs.com % 'Shangri-La', *A New World Record*, ELO
On Jan 10, 10:15&#4294967295;am, Randy Yates <ya...@ieee.org> wrote at length:

<<<everything snipped except the most relevant part>>>

Randy:

In my previous postings, I tried to explain
-- apparently very unsuccessfully as far as
you are concerned -- that there was only a
restricted sense in which QAM could be
considered a linear modulation.  You rejected
my comments outright, complaining that I
had not answered the question that you
had raised, and had instead introduced
irrelevant stuff:

Randy>>  You seem to be putting this intermediate
Randy>>  A thingie in the mix (w = -3 + 2A, A = 0, 1, 2, 3)

Now you quote at great length from, or make
reference to, famous authorities to prove that
I am mistaken, and write

Randy>> ....  p[n(t)], q[n(t)], .....
Randy>>  each of which is from the set of
Randy>>  two integers (0, 1),
..............
Randy>>  x(t) = (-3 + 2*A[n(t)]) * v(t - n(t)*T)
Randy>> A[n(t)] = 2*p[n(t)] + q[n(t)]

which is pretty much what I said, except
for the v(t) stuff which I said in one of my
postings is really not an issue, ****AND****
I said we need to interpret the two bits (p,q)
as Gray-coded while you are using standard
binary coding 2p+q in your writings.

I agree that what you have written can be
viewed as linear modulation, though again
linearity is in a restricted sense since p and q
are constrained to have value 0 and 1 only:
true linearity requires something like
L(x+y) = L(x) + L(y) to hold for *all* x and y,
and if you want to make the counter-argument
that we are restricting x and y to be elements
of the binary field GF(2), then the + in x+y
better be an XOR!

What I *vehemently* disagree with is that
your notation and your linear modulation
describes 16-QAM as most people use and
understand the term.  Your assignment of
bit values to constellation points is
non-optimal since closest neighbors
can differ in two bit positions rather than a
single bit position as happens when (p,q)
is interpreted as a Gray-coded number
(cf. Tim Wescott's comments in this thread
too).  When people say 16-QAM, the Gray
coding required for best performance is
generally assumed to be in use.  Now,
****if**** we interpret the input bit
pair (p,q) as a Gray-coded integer A,
then the standard description of 16-QAM
(with optimal assignment of bit values to
constellation points) *can* be viewed as
a linear modulation with respect to the value
of A (though not with respect to (p,q)).  I
urge you to read and ponder Eric Jacobsen's
cogent comments  earlier in this thread (and
please listen to his advice if you prefer to ignore
mine)

Eric>>  disliking the whole idea of "linear"
Eric>>  or "non-linear" modulators or
Eric>>  modulation.   In my experience
Eric>>  those terms add more confusion
Eric>>  than clarification, and are often
Eric>>  misused, anyway.

You are almost there since you write

Randy>>  I think that's the problem with this
Randy>>  "linear modulation" thing - it's not
Randy>>  well defined across the profession.

Now take the last step and stop using the term.
Whether QAM is a linear modulation or not
makes no difference to the world, and all your
electronic gadgets that do use QAM will not
stop working upon discovering that they are
not a "linear" modulation after all....

--Dilip Sarwate

On 01/10/2011 12:44 PM, dvsarwate wrote:
> On Jan 10, 10:15 am, Randy Yates<ya...@ieee.org> wrote at length: > > <<<everything snipped except the most relevant part>>> > > Randy: > > In my previous postings, I tried to explain -- apparently very > unsuccessfully as far as you are concerned -- that there was only a > restricted sense in which QAM could be considered a linear > modulation.
Hi Dilip, What in fact you have recently stated is that it "**is not**" a linear modulation, which is in opposition to what I've read, so naturally I'm trying to reconcile if and what I've misunderstood.
> You rejected my comments outright, complaining that I had not > answered the question that you had raised,
If you feel I rejected your comments, you are mistaken. I did not understand them fully, and I didn't see the connection to (what I considered) my point of confusion. So, that's right - I did come back to my question. If someone asks a valid question, why shouldn't it be answered (on an academic basis, i.e.)? Was it a stupid question? Was it a meaningless question in the context? I would think, as a professor, you would like people to think for themselves and not just swallow what is said whole.
> and had instead introduced irrelevant stuff: > > Randy>> You seem to be putting this intermediate > Randy>> A thingie in the mix (w = -3 + 2A, A = 0, 1, 2, 3) > > Now you quote at great length from, or make > reference to, famous authorities to prove that > I am mistaken, and write > > Randy>> .... p[n(t)], q[n(t)], ..... > Randy>> each of which is from the set of > Randy>> two integers (0, 1), > .............. > Randy>> x(t) = (-3 + 2*A[n(t)]) * v(t - n(t)*T) > Randy>> A[n(t)] = 2*p[n(t)] + q[n(t)] > > which is pretty much what I said, except > for the v(t) stuff which I said in one of my > postings is really not an issue, ****AND**** > I said we need to interpret the two bits (p,q) > as Gray-coded while you are using standard > binary coding 2p+q in your writings. > > I agree that what you have written can be > viewed as linear modulation, though again > linearity is in a restricted sense since p and q > are constrained to have value 0 and 1 only: > true linearity requires something like > L(x+y) = L(x) + L(y) to hold for *all* x and y, > and if you want to make the counter-argument > that we are restricting x and y to be elements > of the binary field GF(2), then the + in x+y > better be an XOR! > > What I *vehemently* disagree with is that > your notation and your linear modulation > describes 16-QAM as most people use and > understand the term. Your assignment of > bit values to constellation points is > non-optimal since closest neighbors > can differ in two bit positions rather than a > single bit position as happens when (p,q) > is interpreted as a Gray-coded number > (cf. Tim Wescott's comments in this thread > too). When people say 16-QAM, the Gray > coding required for best performance is > generally assumed to be in use. Now, > ****if**** we interpret the input bit > pair (p,q) as a Gray-coded integer A, > then the standard description of 16-QAM > (with optimal assignment of bit values to > constellation points) *can* be viewed as > a linear modulation with respect to the value > of A (though not with respect to (p,q)). I > urge you to read and ponder Eric Jacobsen's > cogent comments earlier in this thread (and > please listen to his advice if you prefer to ignore > mine)
I think I now see your points. If I may rephrase: a) 16-QAM is not a linear modulation if you consider the [inverse] Gray code mapping part of the modulator. b) The initial, transmitter-side map is actually an _inverse_ Gray code map that takes bits that are Gray coded and turns them into a linear sequence, e.g., 00 -> 00 01 -> 01 11 -> 10 10 -> 11
> Eric>> disliking the whole idea of "linear" > Eric>> or "non-linear" modulators or > Eric>> modulation. In my experience > Eric>> those terms add more confusion > Eric>> than clarification, and are often > Eric>> misused, anyway. > > You are almost there since you write > > Randy>> I think that's the problem with this > Randy>> "linear modulation" thing - it's not > Randy>> well defined across the profession. > > Now take the last step and stop using the term.
To which I point out that, in your original post to which I responded, YOU are the one who brought up the term "linear modulator."
> Whether QAM is a linear modulation or not makes no difference to the > world, and all your electronic gadgets that do use QAM will not stop > working upon discovering that they are not a "linear" modulation > after all....
It does matter in the gadget world since a linear modulation requires a linear, or near-linear power amplifier, while a non-linear modulation (e.g., PSK) does not. This matters greatly in the real world since it determines how much real power is required for the transmitter and thus can drive things like talk time, profits, etc. -- Randy Yates % "My Shangri-la has gone away, fading like Digital Signal Labs % the Beatles on 'Hey Jude'" yates@digitalsignallabs.com % http://www.digitalsignallabs.com % 'Shangri-La', *A New World Record*, ELO
On Mon, 10 Jan 2011 13:44:54 -0500, Randy Yates <yates@ieee.org>
wrote:

>On 01/10/2011 12:44 PM, dvsarwate wrote:
...buncha stuff snipped...
>> Whether QAM is a linear modulation or not makes no difference to the >> world, and all your electronic gadgets that do use QAM will not stop >> working upon discovering that they are not a "linear" modulation >> after all.... > >It does matter in the gadget world since a linear modulation requires >a linear, or near-linear power amplifier, while a non-linear >modulation (e.g., PSK) does not.
And herein lies an example of the confusion. PSK as most often used in the industry DOES require a linear PA if any sort of common transmit mask or sidelobe control is expected. The only example I know of PSK that is commonly used with, e.g., a Class C amplifier is OQPSK, which is a special case of PSK and is in many aspects indistinguishable from MSK. So MSK, OQPSK, QPSK can all be (and I have done this in practice many times) produced from the same modulator. As Dilip suggested, my preference is that this terminology just go away, as it's hard to tell what somebody really means when they use it. I think of PSK as a "constant modulus" modulation. Some people may think of it as non-linear, but it generally requires the same sorts of design attention and analog circuitry as QAM or even just AM. This is due to the fact that the envelope still modulates, e,g, it can go to zero whenever there is a 180-degree phase transition.
>This matters greatly in the real world since it determines how much >real power is required for the transmitter and thus can drive things >like talk time, profits, etc.
Refering to the PA as linear or not, i.e., Class A, AB, C, etc., makes perfect sense and is widely unambiguous. Many modulations that people refer to as non-linear either require or can be generated with linear PAs, and many modulations that people think of as "linear" may require a linear PA but don't necessarily, as Dilip demonstrated, have linear properties. I've found a number of differing definitions for what makes a modulation "linear" or "non-linear", and not only do they not necessarily agree, they don't seem to make much difference in how one goes about analyzing, architecting, or implementing a system. So, I'm not sure why it matters, which is good, because there's an awful lot of confusion around the topic. So it's a little strange in that it's not that big of a deal to clear up the confusion because it really doesn't affect much, anyway. Well, other than helping remove ambiguity from discussions. ;) Eric Jacobsen Minister of Algorithms Abineau Communications http://www.abineau.com
On 01/10/2011 03:51 PM, Eric Jacobsen wrote:
> On Mon, 10 Jan 2011 13:44:54 -0500, Randy Yates<yates@ieee.org> > wrote: > >> On 01/10/2011 12:44 PM, dvsarwate wrote: > > ...buncha stuff snipped... > >>> Whether QAM is a linear modulation or not makes no difference to the >>> world, and all your electronic gadgets that do use QAM will not stop >>> working upon discovering that they are not a "linear" modulation >>> after all.... >> >> It does matter in the gadget world since a linear modulation requires >> a linear, or near-linear power amplifier, while a non-linear >> modulation (e.g., PSK) does not. > > And herein lies an example of the confusion. PSK as most often used > in the industry DOES require a linear PA if any sort of common > transmit mask or sidelobe control is expected. The only example I > know of PSK that is commonly used with, e.g., a Class C amplifier is > OQPSK, which is a special case of PSK and is in many aspects > indistinguishable from MSK. So MSK, OQPSK, QPSK can all be (and I > have done this in practice many times) produced from the same > modulator. > > As Dilip suggested, my preference is that this terminology just go > away, as it's hard to tell what somebody really means when they use > it. > > I think of PSK as a "constant modulus" modulation.
Indeed that's what John Treichler and Goddard capitalized on in their blind adaptation algorithm (CMA).
> Some people may think of it as non-linear, but it generally requires > the same sorts of design attention and analog circuitry as QAM or > even just AM. This is due to the fact that the envelope still > modulates, e,g, it can go to zero whenever there is a 180-degree > phase transition.
Right - I forgot about that.
>> This matters greatly in the real world since it determines how much >> real power is required for the transmitter and thus can drive things >> like talk time, profits, etc.
> Refering to the PA as linear or not, i.e., Class A, AB, C, etc., > makes perfect sense and is widely unambiguous. Many modulations that > people refer to as non-linear either require or can be generated > with linear PAs, and many modulations that people think of as > "linear" may require a linear PA but don't necessarily, as Dilip > demonstrated, have linear properties.
Right.
> I've found a number of differing definitions for what makes a > modulation "linear" or "non-linear", and not only do they not > necessarily agree, they don't seem to make much difference in how > one goes about analyzing, architecting, or implementing a system.
Hmm...
> So, I'm not sure why it matters, which is good, because there's an > awful lot of confusion around the topic. So it's a little strange in > that it's not that big of a deal to clear up the confusion because it > really doesn't affect much, anyway. Well, other than helping remove > ambiguity from discussions. ;)
Eric, thanks for the summary. I appreciate it. I am not disagreeing with you. I guess the reason I pursued it is that I'd like to understand some of the sticking points and nuances, and it has indeed turned out to be educational for me (albeit painful for others...). Regarding PSK still needing linear PAs, I think that's one of the reasons that they implemented 3pi/8 shifted 8-PSK for GSM's EDGE - it avoids going through or near the origin.
> Eric Jacobsen > Minister of Algorithms > Abineau Communications > http://www.abineau.com
-- Randy Yates % "My Shangri-la has gone away, fading like Digital Signal Labs % the Beatles on 'Hey Jude'" yates@digitalsignallabs.com % http://www.digitalsignallabs.com % 'Shangri-La', *A New World Record*, ELO
On Mon, 10 Jan 2011 19:59:24 -0500, Randy Yates <yates@ieee.org>
wrote:

>On 01/10/2011 03:51 PM, Eric Jacobsen wrote: >> On Mon, 10 Jan 2011 13:44:54 -0500, Randy Yates<yates@ieee.org> >> wrote: >> >>> On 01/10/2011 12:44 PM, dvsarwate wrote: >> >> ...buncha stuff snipped... >> >>>> Whether QAM is a linear modulation or not makes no difference to the >>>> world, and all your electronic gadgets that do use QAM will not stop >>>> working upon discovering that they are not a "linear" modulation >>>> after all.... >>> >>> It does matter in the gadget world since a linear modulation requires >>> a linear, or near-linear power amplifier, while a non-linear >>> modulation (e.g., PSK) does not. >> >> And herein lies an example of the confusion. PSK as most often used >> in the industry DOES require a linear PA if any sort of common >> transmit mask or sidelobe control is expected. The only example I >> know of PSK that is commonly used with, e.g., a Class C amplifier is >> OQPSK, which is a special case of PSK and is in many aspects >> indistinguishable from MSK. So MSK, OQPSK, QPSK can all be (and I >> have done this in practice many times) produced from the same >> modulator. >> >> As Dilip suggested, my preference is that this terminology just go >> away, as it's hard to tell what somebody really means when they use >> it. >> >> I think of PSK as a "constant modulus" modulation. > >Indeed that's what John Treichler and Goddard capitalized on in >their blind adaptation algorithm (CMA). > >> Some people may think of it as non-linear, but it generally requires >> the same sorts of design attention and analog circuitry as QAM or >> even just AM. This is due to the fact that the envelope still >> modulates, e,g, it can go to zero whenever there is a 180-degree >> phase transition. > >Right - I forgot about that. > >>> This matters greatly in the real world since it determines how much >>> real power is required for the transmitter and thus can drive things >>> like talk time, profits, etc. > >> Refering to the PA as linear or not, i.e., Class A, AB, C, etc., >> makes perfect sense and is widely unambiguous. Many modulations that >> people refer to as non-linear either require or can be generated >> with linear PAs, and many modulations that people think of as >> "linear" may require a linear PA but don't necessarily, as Dilip >> demonstrated, have linear properties. > >Right. > >> I've found a number of differing definitions for what makes a >> modulation "linear" or "non-linear", and not only do they not >> necessarily agree, they don't seem to make much difference in how >> one goes about analyzing, architecting, or implementing a system. > >Hmm... > >> So, I'm not sure why it matters, which is good, because there's an >> awful lot of confusion around the topic. So it's a little strange in >> that it's not that big of a deal to clear up the confusion because it >> really doesn't affect much, anyway. Well, other than helping remove >> ambiguity from discussions. ;) > >Eric, thanks for the summary. I appreciate it. > >I am not disagreeing with you. I guess the reason I pursued it is that >I'd like to understand some of the sticking points and nuances, and it >has indeed turned out to be educational for me (albeit painful for >others...). > >Regarding PSK still needing linear PAs, I think that's one of the >reasons that they implemented 3pi/8 shifted 8-PSK for GSM's EDGE - it >avoids going through or near the origin.
Yes. The same thing for pi/4-QPSK, and the half-symbol shift for OQPSK accomplishes the same thing. For a while one motivation was that the low-cost integrated PA technology being used for things like handsets had an ugly recovery time when the input envelope went to zero. So avoiding that condition allowed the use of a particular PA technology that was evidently much less expensive than alternatives (this is how it was told to me by Those Who Cared). Recognize, though, that eliminating the 180-degreee transitions through the origin reduces the PAPR substantially, but may not eliminate amplitude modulation in the signal. OQPSK, 3pi/8-PSK, pi/4-QPSK, etc., etc., still have a lot of envelope modulation that generally requires a lot of linearity in the PA if spectral sidelobe regrowth has to be contained (which it usually does). So even when approaching or trying to approach the characteristics of a "non-linear" modulation, one may still need or want a highly linear PA. I think the terms "constant envelope" or "constant modulus" are far less confusing and less ambiguous when appropriately applied to their respective signalling types. Using either, or something with a lot of AM, doesn't necessarily imply a particular implementation, though, so it's even a bit decoupled from discussing whether the PA is linear or not. Eric Jacobsen Minister of Algorithms Abineau Communications http://www.abineau.com
On Jan 10, 12:44&#4294967295;pm, Randy Yates <ya...@ieee.org> wrote:


<<material snipped>>


> I think I now see your points. If I may rephrase: > > &#4294967295; &#4294967295;a) 16-QAM is not a linear modulation if > &#4294967295; &#4294967295;you consider the [inverse] Gray code mapping > &#4294967295; &#4294967295;part of the modulator.
Agreed, except that I would prefer not to use the words Gray code anywhere in the description for reasons that I will elaborate on below. And, as Eric said very perceptively, it is perhaps best not to talk of linear vs. nonlinear modulation at all.
> &#4294967295; &#4294967295;b) The initial, transmitter-side map is > &#4294967295; &#4294967295;actually an _inverse_ Gray code map that
Here, my preference is to go *directly* from the input bits to the amplitudes via a LUT, that is, write 00 -> -3 01 -> -1 11 -> +1 10 -> +3 and not mention Gray coding or inverse Gray coding at all. The difficulty is that once you use the words Gray coding, those who don't bother reading very far immediately start doing stuff that they should not be doing. "Oh, QAM uses Gray coding, so given the two input bits (p,q) that I want to transmit, I better Gray code them first, by mapping 10 to 11 and 11 to 10 (00 and 01 stay as is)" You too unwittingly have set the same trap for the inconstant reader when you write
> takes bits that are Gray coded and turns > them into a linear sequence, e.g., > > 00 -> 00 > 01 -> 01 > 11 -> 10 > 10 -> 11
As I said in an earlier posting in this thread, Dilip> NOBODY said that b0b1 are already Dilip> Gray-coded; they are just two bits we Dilip> got from the data source. I am sure that in the not-too-distant future, there will be posts in comp.dsp asking why QAM is not working as promised because they apply the mapping that you described! There is *no* Gray coding in QAM; there is *no* linear modulation in QAM. It is only when people attempt to fit QAM into these Procrustean beds that one is forced to introduce "thingies like A" and go to great lengths in explanations as to what is going on in QAM. The buzzwords Gray code and linear modulation are like cockroaches; very hard to get rid of. And once these buzzwords are introduced, people start Gray coding or anti-Gray coding or whatever without reading any further. What there *is* in QAM is a mapping of input bits to signal constellation points. For 16-QAM, I suggested -3 -1 +1 +3 +3 0010 0110 1110 1010 +1 0011 0111 1111 1011 -1 0001 0101 1101 1001 -3 0000 0100 1100 1000 Tim Wescott suggested Tim> 0000 0001 0011 0010 Tim> 0100 0101 0111 0110 Tim> 1100 1101 1111 1110 Tim> 1000 1001 1011 1010 There are several other optimal mappings that can be used. They all have the property that nearest neighbors differ in one bit, and next-nearest (diagonal) neighbors differ in two bits. There are also non-optimal mappings such as the one you posted (from Van Trees' book?) to exhibit "linear modulation in QAM", and there are truly crappy mappings that could, for example, make 0000 and 1111 nearest neighbors, etc. The QAM modulator is given bits, and all it needs to know or do is map the nybble or byte to a signal point. No need to Gray code anything or assume that the bits are already Gray coded and this needs to be inverted, or use linearity of any kind; just a look-up table. --Dilip Sarwate
On Tue, 11 Jan 2011 08:15:45 -0800 (PST), dvsarwate
<dvsarwate@yahoo.com> wrote:

>On Jan 10, 12:44=A0pm, Randy Yates <ya...@ieee.org> wrote: > > ><<material snipped>> > > >> I think I now see your points. If I may rephrase: >> >> =A0 =A0a) 16-QAM is not a linear modulation if >> =A0 =A0you consider the [inverse] Gray code mapping >> =A0 =A0part of the modulator. > >Agreed, except that I would prefer not to use >the words Gray code anywhere in the description >for reasons that I will elaborate on below. And, >as Eric said very perceptively, it is perhaps best >not to talk of linear vs. nonlinear modulation at all. > >> =A0 =A0b) The initial, transmitter-side map is >> =A0 =A0actually an _inverse_ Gray code map that > >Here, my preference is to go *directly* from >the input bits to the amplitudes via a LUT, >that is, write > >00 -> -3 >01 -> -1 >11 -> +1 >10 -> +3 > >and not mention Gray coding or inverse Gray >coding at all. The difficulty is that once you >use the words Gray coding, those who don't >bother reading very far immediately start doing >stuff that they should not be doing. > >"Oh, QAM uses Gray coding, so given the >two input bits (p,q) that I want to transmit, >I better Gray code them first, by mapping >10 to 11 and 11 to 10 (00 and 01 stay as is)" > >You too unwittingly have set the same trap >for the inconstant reader when you write > >> takes bits that are Gray coded and turns >> them into a linear sequence, e.g., >> >> 00 -> 00 >> 01 -> 01 >> 11 -> 10 >> 10 -> 11 > >As I said in an earlier posting in this thread, > >Dilip> NOBODY said that b0b1 are already >Dilip> Gray-coded; they are just two bits we >Dilip> got from the data source. > >I am sure that in the not-too-distant future, >there will be posts in comp.dsp asking why >QAM is not working as promised because >they apply the mapping that you described! > >There is *no* Gray coding in QAM; there is >*no* linear modulation in QAM. It is only >when people attempt to fit QAM into these >Procrustean beds that one is forced to >introduce "thingies like A" and go to great >lengths in explanations as to what is going >on in QAM. The buzzwords Gray code and >linear modulation are like cockroaches; very >hard to get rid of. And once these buzzwords >are introduced, people start Gray coding or >anti-Gray coding or whatever without reading >any further. What there *is* in QAM is a >mapping of input bits to signal constellation >points. For 16-QAM, I suggested > > -3 -1 +1 +3 > >+3 0010 0110 1110 1010 > >+1 0011 0111 1111 1011 > >-1 0001 0101 1101 1001 > >-3 0000 0100 1100 1000 > >Tim Wescott suggested > >Tim> 0000 0001 0011 0010 >Tim> 0100 0101 0111 0110 >Tim> 1100 1101 1111 1110 >Tim> 1000 1001 1011 1010 > >There are several other optimal mappings >that can be used. They all have the property >that nearest neighbors differ in one bit, and >next-nearest (diagonal) neighbors differ in >two bits. There are also non-optimal mappings >such as the one you posted (from Van Trees' >book?) to exhibit "linear modulation in QAM", >and there are truly crappy mappings that could, >for example, make 0000 and 1111 nearest >neighbors, etc. The QAM modulator is given >bits, and all it needs to know or do is map the >nybble or byte to a signal point. No need to >Gray code anything or assume that the bits >are already Gray coded and this needs to be >inverted, or use linearity of any kind; just a >look-up table. > >--Dilip Sarwate
I'm in agreement with Dilip on this stuff. I'd also point out that there are times when "truly crappy" constellation mappings are optimum. In this paper: Optimized Symbol Mappings for Bit-Interleaved Coded Modulation with Iterative Decoding (2003) by F. Schreckenbach , N. G&#4294967295;rtz , J. Hagenauer , G. Bauch IEEE Communications Letters http://130.203.133.150/viewdoc/summary;jsessionid=0749EF251EB485BA99D0DBE0BD8E0AFC?doi=10.1.1.10.6317 Figure 4.c shows several points where a four-bit error between adjacent constellation points occurs. The dreaded 0000 adjacent to 1111 is included. Believe it or not, that really is optimum for the case described, which is for BICM-ID (Bit-interleaved coded modulation with Iterative Decoding). I had to stare at that for a while to see how it works, but it really does, and it's only optimal when an iterative decoder is used. It's counter-intuitive to me, but makes sense once it is clear how the iterative decoding works and actually uses the mapping. I only point that out to show that there aren't absolutes when discussing constellation mapping. TCM maps are different than basic BICM maps which are different than BICM-ID maps which are different than probably something else entirely. So what works best in a particular application depends entirely on how the system is put together. Eric Jacobsen Minister of Algorithms Abineau Communications http://www.abineau.com
On Tue, 11 Jan 2011 22:59:26 GMT, eric.jacobsen@ieee.org (Eric
Jacobsen) wrote:

>On Tue, 11 Jan 2011 08:15:45 -0800 (PST), dvsarwate ><dvsarwate@yahoo.com> wrote: > >>On Jan 10, 12:44=A0pm, Randy Yates <ya...@ieee.org> wrote: >> >> >><<material snipped>> >> >> >>> I think I now see your points. If I may rephrase: >>> >>> =A0 =A0a) 16-QAM is not a linear modulation if >>> =A0 =A0you consider the [inverse] Gray code mapping >>> =A0 =A0part of the modulator. >> >>Agreed, except that I would prefer not to use >>the words Gray code anywhere in the description >>for reasons that I will elaborate on below. And, >>as Eric said very perceptively, it is perhaps best >>not to talk of linear vs. nonlinear modulation at all. >> >>> =A0 =A0b) The initial, transmitter-side map is >>> =A0 =A0actually an _inverse_ Gray code map that >> >>Here, my preference is to go *directly* from >>the input bits to the amplitudes via a LUT, >>that is, write >> >>00 -> -3 >>01 -> -1 >>11 -> +1 >>10 -> +3 >> >>and not mention Gray coding or inverse Gray >>coding at all. The difficulty is that once you >>use the words Gray coding, those who don't >>bother reading very far immediately start doing >>stuff that they should not be doing. >> >>"Oh, QAM uses Gray coding, so given the >>two input bits (p,q) that I want to transmit, >>I better Gray code them first, by mapping >>10 to 11 and 11 to 10 (00 and 01 stay as is)" >> >>You too unwittingly have set the same trap >>for the inconstant reader when you write >> >>> takes bits that are Gray coded and turns >>> them into a linear sequence, e.g., >>> >>> 00 -> 00 >>> 01 -> 01 >>> 11 -> 10 >>> 10 -> 11 >> >>As I said in an earlier posting in this thread, >> >>Dilip> NOBODY said that b0b1 are already >>Dilip> Gray-coded; they are just two bits we >>Dilip> got from the data source. >> >>I am sure that in the not-too-distant future, >>there will be posts in comp.dsp asking why >>QAM is not working as promised because >>they apply the mapping that you described! >> >>There is *no* Gray coding in QAM; there is >>*no* linear modulation in QAM. It is only >>when people attempt to fit QAM into these >>Procrustean beds that one is forced to >>introduce "thingies like A" and go to great >>lengths in explanations as to what is going >>on in QAM. The buzzwords Gray code and >>linear modulation are like cockroaches; very >>hard to get rid of. And once these buzzwords >>are introduced, people start Gray coding or >>anti-Gray coding or whatever without reading >>any further. What there *is* in QAM is a >>mapping of input bits to signal constellation >>points. For 16-QAM, I suggested >> >> -3 -1 +1 +3 >> >>+3 0010 0110 1110 1010 >> >>+1 0011 0111 1111 1011 >> >>-1 0001 0101 1101 1001 >> >>-3 0000 0100 1100 1000 >> >>Tim Wescott suggested >> >>Tim> 0000 0001 0011 0010 >>Tim> 0100 0101 0111 0110 >>Tim> 1100 1101 1111 1110 >>Tim> 1000 1001 1011 1010 >> >>There are several other optimal mappings >>that can be used. They all have the property >>that nearest neighbors differ in one bit, and >>next-nearest (diagonal) neighbors differ in >>two bits. There are also non-optimal mappings >>such as the one you posted (from Van Trees' >>book?) to exhibit "linear modulation in QAM", >>and there are truly crappy mappings that could, >>for example, make 0000 and 1111 nearest >>neighbors, etc. The QAM modulator is given >>bits, and all it needs to know or do is map the >>nybble or byte to a signal point. No need to >>Gray code anything or assume that the bits >>are already Gray coded and this needs to be >>inverted, or use linearity of any kind; just a >>look-up table. >> >>--Dilip Sarwate > >I'm in agreement with Dilip on this stuff. > >I'd also point out that there are times when "truly crappy" >constellation mappings are optimum. In this paper: > >Optimized Symbol Mappings for Bit-Interleaved Coded Modulation with >Iterative Decoding (2003) >by F. Schreckenbach , N. G&#4294967295;rtz , J. Hagenauer , G. Bauch >IEEE Communications Letters > >http://130.203.133.150/viewdoc/summary;jsessionid=0749EF251EB485BA99D0DBE0BD8E0AFC?doi=10.1.1.10.6317 > >Figure 4.c shows several points where a four-bit error between >adjacent constellation points occurs. The dreaded 0000 adjacent to >1111 is included. Believe it or not, that really is optimum for the >case described, which is for BICM-ID (Bit-interleaved coded modulation >with Iterative Decoding). I had to stare at that for a while to see >how it works, but it really does, and it's only optimal when an >iterative decoder is used. It's counter-intuitive to me, but makes >sense once it is clear how the iterative decoding works and actually >uses the mapping. > >I only point that out to show that there aren't absolutes when >discussing constellation mapping. TCM maps are different than basic >BICM maps which are different than BICM-ID maps which are different >than probably something else entirely. > >So what works best in a particular application depends entirely on how >the system is put together.
I should have also cited Chindapol and Ritcey, Design, Analysis, and Performance Evaluation for BICM-ID with Square QAM Constellations in Rayleigh Fading Channels Aik Chindapol and James A. Ritcey IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 19, NO. 5, MAY 2001 Figs 3, 4 and 5 show the labelling. Three-bit error adjacent points are common. Eric Jacobsen Minister of Algorithms Abineau Communications http://www.abineau.com
On Jan 11, 5:59&#4294967295;pm, eric.jacob...@ieee.org (Eric Jacobsen) wrote:
> On Tue, 11 Jan 2011 08:15:45 -0800 (PST), dvsarwate > > > > > > <dvsarw...@yahoo.com> wrote: > >On Jan 10, 12:44=A0pm, Randy Yates <ya...@ieee.org> wrote: > > ><<material snipped>> > > >> I think I now see your points. If I may rephrase: > > >> =A0 =A0a) 16-QAM is not a linear modulation if > >> =A0 =A0you consider the [inverse] Gray code mapping > >> =A0 =A0part of the modulator. > > >Agreed, except that I would prefer not to use > >the words Gray code anywhere in the description > >for reasons that I will elaborate on below. &#4294967295;And, > >as Eric said very perceptively, it is perhaps best > >not to talk of linear vs. nonlinear modulation at all. > > >> =A0 =A0b) The initial, transmitter-side map is > >> =A0 =A0actually an _inverse_ Gray code map that > > >Here, my preference is to go *directly* from > >the input bits to the amplitudes via a LUT, > >that is, write > > >00 -> -3 > >01 -> -1 > >11 -> +1 > >10 -> +3 > > >and not mention Gray coding or inverse Gray > >coding at all. &#4294967295;The difficulty is that once you > >use the words Gray coding, those who don't > >bother reading very far immediately start doing > >stuff that they should not be doing. > > >"Oh, QAM uses Gray coding, so given the > >two input bits (p,q) that I want to transmit, > >I better Gray code them first, by mapping > >10 to 11 and 11 to 10 (00 and 01 stay as is)" > > >You too unwittingly have set the same trap > >for the inconstant reader when you write > > >> &#4294967295; &#4294967295;takes bits that are Gray coded and turns > >> &#4294967295; &#4294967295;them into a linear sequence, e.g., > > >> &#4294967295; &#4294967295;00 -> 00 > >> &#4294967295; &#4294967295;01 -> 01 > >> &#4294967295; &#4294967295;11 -> 10 > >> &#4294967295; &#4294967295;10 -> 11 > > >As I said in an earlier posting in this thread, > > >Dilip> &#4294967295;NOBODY said that b0b1 are already > >Dilip> &#4294967295;Gray-coded; they are just two bits we > >Dilip> &#4294967295;got from the data source. > > >I am sure that in the not-too-distant future, > >there will be posts in comp.dsp asking why > >QAM is not working as promised because > >they apply the mapping that you described! > > >There is *no* Gray coding in QAM; there is > >*no* linear modulation in QAM. &#4294967295;It is only > >when people attempt to fit QAM into these > >Procrustean beds that one is forced to > >introduce "thingies like A" and go to great > >lengths in explanations as to what is going > >on in QAM. &#4294967295;The buzzwords Gray code and > >linear modulation are like cockroaches; very > >hard to get rid of. &#4294967295;And once these buzzwords > >are introduced, people start Gray coding or > >anti-Gray coding or whatever without reading > >any further. &#4294967295; What there *is* in QAM is a > >mapping of input bits to signal constellation > >points. &#4294967295;For 16-QAM, I suggested > > > &#4294967295; &#4294967295; &#4294967295; -3 &#4294967295; &#4294967295; &#4294967295; -1 &#4294967295; &#4294967295; &#4294967295; +1 &#4294967295; &#4294967295; +3 > > >+3 &#4294967295;0010 &#4294967295;0110 &#4294967295;1110 &#4294967295;1010 > > >+1 &#4294967295;0011 &#4294967295;0111 &#4294967295;1111 &#4294967295;1011 > > >-1 &#4294967295;0001 &#4294967295;0101 &#4294967295;1101 &#4294967295;1001 > > >-3 &#4294967295;0000 &#4294967295;0100 &#4294967295;1100 &#4294967295;1000 > > >Tim Wescott suggested > > >Tim> &#4294967295;0000 &#4294967295;0001 &#4294967295;0011 &#4294967295;0010 > >Tim> &#4294967295;0100 &#4294967295;0101 &#4294967295;0111 &#4294967295;0110 > >Tim> &#4294967295;1100 &#4294967295;1101 &#4294967295;1111 &#4294967295;1110 > >Tim> &#4294967295;1000 &#4294967295;1001 &#4294967295;1011 &#4294967295;1010 > > >There are several other optimal mappings > >that can be used. &#4294967295;They all have the property > >that nearest neighbors differ in one bit, and > >next-nearest (diagonal) neighbors differ in > >two bits. &#4294967295;There are also non-optimal mappings > >such as the one you posted (from Van Trees' > >book?) to exhibit "linear modulation in QAM", > >and there are truly crappy mappings that could, > >for example, make 0000 and 1111 nearest > >neighbors, etc. &#4294967295;The QAM modulator is given > >bits, and all it needs to know or do is map the > >nybble or byte to a signal point. &#4294967295;No need to > >Gray code anything or assume that the bits > >are already Gray coded and this needs to be > >inverted, or use linearity of any kind; just a > >look-up table. > > >--Dilip Sarwate > > I'm in agreement with Dilip on this stuff. > > I'd also point out that there are times when "truly crappy" > constellation mappings are optimum. &#4294967295; In this paper: > > Optimized Symbol Mappings for Bit-Interleaved Coded Modulation with > Iterative Decoding (2003) > by F. Schreckenbach , &#4294967295;N. G&#4294967295;rtz , &#4294967295;J. Hagenauer , &#4294967295;G. Bauch > IEEE Communications Letters > > http://130.203.133.150/viewdoc/summary;jsessionid=0749EF251EB485BA99D... > > Figure 4.c shows several points where a four-bit error between > adjacent constellation points occurs. &#4294967295; The dreaded 0000 adjacent to > 1111 is included. &#4294967295; Believe it or not, that really is optimum for the > case described, which is for BICM-ID (Bit-interleaved coded modulation > with Iterative Decoding). &#4294967295; I had to stare at that for a while to see > how it works, but it really does, and it's only optimal when an > iterative decoder is used. &#4294967295; It's counter-intuitive to me, but makes > sense once it is clear how the iterative decoding works and actually > uses the mapping. > > I only point that out to show that there aren't absolutes when > discussing constellation mapping. &#4294967295; TCM maps are different than basic > BICM maps which are different than BICM-ID maps which are different > than probably something else entirely. > > So what works best in a particular application depends entirely on how > the system is put together. > > Eric Jacobsen > Minister of Algorithms > Abineau Communicationshttp://www.abineau.com- Hide quoted text - > > - Show quoted text -
This is like an almost solved Rubic's cube. You have to mess it up some to completely solve it. Neat article! Clay