COMPGROUPS.NET | Search | Post Question | Groups | Stream | About | Register

### Extraction of DQPSK symbols from IQ data

• Follow

```Hi,

I generated I and Q values by multiplying the current sample with the
conjugate of the previous sample. Just wanted to know how the symbols
are generated from these I and Q values.

Appreciate the help
Bob
```
 0
Reply stenasc (63) 8/10/2009 10:24:24 AM

```On Aug 10, 5:24=A0am, Bob <sten...@yahoo.com> wrote:
> Hi,
>
> I generated I and Q values by multiplying the current sample with the
> conjugate of the previous sample. Just wanted to know how the symbols
> are generated from these I and Q values.
>
> Appreciate the help
> Bob

If A denotes the previous complex-valued symbol and
B the current  complex-valued symbol, then you need
to determine which of the following is the smallest:

|A-B|, |A-jB|, |A+B|, |A+jB|

You don't need to compare magnitudes (which would
require computing square roots); it suffices to compare

|A-B|^2, |A-jB|^2, |A+B|^2, |A+jB|^2

to determine which is the smallest.  If you know how
DQPSK has been encoded, you can tell the dibit value
from this information.

Hope this helps.

Dilip Sarwate
```
 0
Reply dvsarwate (265) 8/10/2009 11:58:51 AM

```On Aug 10, 12:58=A0pm, "dvsarw...@yahoo.com" <dvsarw...@gmail.com>
wrote:
> On Aug 10, 5:24=A0am, Bob <sten...@yahoo.com> wrote:
>
> > Hi,
>
> > I generated I and Q values by multiplying the current sample with the
> > conjugate of the previous sample. Just wanted to know how the symbols
> > are generated from these I and Q values.
>
> > Appreciate the help
> > Bob
>
> If A denotes the previous complex-valued symbol and
> B the current =A0complex-valued symbol, then you need
> to determine which of the following is the smallest:
>
> |A-B|, |A-jB|, |A+B|, |A+jB|
>
> You don't need to compare magnitudes (which would
> require computing square roots); it suffices to compare
>
> |A-B|^2, |A-jB|^2, |A+B|^2, |A+jB|^2
>
> to determine which is the smallest. =A0If you know how
> DQPSK has been encoded, you can tell the dibit value
> from this information.
>
> Hope this helps.
>
> Dilip Sarwate

Hi Dilip,

Not sure I follow you...so multiplying the current sample by the
conjugate of the previous sample is incorrect. I had been led to
believe that this was the correct method?

Bob
```
 0
Reply stenasc (63) 8/10/2009 4:04:42 PM

```On 8/10/2009 9:04 AM, Bob wrote:
> On Aug 10, 12:58 pm, "dvsarw...@yahoo.com"<dvsarw...@gmail.com>
> wrote:
>> On Aug 10, 5:24 am, Bob<sten...@yahoo.com>  wrote:
>>
>>> Hi,
>>> I generated I and Q values by multiplying the current sample with the
>>> conjugate of the previous sample. Just wanted to know how the symbols
>>> are generated from these I and Q values.
>>> Appreciate the help
>>> Bob
>> If A denotes the previous complex-valued symbol and
>> B the current  complex-valued symbol, then you need
>> to determine which of the following is the smallest:
>>
>> |A-B|, |A-jB|, |A+B|, |A+jB|
>>
>> You don't need to compare magnitudes (which would
>> require computing square roots); it suffices to compare
>>
>> |A-B|^2, |A-jB|^2, |A+B|^2, |A+jB|^2
>>
>> to determine which is the smallest.  If you know how
>> DQPSK has been encoded, you can tell the dibit value
>> from this information.
>>
>> Hope this helps.
>>
>> Dilip Sarwate
>
> Hi Dilip,
>
> Not sure I follow you...so multiplying the current sample by the
> conjugate of the previous sample is incorrect. I had been led to
> believe that this was the correct method?
>
> Bob

That method works.   Think of what that method does, i.e., the phase of
the result is the phase difference between the two vectors, which is
exactly what was modulated to convey the information.

So the result of the product you took will have, ideally, a phase angle
of zero, +/- pi/2, or pi.  Whatever dibit corresponded to those angles
in the modulator should match in the demod.

The method Dilip mentioned is a sneaky way of getting to the same thing.
Or, you can determine the angle by comparing I and Q, or rotating the
result 45 degrees and slicing it like QPSK, or something like that.
There's more than just one way to do it.

--
Eric Jacobsen
Minister of Algorithms
Abineau Communications
http://www.abineau.com
```
 0
Reply eric.jacobsen (2438) 8/10/2009 11:30:20 PM

```>On Aug 10, 12:58=A0pm, "dvsarw...@yahoo.com" <dvsarw...@gmail.com>
>wrote:
>> On Aug 10, 5:24=A0am, Bob <sten...@yahoo.com> wrote:
>>
>> > Hi,
>>
>> > I generated I and Q values by multiplying the current sample with
the
>> > conjugate of the previous sample. Just wanted to know how the
symbols
>> > are generated from these I and Q values.
>>
>> > Appreciate the help
>> > Bob
>>
>> If A denotes the previous complex-valued symbol and
>> B the current =A0complex-valued symbol, then you need
>> to determine which of the following is the smallest:
>>
>> |A-B|, |A-jB|, |A+B|, |A+jB|
>>
>> You don't need to compare magnitudes (which would
>> require computing square roots); it suffices to compare
>>
>> |A-B|^2, |A-jB|^2, |A+B|^2, |A+jB|^2
>>
>> to determine which is the smallest. =A0If you know how
>> DQPSK has been encoded, you can tell the dibit value
>> from this information.
>>
>> Hope this helps.
>>
>> Dilip Sarwate
>
>Hi Dilip,
>
>Not sure I follow you...so multiplying the current sample by the
>conjugate of the previous sample is incorrect. I had been led to
>believe that this was the correct method?

One way or another you need to find the closest match to one of 4 possible
angular displacements between adjacent symbols. Anything which does that is
fine.

Do you understand what multiplying by the conjugate actually achieves? Its
a rotation operation. It will rotate the new vector by the old vector, so
you now have the difference between those vectors. This should be close to
0, pi/2, pi or 3pi/2, if your SNR is good. So, you need to find which of
those four possibilities is the best fit. This is basic high school matrix
arithmetic (now someone is going to tell me they didn't study matrix maths
in high school). You probably thought you'd never use all that
multi-dimensional transform stuff, but it had a real purpose after all.
:-)

If you multiply the answer from above by the conjugate of 45 degrees, you
rotate your vector such that you simply need to find the quadrant the
result is in. That's a bit easier that the comparisons needed to slice
along 45 degree lines.

You can also do what Dilip suggested. It achieves the same thing, and
might do it faster in a real implementation.

Regards,
Steve

```
 0
Reply steveu1 (275) 8/11/2009 10:49:50 AM

```On Aug 11, 11:49=A0am, "steveu" <ste...@coppice.org> wrote:
> >On Aug 10, 12:58=3DA0pm, "dvsarw...@yahoo.com" <dvsarw...@gmail.com>
> >wrote:
> >> On Aug 10, 5:24=3DA0am, Bob <sten...@yahoo.com> wrote:
>
> >> > Hi,
>
> >> > I generated I and Q values by multiplying the current sample with
> the
> >> > conjugate of the previous sample. Just wanted to know how the
> symbols
> >> > are generated from these I and Q values.
>
> >> > Appreciate the help
> >> > Bob
>
> >> If A denotes the previous complex-valued symbol and
> >> B the current =3DA0complex-valued symbol, then you need
> >> to determine which of the following is the smallest:
>
> >> |A-B|, |A-jB|, |A+B|, |A+jB|
>
> >> You don't need to compare magnitudes (which would
> >> require computing square roots); it suffices to compare
>
> >> |A-B|^2, |A-jB|^2, |A+B|^2, |A+jB|^2
>
> >> to determine which is the smallest. =3DA0If you know how
> >> DQPSK has been encoded, you can tell the dibit value
> >> from this information.
>
> >> Hope this helps.
>
> >> Dilip Sarwate
>
> >Hi Dilip,
>
> >Not sure I follow you...so multiplying the current sample by the
> >conjugate of the previous sample is incorrect. I had been led to
> >believe that this was the correct method?
>
> One way or another you need to find the closest match to one of 4 possibl=
e
> angular displacements between adjacent symbols. Anything which does that =
is
> fine.
>
> Do you understand what multiplying by the conjugate actually achieves? It=
s
> a rotation operation. It will rotate the new vector by the old vector, so
> you now have the difference between those vectors. This should be close t=
o
> 0, pi/2, pi or 3pi/2, if your SNR is good. So, you need to find which of
> those four possibilities is the best fit. This is basic high school matri=
x
> arithmetic (now someone is going to tell me they didn't study matrix math=
s
> in high school). You probably thought you'd never use all that
> multi-dimensional transform stuff, but it had a real purpose after all.
> :-)
>
> If you multiply the answer from above by the conjugate of 45 degrees, you
> rotate your vector such that you simply need to find the quadrant the
> result is in. That's a bit easier that the comparisons needed to slice
> along 45 degree lines.
>
> You can also do what Dilip suggested. It achieves the same thing, and
> might do it faster in a real implementation.
>
> Regards,
> Steve

Hi,

Got the picture now....I'm going to implement a quick test in H/W to
see how I get on. I really appreciate all the replies.

Regards
Bob
```
 0
Reply stenasc (63) 8/11/2009 3:38:48 PM

5 Replies
37 Views