discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] DQPSK Modulation/Demodulation issue


From: Jason Uher
Subject: Re: [Discuss-gnuradio] DQPSK Modulation/Demodulation issue
Date: Tue, 27 Apr 2010 13:25:34 -0500

On Tue, Apr 27, 2010 at 11:49 AM, marcin_w <address@hidden> wrote:
>
> Hi All,
>
> I have been battling with this for the last week and still have not found a
> solution.
>
> I've include some more info for anyone who can help.
>>   Does anyone have any idea what is going wrong here?
>>   I've included my python source code below:


1) To be honest, your code is really hard to read, which is the reason
I didn't originally reply to your question.  I started to look through
to make sure your blocks and connections were set up correctly, but
it's just a big mess.

2) There is a DQPSK implementation in the gnuradio blks2 source,
search the repository for it, there is a transmitter and a receiver.

3) I would guess your problem has to do with incorrectly applying the
differential coding, since you get a unique stream of symbols in each
of your four cases:
108d - 1h 2h 3h 0h
177d - 2h 3h 0h 1h
27d   - 0h 1h 2h 3h
198d - 3h 0h 1h 2h

Notice that the difference is the same in each of these cases:
(previous+1) % 4.  This comes from the phase ambiguities in the costas
loop, it locks on to wherever.  That's why the differential coding is
used.  You can confirm this by sending something that's not an even
distribution of symbols.  For example, send: 92d - (1h 1h 3h 0h) = (+1
+0 +2 +1) and I bet you'll get back four different values just like
you do now:
(1h 1h 3h 0h) = (+x +0 +2 +1)
(2h 2h 0h 1h) = (+x +0 +2 +1)
(3h 3h 1h 2h) = (+x +0 +2 +1)
(0h 0h 2h 3h) = (+x +0 +2 +1)


Jason




reply via email to

[Prev in Thread] Current Thread [Next in Thread]