Sample Rate

I have been playing with a number of the examples - FM NB and WB
receivers, AM receiver, etc.
The sample rate appears to default to 64 MSPS, but I have been unable
to find where that default rate is set.
Where is it defined? Can it be changed from the examples themselves?

For example, 64MPS is not a proper subsample rate for the FM broadcast
band.
It results in aliasing and should be reduced.

Dick…

On Jan 28, 2008 10:43 AM, Richard J. [email protected]
wrote:

I have been playing with a number of the examples - FM NB and WB
receivers, AM receiver, etc.
The sample rate appears to default to 64 MSPS, but I have been unable
to find where that default rate is set.
Where is it defined? Can it be changed from the examples themselves?

The 64MHz comes from the crystal that runs both the FPGA and other
digital electronics on the USRP. You cannot change the sample rate
unless you change the crystal (which I suppose isn’t recommended, but
hack away if you’re willing to!).

There is a programmable decimating CIC filter (up to 128x decimation I
believe) followed by a decimating halfband FIR filter (fixed 2x
decimation) implemented within the FPGA before you get to the host
processing.

For example, 64MPS is not a proper subsample rate for the FM broadcast
band.
It results in aliasing and should be reduced.

You could always put a bandpass filter inline to suppress anything
outside of the band(s) you may be interested in.

Other than aliasing, what other types of issues are you worried about
with regards to the high speed 64MHz sample rate?

Brian

On Mon, Jan 28, 2008 at 09:43:13AM -0600, Richard J. wrote:

Dick…
It’s not settable, but is determined by the master oscillator on the
USRP. If you’re using the Basic Rx or LF Rx daughterboards, yes you
will need some kind of preselector. If you’re using one of the RFX or
TVRX boards, the 64MS/s sample rate won’t be a problem.

Eric

On Mon, Jan 28, 2008 at 02:42:33PM -0600, Richard J. wrote:

For example, 64MPS is not a proper subsample rate for the FM broadcast
Eric

Eric,

Thanks for the quick reply.

No problem. Be sure to use the “Reply-to-all” command in your mailer
to ensure that both the sender and the list get a copy.

So, then I guess the ADCs run at the maximum sample rate all the time.
I thought I saw some other Python examples that set the sample rate to
20MSPS. I may have misinterpreted what I was reading. I’m new to Python.

There is some very old code kicking around that we used with the
Measurement Computing PCI-DAS 4020/12. It was a 20 MS/s device.

Once you’ve sampled the FM band at 64MSPS, I think it’s too late to do
anything to solve the aliasing problem.
The spectrum has already been folded. One would need to use some form of
down conversion before the ADC’s.

Yes, that’s why I mentioned the TVRX and RFX-* daughterboards.
The Basic Rx and LF Rx are really designed to be used with external
converters, filters, etc.

Is the oscillator running at 64 MHz, or is it divided down from a higher
frequency? I guess can inject an external oscillator if needed.

It’s running at 64 MHz.

My primary application is going to be low frequency phased antenna
arrays (Ham radio - 160M), so the high sample rate is ok (but not
really needed.) I can just decimate right away.

Good.

I recommend that you take a look at
gnuradio-examples/python/multi-antenna/*.py.
They use two Basic Rx daughterboards and 4 DDCs to generate 4 streams
of coherent samples – perfect for beam forming, etc.

Eric