Hi Sri,
The time synchronization (i.e. bit timing) is done by the bbn.slicer_cc
module. There is no real phase or frequency synchronization, because the
demodulator uses a differential demodulation technique. I don't have any
text book reference, but the time synchronization basically passes the
channel filter though an energy detector and picks the sample offset with
the highest average energy. As far as the mod/demod it is just
differential phase shift keying, however it includes a "scrambler", which
XORs the data with a pseudo-random sequence in order to avoid long series
of modulated 1's or 0's. The code is complicated by the fact that all data
(including the preamble) passes through the scrambler, and qpsk packets all
start with some bpsk data, so the scrambler input needs to switch from bpsk
to qpsk at a precise point in the packet bit stream. The
bbn_dqpsk_demod_cb.cc function simultaneously demodulates dbpsk and dqpsk
and generates two output streams. The differential demodulation is done
using inner and outer products of the complex samples. (The current sample
is projected onto the previous sample, and the current sample is projected
onto a 90-degree rotated version of the previous sample.) A module higher
up the chain feeds the scrambler with the appropriate demodulator output
stream (bpsk, or qpsk), depending of the context of the packet being
demodulated.
-Dan
At 11:24 AM 6/26/2008, sri ram wrote:
Hello all,
I am trying to understand the BBN code for 802.11b. I must state
upfront that I am not an expert in communication systems.
802.11b uses dBPSK and dQPSK modulations for its 1Mbps and 2Mbps rates. I
explored how a dBPSK module looks like and I am able to make sense of the
code in gnuradio-core/src/python/gnuradio/blks2impl/dbpsk.py. The receiver
structure matches with what I have seen in communication textbooks.
However, the dBPSK demod receiver used in the BBN
code (gr-bbn/src/bbn/bbn_dpsk_demod_cb.cc) seems different from the
technique used in main gnuradio dbpsk module. This also does not include
timing and carrier sync loops. Can someone explain what this code does and
point me to any link/textbook which describes the demodulation technique?
Is there some documentation for the BBN code and references to the
text/paper for the mod/demod techniques used?
Thanks,
Sri
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio