# 180 phase ambiguity

Started by August 14, 2012
```Hey,

I get why diffrential encoder in the transmitter and then a differential
decoder at the receiver help overcome the possible 180 phase ambiguity.
what I don't get is how the viterbi decoder can handle that if we use a
convolutional coding in our communication system (assume a gray-coded QPSK,
means 180-phase causes "00"<->"11","01"<->"10").
In the receiver, the 180-phased codeword will the viterbi decoder itself
and it won't follow the right path and we won't get the correct source
word.I also can't find a justification to the idea that the trellis will
give the 180-phased right source word and we will use the differential
decoder afterwards to get the original true source word.
Your help would be appreciated.

Thanks,
George.

```
```On Tuesday, August 14, 2012 8:17:26 AM UTC-4, Geo85 wrote:
> Hey,
>
>
>
> I get why diffrential encoder in the transmitter and then a differential
>
> decoder at the receiver help overcome the possible 180 phase ambiguity.
>
> what I don't get is how the viterbi decoder can handle that if we use a
>
> convolutional coding in our communication system (assume a gray-coded QPSK,
>
> means 180-phase causes "00"<->"11","01"<->"10").
>
> In the receiver, the 180-phased codeword will the viterbi decoder itself
>
> and it won't follow the right path and we won't get the correct source
>
> word.I also can't find a justification to the idea that the trellis will
>
> give the 180-phased right source word and we will use the differential
>
> decoder afterwards to get the original true source word.
>
> Your help would be appreciated.
>
>
>
> Thanks,
>
> George.

Hi George,

A neat feature of linear codes is a sum (exclusive or addition) of codewords is also a codeword and if the all ones codeword is a member of your codeset, then an inversion of a codeword is also a codeword and thus the error correction process doesn't need to worry about the polarity of the data. That gets sorted out after the error correction.

Clay

```
```On Tuesday, August 14, 2012 7:17:26 AM UTC-5, Geo85 wrote:
> Hey,
>
>
>
> I get why diffrential encoder in the transmitter and then a differential
>
> decoder at the receiver help overcome the possible 180 phase ambiguity.
>
> what I don't get is how the viterbi decoder can handle that if we use a
>
> convolutional coding in our communication system (assume a gray-coded QPSK,
>
> means 180-phase causes "00"<->"11","01"<->"10").
>
> In the receiver, the 180-phased codeword will the viterbi decoder itself
>
> and it won't follow the right path and we won't get the correct source
>
> word.I also can't find a justification to the idea that the trellis will
>
> give the 180-phased right source word and we will use the differential
>
> decoder afterwards to get the original true source word.
>
> Your help would be appreciated.
>
>
>
> Thanks,
>
> George.

The differential decoder is often implemented as part of the demodulator
so that the bits that the Viterbi decoder works on have no phase ambiguity in them.  Also, in QPSK systems, the phase ambiguity is not just an interchange of 00 <-> 11 etc but a rotation of pi/2, pi, or 3pi/2, and so life is more complicated than you have indicated.

Dilip Sarwate

```
```The transmitter flow is convolutional encoder, differential encoder, and
modulator. The receiver is in reverse order, demodulator, differential
decoder, and viterbi decoder. The viterbi corrects errors whatever their
cause.

Errors out of the differential decoder come in pairs and the viterbi
prefers its errors unbunched.
```
```"Geo85" <61484@dsprelated> wrote in message
news:O7mdnRW-cuFL3LfNnZ2dnUVZ_jednZ2d@giganews.com...
> Hey,
>
> I get why diffrential encoder in the transmitter and then a differential
> decoder at the receiver help overcome the possible 180 phase ambiguity.

QPSK ambiguity of phase is 90 degrees.

> what I don't get is how the viterbi decoder can handle that if we use a
> convolutional coding in our communication system (assume a gray-coded
> QPSK,
> means 180-phase causes "00"<->"11","01"<->"10").

There are special codes designed to be invariant to rotation; for tradeoff
of some loss in performance.

> In the receiver, the 180-phased codeword will the viterbi decoder itself
> and it won't follow the right path and we won't get the correct source
> word.I also can't find a justification to the idea that the trellis will
> give the 180-phased right source word and we will use the differential
> decoder afterwards to get the original true source word.

It is possible to run 4 decoders for all 4 phase rotations, and pick one
with minimum of errors. Locking on the right phase by preamble at very
beginning is the other possibility.

> Your help would be appreciated.

How much is your appreciation?

Vladimir Vassilevsky
DSP and Mixed Signal Consultant
www.abvolt.com

```
```On Tue, 14 Aug 2012 07:17:26 -0500, "Geo85" <61484@dsprelated> wrote:

>Hey,
>
>I get why diffrential encoder in the transmitter and then a differential
>decoder at the receiver help overcome the possible 180 phase ambiguity.
>what I don't get is how the viterbi decoder can handle that if we use a
>convolutional coding in our communication system (assume a gray-coded QPSK,
>means 180-phase causes "00"<->"11","01"<->"10").
>In the receiver, the 180-phased codeword will the viterbi decoder itself
>and it won't follow the right path and we won't get the correct source
>word.I also can't find a justification to the idea that the trellis will
>give the 180-phased right source word and we will use the differential
>decoder afterwards to get the original true source word.
>Your help would be appreciated.
>
>Thanks,
>George.

I'm assuming that you really mean differential encoding as applied to
the binary bit stream and not differential modulation applied to the
constellation.

As mentioned by others already, QPSK has four phase ambiguities, not
just 0 and 180 degrees, so something has to be done to resolve the +/-
90-degree ambiguities for your system to work.  You can trade off
reducing the number of ambiguities by using differential encoding, but
this generally comes at the cost of doubling the error rate.

Also as mentioned by others already, the inverse of a valid codeword
is also a valid codeword for a Viterbi decoder, so the differential
encoder/decoder can be placed outside of the encoder and decoder in
the system and still work.

But you still have to resolve at least two of the phase ambiguities to
recover the data stream.   If you use differential modulation instead
(at the cost of some performance), the ambiguities are all removed in
the differential demodulator.

Eric Jacobsen
Anchor Hill Communications
www.anchorhill.com
```
```<clay@claysturner.com> wrote in message
news:1981fa2f-9717-4b77-a668-27210a74b0ba@googlegroups.com...
On Tuesday, August 14, 2012 8:17:26 AM UTC-4, Geo85 wrote:

>> I get why diffrential encoder in the transmitter and then a differential
>> decoder at the receiver help overcome the possible 180 phase ambiguity.
>> what I don't get is how the viterbi decoder can handle that if we use a
>> convolutional coding in our communication system (assume a gray-coded
>> QPSK,
>> means 180-phase causes "00"<->"11","01"<->"10").

>A neat feature of linear codes is a sum (exclusive or addition) of
>codewords is also a codeword and if the all ones codeword is a >member of
>your codeset, then an inversion of a codeword is also a codeword and thus
>the error correction process doesn't need to >worry about the polarity of
>the data. That gets sorted out after the error correction.

It is simple enough to modify cyclic code to make all ones valid codeword.
Doing the same to a convolutional code is non-trivial problem.

Vladimir Vassilevsky
DSP and Mixed Signal Consultant
www.abvolt.com

```
```Is there a way to incorporate this phase ambiguity into the decoding process directly? say using sphere decoders or anything else similar?
Thanks
Dhiraj
On Tuesday, August 14, 2012 8:17:26 AM UTC-4, Geo85 wrote:
> Hey,
>
>
>
> I get why diffrential encoder in the transmitter and then a differential
>
> decoder at the receiver help overcome the possible 180 phase ambiguity.
>
> what I don't get is how the viterbi decoder can handle that if we use a
>
> convolutional coding in our communication system (assume a gray-coded QPSK,
>
> means 180-phase causes "00"<->"11","01"<->"10").
>
> In the receiver, the 180-phased codeword will the viterbi decoder itself
>
> and it won't follow the right path and we won't get the correct source
>
> word.I also can't find a justification to the idea that the trellis will
>
> give the 180-phased right source word and we will use the differential
>
> decoder afterwards to get the original true source word.
>
> Your help would be appreciated.
>
>
>
> Thanks,
>
> George.

```
```Top posting for continuity.

Usually there's a framing system (or other similar mechanism) with
Unique Words that will reveal the proper data polarity.

Many FEC codes are linear, so the inverse of a codeword is also a
codeword, and a Viterbi decoder will properly decode an encoded data
stream or its inverse.  So the Unique Words (or whatever mechanism is
used) can be either coded or uncoded, it's a system/architecture
decision.

Using differential coding gets around all of that.

On Sat, 10 Nov 2012 21:50:33 -0800 (PST), asaidhiraj@gmail.com wrote:

>Is there a way to incorporate this phase ambiguity into the decoding process directly? say using sphere decoders or anything else similar?
>Thanks
>Dhiraj

>On Tuesday, August 14, 2012 8:17:26 AM UTC-4, Geo85 wrote:
>> Hey,
>>
>>
>>
>> I get why diffrential encoder in the transmitter and then a differential
>>
>> decoder at the receiver help overcome the possible 180 phase ambiguity.
>>
>> what I don't get is how the viterbi decoder can handle that if we use a
>>
>> convolutional coding in our communication system (assume a gray-coded QPSK,
>>
>> means 180-phase causes "00"<->"11","01"<->"10").
>>
>> In the receiver, the 180-phased codeword will the viterbi decoder itself
>>
>> and it won't follow the right path and we won't get the correct source
>>
>> word.I also can't find a justification to the idea that the trellis will
>>
>> give the 180-phased right source word and we will use the differential
>>
>> decoder afterwards to get the original true source word.
>>
>> Your help would be appreciated.
>>
>>
>>
>> Thanks,
>>
>> George.
>

Eric Jacobsen
Anchor Hill Communications
http://www.anchorhill.com
```
```Even more continuity-induced top posting (ick):

The one system that I worked on where leaving out the differential
encoding was even mentioned, the group had prototyped the whole unique-
word thing before I started, and found out that a cycle slip on the
carrier PLL would cause a humongous flood of errors from the Viterbi
decoder, vs. only one bit error on the incoming side using differential.

I've never gotten into things deep enough to know just where the A vs. B
tradeoff comes in (or, for that matter, if the group I was working with
just didn't know how to make decent carrier-lock PLLs).

On Sun, 11 Nov 2012 16:45:22 +0000, Eric Jacobsen wrote:

> Top posting for continuity.
>
> Usually there's a framing system (or other similar mechanism) with
> Unique Words that will reveal the proper data polarity.
>
> Many FEC codes are linear, so the inverse of a codeword is also a
> codeword, and a Viterbi decoder will properly decode an encoded data
> stream or its inverse.  So the Unique Words (or whatever mechanism is
> used) can be either coded or uncoded, it's a system/architecture
> decision.
>
> Using differential coding gets around all of that.
>
>
> On Sat, 10 Nov 2012 21:50:33 -0800 (PST), asaidhiraj@gmail.com wrote:
>
>>Is there a way to incorporate this phase ambiguity into the decoding
>>process directly? say using sphere decoders or anything else similar?
>>Thanks Dhiraj
>
>>On Tuesday, August 14, 2012 8:17:26 AM UTC-4, Geo85 wrote:
>>> Hey,
>>>
>>>
>>>
>>> I get why diffrential encoder in the transmitter and then a
>>> differential
>>>
>>> decoder at the receiver help overcome the possible 180 phase
>>> ambiguity.
>>>
>>> what I don't get is how the viterbi decoder can handle that if we use
>>> a
>>>
>>> convolutional coding in our communication system (assume a gray-coded
>>> QPSK,
>>>
>>> means 180-phase causes "00"<->"11","01"<->"10").
>>>
>>> In the receiver, the 180-phased codeword will the viterbi decoder
>>> itself
>>>
>>> and it won't follow the right path and we won't get the correct source
>>>
>>> word.I also can't find a justification to the idea that the trellis
>>> will
>>>
>>> give the 180-phased right source word and we will use the differential
>>>
>>> decoder afterwards to get the original true source word.
>>>
>>> Your help would be appreciated.
>>>
>>>
>>>
>>> Thanks,
>>>
>>> George.
>>
>>
> Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
```