discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] constellation algorithm at benchmark


From: Nathan West
Subject: Re: [Discuss-gnuradio] constellation algorithm at benchmark
Date: Wed, 17 Jul 2013 11:55:19 -0400

On Wed, Jul 17, 2013 at 11:20 AM, yeran <address@hidden> wrote:
> Hi Dear All,
>
> Recently, I've been working with benchmark_rx.py in narrowband. I'm using
> bpsk.
> I don't really understand what happens in the demodulator.
>
> In the generic_mod_demod.py, the receiver block act as the constellation or
> mapping function. Previously, I thought for bpsk, it is just if the sample
> as complex number's real part is bigger than 1, then it is mapped as 1,

I think you want to make the decision on if the real part is bigger
than 0. Deciding if real(symbol) > 1 would be more like ASK.

> otherwise, it is mapped as 0. But apparently, it is not what all happens
> there, since the output of the receiver (rx_unpack.8b) is not the same
> result.


As you probably noticed since you looked at generic_mod_demod the
demodulator is actually a hierarchical block with the following
connections:
input -> agc -> FLL -> RRC filter -> clock sync -> constellation
receiver [-> differential decoder[ [-> symbol mapper] -> bit unpacker

The RRC filter is a decimating filter that takes number of samples per
symbol and outputs a symbol (a single complex number). This is (or
should be) a matched filter to the one on the RRC on the transmitter
which outputs samples per symbol for every symbol input.
The constellation receiver is converting that symbol to a bit (in the
case of BPSK, or bits for higher PSKs). If you look in
digital_constellation_receiver you'll see the general_work function
calls d_constellation->decision_maker_pe. For BPSK we gave this block
a BPSK constellation. It's decision_maker is defined in
digital_constellation; just search for bpsk in there and you'll see
the decision is made based on the sign of the real part.

The final part of the generic demod is a bit unpacker which will
output regular chars the way you would expect (so your whole bit
stream is the same as what you put in to the modulator).

>
> I noticed there are some phase error, and frequency error check. Anyone has
> any idea how these parameters work, how it will effect the mapping result?

I haven't ever touched these, but I think the setup_logging stuff just
dumps lots of data like phase error to files. I'm not sure if that
answers your question or not though. What checks are you talking
about?

>
> Thanks in advance. Look forward to any suggestions!
>
> Ada
>



reply via email to

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