On Wed, Jul 17, 2013 at 11:20 AM, yeran <[email protected]> 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 > _______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
