# BPSK demodulation

**URL:** <https://www.ruby-forum.com/t/bpsk-demodulation/230522>\
**Category:** GNU Radio\
**Created:** [June 21, 2014, 7:18pm UTC](https://www.ruby-forum.com/t/bpsk-demodulation/230522 "2014-06-21T19:18:31Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jason\_sam](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/7993a0/32.png) [@jason\_sam](https://www.ruby-forum.com/u/jason_sam)\
**Post date:** [June 21, 2014, 7:18pm UTC](https://www.ruby-forum.com/t/bpsk-demodulation/230522/1 "2014-06-21T19:18:31Z")

</div>

Hello,

If UHD source acts as a mixer, why some examples (like usrp\_rx\_hrpt) use  
baseband information as the input of a PLL?

Thank you in advance

---

<div class="post-metadata">

**Author:** ![pablo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ad7895/32.png) [@pablo](https://www.ruby-forum.com/u/pablo)\
**Post date:** [June 22, 2014, 11:05am UTC](https://www.ruby-forum.com/t/bpsk-demodulation/230522/2 "2014-06-22T11:05:21Z")

</div>

Hi Pablo,

short answer: Because radio is hard, you need to do corrections before  
you actually have your signal where you want it, e.g. at 0Hz.

long answer: The USRPs have mixers, yes. But you can’t tell such a  
device just to “tune to that e.g. GSM channel”; this will not work due  
to frequency offsets. Two non-synchronized oscillators will never  
exhibit exactly the same frequency. Also, even with perfect oscillators,  
due to doppler, you might have to shift your input signal around until  
it ends up where you want it. There’s a lot of more things affecting the  
characteristics of your signal, so phase and frequency synchronization  
is usually necessary for a working receiver. With broadband receivers,  
you might even want to pick up multiple senders, so you’ might have to  
have a reception branch for each of them, each having a different  
frequency (and frequency error) and timing…

By the way, many textbooks and papers on communication (especially on  
communication networks) just assume your receiver is synchronized, and  
then start of calculating error curves for arbitrarily low SNRs.  
I sometimes find this kind of funny, because synchronizing is often a  
very hard part of the implementation, and also because frequency and  
time synchronizing to a signal that has a very low SNR is not really  
easy, and can often only be done using an impressive amount of  
processing gain.

Greetings,  
Marcus
