2010年11月21日星期日

Can I drive my USRP1 at 32M sample/s?

conf:
USRP1 GR3.3 RFX2400 ubuntu 10.04 kernel 2.6.32.25
Manual says the DAC rate of USRP1 is 128MHz, the interpolation rate should vary from 4 to 512, being a multiple of 4.
However, when I try to u.set_interp(4), it fails. u.set_interp(16) is OK.

I find a discussion about interpolation.
http://www.ruby-forum.com/topic/64788
'''
The USRP DACs sample at 128 MS/s.  You can't send samples that fast over
USB, so you send them at a lower rate.  When they get to the USRP, they
are interpolated to 128 MS/s.  If you have an interpolation rate of 16
(the minimum), you need to send 8 MS/S over the bus (16 * 8e6 = 128e6).
In essence, the USRP inserts 15 zeros between every sample you send it,
and then filters it so that the intermediate samples form a smooth
curve.
'''

In my experiment, I try to transmit 802.11 DSSS 1Mbps signal. The chip rate is 11Mbps. Supposing the perfect sampling is every 8 samples per chip, I need 88M sampling rate. Nevertheless, USRP1 only permit me to input a signal with 8M sampling rate.

I suppose DSSS is very robust, even at 8M sampling rate. If perfect sampling rate is 88M, there are 88 samples to present 1 bit. Now, the sampling rate is 8M, so I only extract 1 per 11samples. I still get a distorted sample sequency, with 8 samples to present a bit. Can this signal be decoded?

this table from http://gnuradio.org/redmine/wiki/1/USRP2GenFAQ, also tells that the RF bandwidth of USRP1 is only 8MHz.


# about bbn code
the receiver code of bbn 802.11b is OK; but the transmitter part is said to be not working.
In my environment, it can not build.
gnuradio-discuss has found that problem.
http://lists.gnu.org/archive/html/discuss-gnuradio/2010-05/msg00315.html
"
Douglas Geiger-2 wrote:
>
>  You probably want to take a look at the usrp2_version branch to see
> how to get the transmit code working with the hier_block2 API, and
> then modify it to work with the USRP1. Two things: you cannot transmit
> the 802.11b waveform through the USRP1 (you don't have enough
> bandwidth
- in the original code base I believe they simply skipped
> the DSSS step, and transmitted the pulse-shaped DPSK-modulated
> signal), also I believe the usrp2_version branch transmit code fixed
> some of the bugs in the original transmit code (i.e. using a USRP2,
> the transmit code could send a standard-compliant waveform).
>  Doug
"
PS:
uU = USRP underrun
uO = USRP overrun
aU = audio underrun
aO = audio overun

a discussion about interpolation rate
http://www.ruby-forum.com/topic/91092

没有评论:

发表评论