# A question on the order of the processing stages for the psk receiver

**URL:** <https://www.ruby-forum.com/t/a-question-on-the-order-of-the-processing-stages-for-the-psk-receiver/218493>\
**Category:** GNU Radio\
**Created:** [April 2, 2012, 5:46pm UTC](https://www.ruby-forum.com/t/a-question-on-the-order-of-the-processing-stages-for-the-psk-receiver/218493 "2012-04-02T17:46:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [April 2, 2012, 5:46pm UTC](https://www.ruby-forum.com/t/a-question-on-the-order-of-the-processing-stages-for-the-psk-receiver/218493/1 "2012-04-02T17:46:46Z")

</div>

Dear all,

I have a question on the order of the processing stages for the psk  
receiver.  
As I have seen from some source code (e.g., dqpsk.py in earlier version  
of  
GnuRadio 3.4.2 backwards), the sequence of blocks for a psk receiver is:

AGC -\> RRC filter -\> mpsk receiver (mpsk\_receiver\_cc) -\> differential  
decoding -\> symbol demapping (find closest constellation point) -\> gray  
code decoding (optional) -\> and so on.

My confusion here is why the differential decoding is placed before the  
symbol demapping block, while as my usual thought the demapping should  
goes  
ahead of the differential decoding stage.

Can anyone explain that to me or just show me the related documents, i  
would be greatly grateful for it,

With best regards,

---

<div class="post-metadata">

**Author:** ![Anh\_Duc\_N](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/85e7bf/32.png) [@Anh\_Duc\_N](https://www.ruby-forum.com/u/Anh_Duc_N)\
**Post date:** [April 2, 2012, 6:01pm UTC](https://www.ruby-forum.com/t/a-question-on-the-order-of-the-processing-stages-for-the-psk-receiver/218493/2 "2012-04-02T18:01:04Z")

</div>

On Mon, Apr 2, 2012 at 11:45 AM, Anh Duc N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> My confusion here is why the differential decoding is placed before the  
> symbol demapping block, while as my usual thought the demapping should goes  
> ahead of thedifferential decoding stage.
> 
> Can anyone explain that to me or just show me the related documents, i would  
> be greatly grateful for it,
> 
> With best regards,

We use the phasor of the symbol to do the differential decoding.  
Instead of looking at the bits, the phasor looks at the phase change  
between symbols. The major benefit of this is you don’t have to care  
at all about the starting point or any rotation in the constellation;  
you just see a phase change. It’s a much easier method to implement  
and is equivalent to looking at the bits, which is what’s always  
taught in the text books.

Tom

---

<div class="post-metadata">

**Author:** ![Anh\_Duc\_N](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/85e7bf/32.png) [@Anh\_Duc\_N](https://www.ruby-forum.com/u/Anh_Duc_N)\
**Post date:** [April 3, 2012, 8:41pm UTC](https://www.ruby-forum.com/t/a-question-on-the-order-of-the-processing-stages-for-the-psk-receiver/218493/3 "2012-04-03T20:41:59Z")

</div>

Dear Tom,

Thank you for your kind help, I appreciate it much. I am at the starting  
point of studying GnuRadio and radio communication in general, so your  
support is valuable to me.

With best regards,

---

<div class="post-metadata">

**Author:** ![Anh\_Duc\_N](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/85e7bf/32.png) [@Anh\_Duc\_N](https://www.ruby-forum.com/u/Anh_Duc_N)\
**Post date:** [April 2, 2012, 8:02pm UTC](https://www.ruby-forum.com/t/a-question-on-the-order-of-the-processing-stages-for-the-psk-receiver/218493/4 "2012-04-02T20:02:13Z")

</div>

Dear Tom,

Thank you very much for your prompt reply. It is pretty new and makes  
sense  
to me. But I still have a little doubt, let me present it briefly as  
follows:

Denote omega(n) and d\_omega(n) the phases of psk and dpsk modulated  
signals, we have

omega(n) = d\_omega(n) - d\_omega(n-1)

Then

exp(j\* omega(n) ) = exp( j_d\_omega(n) - j_d\_omega(n-1) ) =  
exp( j_d\_omega(n) ) \* exp( -j_d\_omega(n-1))

In the case of (I^2+Q^2) is constant over time, we have the psk  
modulated  
signal is determined through the dpsk modulated signal:

y(n) = d\_y(n) \* d\_y\*\*(n-1); y(n), d\_y(n) are complex numbers,  
d\_y\*\*(n)  
is the complex-conjugate of d\_y(n)

And here is the point to do the differential decoding before symbol  
demapping, right?

But the question is what happens if the amplitude (I^2+Q^2) changes over  
time due to some transmission conditions, and in that case, do we have  
to  
normalize signal amplitudes, just consider the phases?

I am sorry if I disturb you with my lack of digital  
communications background ,

Thank you in advance,
