Need help implementing TX pattern on USRP2+WBX

Hello:

I asked a similar question a couple of days ago, but I’m still
struggling, so I would be really thankful for any help I can get.

I have a USRP2 board and a WBX daughterboard running with GNU Radio
3.3.0 on Linux.

I am trying to implement a scheme where time is divided into equal-size
intervals. There would be three types of intervals. For some intervals,
I want to transmit a sine tone for the entire interval. For other
intervals, I want to transmit silence for the entire interval (i.e.,
turn off the tone and transmit all zeros). And then for other intervals,
I want to transmit the tone, but in an on-off pattern, cycled for five
times within the interval (i.e., transmit the tone within the interval
but multiplied by a 50% duty cycle square wave with 5 cycles within the
time interval). The tone used in each interval could be any one of a set
of ten fixed tones (such as 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 kHz).

The user would define the interval duration on the command line (i.e.,
500ms or 1s). Also, for each interval, the user would define on the
command line the interval type and which frequency of the set of
frequencies to use. Also the total number of intervals would be
specified on the command line.

Here’s a crude depiction of the three interval types,
shown back-to-back, not-to-scale, respectively:

sine | 2 kHz on-for- | off-for- | 5 kHz
|
tone:
|entire-interval|entire-interval|on-off-on-off-on-off-on-off-on-off|
| | |
|
time: 0 1 2
3

How could I implement this? I’m somewhat new to Python and GNU Radio,
and I’m getting nervous because I need to get this done, but I’m a
little lost.

Thanks for your help everyone.

Steve McMahon

On Sat, Dec 04, 2010 at 12:00:37AM -0800, Steve M. wrote:

The user would define the interval duration on the command line (i.e., 500ms or
1s). Also, for each interval, the user would define on the command line the
interval type and which frequency of the set of frequencies to use. Also the total
number of intervals would be specified on the command line.

Hi Steve,

if I understand this, you configure your signal once, at the beginning?
In that case, there are several ways to do this. The simplest (and a
rather crude way) is to pre-calc the signal and dump it into a vector
source, then set that to loop. That’ll get you up and running in no
time.

A more elaborate way would be to use GR-internal blocks to generate the
individual signals; however, to switch between them in a precise manner
(i.e. to get the exact number of samples from every signal input) you
would have to write your own switching block. However, that would give
some opportunity to change the signal during run time.

Hope this was any help…
MB


Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin B.
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-3790
Fax: +49 721 608-6071
www.cel.kit.edu

KIT – University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association