Forum: GNU Radio Re: The shortest pulse length

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
seph 004 (Guest)
on 2007-03-02 10:42
(Received via mailing list)
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 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



----- 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)
    subdev = usrp.selected_subdev(u, tx_subdev_spec)

    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

Hope this helped.

Eric B. (Guest)
on 2007-03-02 19:07
(Received via mailing list)
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.

This topic is locked and can not be replied to.