discrete signals – DIgital QPSK demodulation of I/Q Data (Costas Loop, Symbol Sync, etc.)

I am trying to implement in hardware demodulation of QPSK-modulated I/Q samples from an SDR. The data would come from the reception of satellite transmissions. My approach is based on mapping onto hardware the architecture provided in GNURadio’s wiki page

However I am confused by the usage of the Symbol Sync block. From what I understand, the Costas loop already provides carrier recovery as well as phase/frequency alignment. Concretely, what function does it provide that the Costas loop cannot accomplish?

I am studying EE but have little formation in these topics, pointers to books/articles/other study material about these topics would be much appreciated 🙂
Thank you

Extra questions:
Considering the noticeable Doppler shift of received satellite data, is a Costas Loop still advised?
Would there be a way to combine both the Symbol Sync Loop and the Costas Loop if they are both necessary?
Does it even make sense to this in hardware (FPGA)?

Read more here: Source link