4

Almost a month ago I started working on a digital communications project which involves GNUradio. And I am severely struggling to get past some errors or mismatches I am encountering in GNUradio. I am desperately in need of some expert help. I made a DQPSK modulator and demodulator using just GNURADIO companion.(screenshots provided) Block diagram of DQPSK

Gave a vector source with bits 0,1,0,1 and repeat on, on the input of PSK modulator. I also used an error rate block to calculate bit error rate. (Vector source is on ref of error rate block and DQPSK demodulator output is on input). I have connected wx gui scope to error rate block and constellation sink to PSK modulator. Now almost everything that is appearing on the scopes is completely wrong.

The bit error rate is 0.5, provided that I have added no noise (which is max considering that we will recover 50 percent bits correctly just by chance). The scope connected at the PSK modulator output shows four constellation points Even though I am transmitting only one symbol i.e (0,1).

What am I doing wrong? Can someone please be kind enough to go through the screenshot and tell me the mistake(s).

Bit error rate and constellation plot

Marcus Müller
  • 34,677
  • 4
  • 53
  • 94
anti mage
  • 41
  • 1
  • 5

1 Answers1

4

As Timothée Cocault said in his answer to your mail on the gnuradio-discuss@gnu.org mailing list:

Hi Haaris,

The documentation of the PSK Mod says : "The input is a byte stream (unsigned char), treated as a series of packed symbols. Symbols are grouped from MSB to LSB." You should add an "Unpacked to Packed block" with 2 bits per chunk and MSB endianness before. Likewise, you should add a "Pack K bits" block with K=2 after the PSK Demod.

Also, your assumption that you should have one point in the constellation sink is wrong. You're using DQPSK so the (0, 1) symbol will add 90 degrees to the phase, and you will cycle through the 4 points of your constellation.

And last, keep in mind that each block has a delay, and you can't compare the input and output bits directly. Try to use a "Scope plot" with 2 inputs, and add a delay block before the input bits to synchronise the two.

Timothée.

Marcus Müller
  • 34,677
  • 4
  • 53
  • 94