Mother of god, I'm doing FFTs with 16e6 points in them at 16Msps!


#1

By not using the built-in-to-grc LOG POWER FFT block, and careful
selection of blocks, and eliminating blocks I didn’t
need (like the single-pole IIR filter), I was able to cut the virtual
size of the process from over 7GB to 3.5GB. Still too
large by (I think) a factor of two or more.

By hand-patching the grc_gnuradio/usrp library to load the 4rx_0tx FPGA
file, I can do decim=4 with 8-bit
samples, which allows me to squirt 16Msps over the USB.

So, anyone want to buy me another 4GB of 667Mhz memory :slight_smile: :slight_smile: :slight_smile:

There are some spectral “funnies” using this scheme, since there’s no
half-band filter, one has to rely on
external filtering. The DBS_RX has a programmable low-pass on the I
and Q baseband outputs, which
I program with my usrp_ra_receiver code, but I have no way to do that
within GRC, as far as I can tell.
(Is there a way to put in arbitrary code blocks in GRC to do things
like setup the low-pass filters on
the DBS_RX???).


Marcus L.
Principal Investigator, Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org


#2

Marcus D. Leech wrote:

So, anyone want to buy me another 4GB of 667Mhz memory :slight_smile: :slight_smile: :slight_smile:

There are some spectral “funnies” using this scheme, since there’s no
half-band filter, one has to rely on
external filtering. The DBS_RX has a programmable low-pass on the I
and Q baseband outputs, which

is this the set_bw() function?

I program with my usrp_ra_receiver code, but I have no way to do that
within GRC, as far as I can tell.
(Is there a way to put in arbitrary code blocks in GRC to do things
like setup the low-pass filters on
the DBS_RX???).

yes, you could take the usrp_simpl_source_x.xml from grc, and put a
modified version into the ~/.grc_gnuradio/ folder

See http://gnuradio.org/trac/wiki/GNURadioCompanion#AddingCustomBlocks

you can add the lines to the :

self.$(id)._subdev.set_bw(xxx)
self.$(id)._get_u().set_frimware(yyy)