Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate and remove MPSK receiver #1083

Closed
n-west opened this issue Nov 4, 2016 · 9 comments
Closed

Deprecate and remove MPSK receiver #1083

n-west opened this issue Nov 4, 2016 · 9 comments

Comments

@n-west
Copy link
Member

@n-west n-west commented Nov 4, 2016

Deprecate and remove the C++ MPSK receiver block

  • gr-digital/include/gnuradio/digital/mpsk_receiver_cc.h
  • gr-digital/lib/mpsk_receiver_cc_impl.cc
  • gr-digital/lib/mpsk_receiver_cc_impl.h
  • gr-digital/grc/digital_mpsk_receiver_cc.xml

Rationale

This is a very specific implementation that would be more useful as an example using filter blocks and a constellation mod/demod pair. When deleting ensure that such an example exists.

@n-west n-west added this to the Release 3.8 milestone Nov 4, 2016
@n-west n-west added the digital label Nov 4, 2016
@jmcorgan jmcorgan self-assigned this Nov 12, 2016
@jmcorgan
Copy link
Contributor

@jmcorgan jmcorgan commented Nov 12, 2016

Implemented in #1097 for master and #1098 for next.

@jmcorgan
Copy link
Contributor

@jmcorgan jmcorgan commented Nov 15, 2016

Merged.

@jmcorgan jmcorgan closed this Nov 15, 2016
@centromere
Copy link

@centromere centromere commented May 8, 2017

When deleting ensure that such an example exists.

Where may I find this example? @jmcorgan @n-west

@intra-au
Copy link

@intra-au intra-au commented Nov 25, 2017

@n-west @jmcorgan can you please point me to the example using filter blocks and a constellation mod/demod pair (migration path from mpsk_receiver_cc if you will?)

@ecarl65
Copy link

@ecarl65 ecarl65 commented Sep 28, 2018

EDIT: After some searching it looks like there's a "generic" mod/demod example at gr-digital/python/generic_mod_demod.py. I'm not entirely sure if it includes all that I want (eg. the previous code handled pi/4 DQPSK), but I think it likely will with some tweaking of parameters. It appears to have the same types of inputs and outputs as the examples. Sorry for the confusion in the original comment.

Tagging @intra-au and @centromere to show them where the new examples live.

@cropinghigh
Copy link

@cropinghigh cropinghigh commented Nov 4, 2020

Sorry, can you please give an example of creating pi/4 DQPSK receiver without mpsk receiver? It it used in osmo-tetra, and i can't find replacement to mpsk_receiver.

@Roman-Port
Copy link

@Roman-Port Roman-Port commented Jan 6, 2021

For anybody still stuck on this removal like I was, this block essentially just combined a "Costas Loop" block with a "Clock Recovery MM" block. You can mostly copy the parameters directly from the old "MPSK Receiver" block to these two blocks. Here's an example. The top two blocks produce the same output as the bottom block. For me, I was using this block to implement RDS decoding.

image

The order of the Costas loop will let you pick what kind of PSK signal you're demodulating. I've only tried it with BPSK, order 2, so I might be wrong about this. From the Costas loop wiki page:

  • When order=2: used for BPSK where the real part of the output signal is the baseband BPSK signal and the imaginary part is the error signal.
  • When order=4: can be used for QPSK where both I and Q (real and imaginary) are outputted.
  • When order=8: used for 8PSK.

And finally, here is a full example of demodulating the signal in case it's helpful to anyone. Keep in mind that this example below has a lot of specific blocks needed just for what I was decoding that you may not necessarily need. I figure that it might be useful to somebody, though.

image

I'm still a little bit frustrated that this block was removed in the first place, though.

@cropinghigh
Copy link

@cropinghigh cropinghigh commented Jan 6, 2021

Very much thanks!

@cropinghigh
Copy link

@cropinghigh cropinghigh commented Jan 6, 2021

Unfortunately, this simple solution didn't worked in osmo-tetra. Costas Loop + Clock Recovery MM don't have Theta setting, that is set to pi/4 for pi/4 DQPSK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
7 participants