Help with USRP


#1

Hello everybody!

I have series of questions dealing with GNU Radio / USRP.
I am trying to tx a controlled simple sine signal using a USRP v1. The
specs I am using are:

  • SIN Frequency: 1 MHz
  • SIN Amplitude: 16k (not relevant in my case for now)
  • SIN Sample Frequency = dac_rate/interpolation_rate
  • dac_rate = 128 MS/s
  • interpolation_rate = 36
  • set_tx_freq = 1 MHz

This produces two tones : the first one at 1.5 MHz and the second one at
2 MHz that I cannot explain !

I tried to change the interpolation rate to 4, 8, 16… but for values
less than 36, I see a “UuUuUu…” sequence appearing on the screen. This
means that my computer is not providing the samples fast enough. My
hardware at this moment is a Celeron@1.5GHz, 1Gb of RAM.

To overcome this, I put my HD in a Quad-Core, 8 Gb of RAM, and tried
again. This produces the same results, but I was able to reduce the
interpolation rate down to 16. Less than this rate makes the “UuUu…”
appear again. So, with interpolation_rate = 16 the tones seen on the
spectrum analyzer screen went down from 1.5 MHz to ~1.3 MHZ and from 2
MHz to ~1.7 MHz.
I’ve been trying to change all available parameters (the interpolation,
frequency, amplitude, etc) but the result is never what I am looking
for!

I based my program in the example max_power.py.

What can I do to generate a signal, on which I can control perfectly the
frequency, through the USRP?

The tx parameters are:

####SIGNAL#####
waveform = sin
freq = 1MHz
sample_rate = 128e6/16
amplitude = 16e3

####USRP######
set_tx_freq = 1 MHz
set_mux = 0x98
nchannel = 1
set_interp_rate = 16

Any idea, constructive comment, example is welcome !

Thank you all!


#2

Hi,

  1. USRP1 minimum interpolation rate is 16. You cannot go lower.

  2. If you want to transmit signals, use usrp_siggen.py or modify it to
    do what you require.

Regards,

Firas