gnuradiognuradio-companionusrpmodulation

BPSK demodulation using an USRP N210 and GNU Radio


I'm trying to implement a BPSK demodulation on GNU Radio using a USRP N210. However I'm not quite getting the results I was hoping for.

I'm using the "Symbol Sync" block for timing synchronization and the "Costas Loop" block for carrier recovery as you can see in the flowgraph below :

gnuradio flowgraph

The results I'm getting are the following, as you can see I'm getting two separate lines while I should be obtaining only two dots :

Results

I think there there might be errors in my parameters. Do you have any idea on what could be wrong ?


Solution

  • I would say that this is good first approximation of BPSK receiver. You do not show how your transmitter is organized, so many things have to be assumed and there is no clear answer of the questions, only recommendations.

    1. As it was mentioned in the comment, your sample rate is too low and cannot be achieved by USRP. Even 200 ksps is close to the limit of the radio. The clock rate of ADC of N210 is 100 MHz. In order to achieve 200 ksps, the radio has to decimate by factor of 500. The maximum factor for N210 is 512, so even 200 ksps is too much work for the radio.
    2. There is possibility of frequency difference between TX and RX, that can not be compensated by costas loop, so this may be the source of the problem.
    3. You are using shaping filter in transmitter and there is no matched filter in receiver. The matched filter could be incorporated in the timing synchronization (symbol clock), but I would suggest to divide the functions of matched filtering and synchronization by diffrent bloks.
    4. At the end of receiver you need demodulator.