Did anyone use it to receive pi/4 DQPSK signal before?
In the op25-dev project http://sedition.org.au/op25/ we see a
very common variant of PI/4 DQPSK, so-called CQPSK/LSM.
Experimentation has shown that the gr_mpsk_receiver_cc() is not
optimal for CQPSK. There seem to be multiple causes, e.g.,:
PI/4 (D)QPSK apparently looks enough like 8-PSK that the standard
GR QPSK phase detector has difficulty achieving phase lock. There’s
a hack to rotate the second of every two symbols by 45 degress which
seems to give a large improvement [see Fig 10. of my LSM page
at http://www.lightlink.com/mhp/lsm/ ]
At least for the specific case of LSM/CQPSK, it was found that a
Gardner symbol timing loop was superior to the M&M loop (and to the
GR PFB clock sync block) as used in the GR receivers.
The op25 site has example code for using both the gr_mpsk_receiver_cc
as well as a complete working example using Gardner’s method, including
the PI/4 hack mentioned above.
Finally, you should also take a look at the new “magic” PFB receiver
(dqpsk2.py in GR) for your application…