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