[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] questions about bpsk rx with different noise voltage

From: Alick Zhao
Subject: [Discuss-gnuradio] questions about bpsk rx with different noise voltage
Date: Thu, 12 Apr 2012 16:10:13 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120329 Thunderbird/11.0.1

Hi all,

I am learning to do some channel estimation using GNU Radio and USRP.
Currently I have done some simulation with file_sink/source and
gr_channel_model in GNU Radio, but I do not quite understand the
results. I'll explain my settings and simulation results below and hope
someone can give me some hints.

My set up is based on digital_bert_tx/rx.py under
gr-digital/examples/narrowband. I removed the scrambler/descrambler
block and also use bpsk modulation so that the ideal constellation
points should be just 1+0j. Then I add a channel for simulation (in the
rx part):

  self._chn = gr.channel_model(options.noise, 0, 1.0, [p2c(0.8, 30)])

where options.noise specify the additive noise voltage, and p2c(...)
give a channel h = 0.8 * exp(j*pi/6).

To simulate I use tx part to write to a data file 'air.dat', then use rx
part to receive and demod the signal.

The results are attached as three figures, each with the name indicating
the noise voltage specified on the command line. The black 'o's show the
symbols right after the simulation channel, and the margenta points show
the symbols after time_recov, and red ones show the constellation points
just before decision maker. The blue ones are meant to be estimated
channel info, which now is not correct.

Here are my questions:

1. The figures show that when noise is 1e-5 (which means SNR is about
100dB since the signal strength at tx is 1), the constellation point
after time_recov matches the received signal quite well and the
constellation point before decision maker is around 1+0j. So it means
that the Costas loop between the two recovers the signal from the phase
rotation caused by the channel?

2. When the noise is set to 1e-3, the constellation points after
time_recov form a unit circle. I wonder why the phases become so random.

3. When the noise is set to 1e-1, and the corresponding SNR is about
20dB(which I think is not quite low for practical application), both the
constellation points after time_recov and before decision maker appear
along side the unit circle. Also the BER is as high as about 0.5.  Why
the performance of the demodulator becomes so bad? Maybe some parameters
of the Costas loop can (or should) be adjusted?

4. I notice that the script use digital_constellation_receiver_cb block.
I doubt this block is a combination of digital_mpsk_receiver_cc and
constellation decoder. Particularly, I found the macros VERBOSE_MM and
M_TWOPI in digital_constellation_receiver_cb.cc unused. Is it intended?

Oh I need to mention that the simulation is based the source code GNU
Radio v3.5.3. I am still new to SDR so I really appreciate your help.


Attachment: 1e-5.png
Description: PNG image

Attachment: 1e-3.png
Description: PNG image

Attachment: 1e-1.png
Description: PNG image

reply via email to

[Prev in Thread] Current Thread [Next in Thread]