Re: The shortest pulse length


#1

I am only using 1 daughterboard. Sorry about the duc0 = 0 inclusion.
It’s something I neglected to remove when I was editing the original
file. I don’t think it should have any effect on what I am seeing
though. I set the duc frequency to 0 because I wanted to transmit at
baseband. I’ve already built the signal I want in the gr.vector, I just
want the daughterboard to pass it as is. I’ve managed to do that with
usrp_siggen.py. By setting the -f option to 0 and the -w option to some
frequency, I get a waveform of the -w frequency at the daughterboard
output. I’m pretty sure (0, 0) is TXA, and (1, 0) is TXB. My waveform
does appear at the TXB output when I run the script. The problem is the
pulse duration I’m seeing is much shorter (about 1/10) than what I
expect.

Regards

Lance

----- Original Message ----
From: David S. removed_email_address@domain.invalid
To: seph 004 removed_email_address@domain.invalid
Cc: removed_email_address@domain.invalid
Sent: Thursday, March 1, 2007 7:15:36 PM
Subject: Re: [Discuss-gnuradio] The shortest pulse length

On 3/1/07, seph 004 removed_email_address@domain.invalid wrote:

This is what I did:

def build_graph ():
nchan = 1
interp = 512
duc0 = 0
duc1 = 0
fs = 250e3 #2nd sample rate
between usb and dac

max_dev = 32e3                              #1st sample rate divided 

by 4 (1st = 2nd sample rate)
gain = 16e3
k = 2 * math.pi * max_dev / fs
vec1 = Numeric.arange (0.624, 0.656, 0.0000128)

vsource = gr.vector_source_f(vec1, False)
fmmod = gr.frequency_modulator_fc (k)
amp = gr.multiply_const_cc(gain)

fg = gr.flow_graph ()

u = usrp.sink_c (0, interp, nchan)

tx_subdev_spec = (1, 0) #usrp.pick_tx_subdevice(u)
m = usrp.determine_tx_mux_value(u, tx_subdev_spec)
u.set_mux(m)
subdev = usrp.selected_subdev(u, tx_subdev_spec)
subdev.set_enable(True)


sample_rate = u.dac_freq () / interp
u.set_tx_freq (0, duc0)
u.set_tx_freq (1, duc1)

Are you trying to use one daughter boards(nchen=1)? Why did you set
duc0 = 0? that means your frequency will not be set at all. You do
not need to do set_tx_freq() twice if you are using one daughter board.
you only need :
u.set_tx_freq (0, duc0) where duc0 is some frequency. Also, if you are
using the basic daughterboards, you need to make sure that you have the
output connector connect to TXA not TXB (according to your
tx_subdev_spec)

Hope this helped.

David


#2

On Fri, Mar 02, 2007 at 12:41:40AM -0800, seph 004 wrote:

when I run the script. The problem is the pulse duration I’m seeing
is much shorter (about 1/10) than what I expect.

Regards
Lance

Unless the total number of samples comes out to a multiple of 128,
some will left in the host buffer and not transmitted across the USB.
Try padding your vsource data with zeros to a multiple of 128.

Eric