Hi Andrea,

In the GNU Radio code base
(trunk/gnuradio-core/src/python/gnuradio/blks2impl) you can find DBPSK and
DQPSK modulators, which are used by the benchmark_tx/rx files found in the
gnuradio-example directory.  I looked at the python code and the modulators
are using a raised cosin as the TX/RX filter.  Perhaps you can swap out that
filter with the barker filter to test if the bits are being decoded
correctly.

--Colby

On Thu, May 14, 2009 at 6:51 AM, Costantini, Andrea <costant...@ftw.at>wrote:

> Dear all (especially people working on BBN code with USRP2),
>
> I know that some of you are working on simple_mac, higher modulation rates
> and so on.
>
> From my side I decided to spend some more time in understanding why the
> bbn_802.11_tx.py doesn't work when trying to receive with real 802.11
> chipsets in monitor mode (modified to disable the mac CRC check).
>
> After some inspection of the code, I believe that this is due to the Barker
> implementation.
>
> The code (bbn_firdes_barker.cc) does a convolution between an oversampled
> sinc function and the barker sequence (and takes by default exactly 8
> samples).
> The IEEE 802.11b standard doesn't say anything about how the barker
> sequence should be applied.
> Therefore I don't understand why the sinc convolution is used in the
> original code.
> (This could be (?) originally related to the limits in bandwidth of the
> USRP1?)
>
> Anyway the fft of the signal generated by the BBN code (with the -b option)
> has a spectrum completely different than the one generated by the 802.11
> chipset (compared by using usrp2_fft.py).
>
> I decided to re-implement the barker (de)spreading.
> I wrote a Matlab program where I simulated a usrp2 transmission in terms of
> fpga rate, interpolation, timing, and so on.
> As opposed to the convolution of the original BBN code, I used simple
> rectangular windows to represent the Barker sequence.
> I examined the spectrum of a train of these Barker sequences.
> In order to obtain exactly 22 Mhz bandwidth, the usrp2 parameters must be
> set in this way:
>
> - Samples per chip = 2;
> - Interpolation = 4;
>
> I did the following thoughts:
> - With barker sequence in DSSS mode we need to transmit 11Mchip/s in order
> to obtain a real transmission at 1MSymbols/s (= 1Mbit/s in this particular
> case).
> - 11Mchip/s means that we must transmit a single chip in about 91ns.
> - The FPGA is able to process exactly 9 samples in this time interval
> (100Msample/s -> a sample every 10ns).
>
> Now, if we consider that a barker sequence has to be transmitted in
> 1microsecond and the minimum interpolation is 4, we have to take 25 samples
> for each barker sequence in order to obtain EXACTLY 1Mbit/s.
>
> For the sake of simplicity I have tried with 22 samples per barker sequence
> (2 samples per chip) and I obtained a spectrum very similar to the one
> received from the chipset.
>
> I'm working on this right now. But I am still not able to receive frames on
> the real chipset.
> Do you see any mistake in my reasoning?
> Any suggestions/feedbacks/comments/critics/etc. :-) is very welcome.
>
> Regards,
> Andrea
>
>
>
> _______________________________________________
> 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

Reply via email to