Spectral Shape of USRP Interpolation Filter

This is my first post to the mailing list, so please bear with me if it
is a
little lengthy. After running some tests on the interpolation filters
for
the USRP, I’ve found that the filter has a significant loss at the
Nyquist
frequency. From my measurements, I observed about 16 dB of attenuation
from
DC to Nyquist.

The following describes the equipment, parameters, and setup of the
experiment:

The data was collected using a National Instruments spectrum analyzer.
The
USRP board, with a FLEX400 daughter board, was connected to the NI
spectrum
analyzer through an SMA cable and a series of attenuators. We generated
a
complex exponential with fixed amplitude, with usrp_siggen.py, and
swept
it from DC to Nyquist and observed the received power on the NI spectrum
analyzer.
We observed from the frequency response of the received signal that the
interpolation filter for the USRP had about 16 dB of attenuation (from
DC to
Nyquist). For this particular experiment, the following parameters were
used:

  • Interpolation Factor = 64 (i.e. sample rate = 2 MHz)
  • Carrier Frequency = 420 MHz
  • Attenuation = 24 dB (4 x 6 dB attenuators)
  • Transmitted Waveform Amplitude = 1000

A figure of our results can be found at:
http://hydra.ece.utexas.edu/internal/

So after all that explanation, here are my actual questions:

  1. Shouldn’t the interpolation filter have a spectral response that is
    almost flat from DC to Nyquist? This would require that the upsampled
    sequence occupy some excess bandwidth, but I don’t really see any
    problem
    with such a design.

I realize that one solution might be to oversample my transmitted signal
in
software before sending it to the USRP. However, I was hoping to avoid
doing
additional interpolation.

  1. Also, is there any way to modify the shape of the interpolation
    filter?
    In particular, has anyone implemented other interpolation filters and a
    mechanism for selecting from such a set?

On Tue, Apr 24, 2007 at 06:32:49PM -0500, Ketan M. wrote:

USRP board, with a FLEX400 daughter board, was connected to the NI spectrum

  • Carrier Frequency = 420 MHz
    sequence occupy some excess bandwidth, but I don’t really see any problem
    with such a design.

I realize that one solution might be to oversample my transmitted signal in
software before sending it to the USRP. However, I was hoping to avoid doing
additional interpolation.

  1. Also, is there any way to modify the shape of the interpolation filter?
    In particular, has anyone implemented other interpolation filters and a
    mechanism for selecting from such a set?

What were the command line arguments you specified to usrp_sigggen.py?

What command line parameter were you sweeping?

Eric