| This document
describes the shaped-pulse feature available on certain
models of the RadioProcessor.
If equipped, the RadioProcessor is
arbitrary waveform generation on its analog output. This feature
the for the following:
Figure 1: Sinc-shaped soft pulse. Pulse duration is 0.5 ms.
The AWG system is flexible and can be programmed with a wide variety of parameters. For example as shown in the figures below, you can generate pulse sequences that have pulses with multiple different amplitudes and it is also possible to generate both hard and soft pulses in a single pulse program. The shape of the pulse is not limited to a sinc-shape. It is user-loadable with any arbitrary waveform.
Combinations of RF pulses - variable amplitudes (top image) and soft-
and hard-pulses in a sequence (bottom image)
To make use of the AWG feature, use the pb_inst_radio_shape() function to generate the instructions of your pulse program. This function has two additional parameters over the standard pb_inst_radio() function. They are:
use_shape: if this is 0, no shape will be applied to the pulse. If it is nonzero, whatever waveform is loaded as the shape will be used to shape the RF pulse. The shape waveform can be loaded by the user with the pb_dds_load() function
amp: This selects which amplitude register to use. The values stored in the amplitude register can be set with the pb_set_amp() function.
Two other functions are used to control the AWG features.
pb_set_amp() - This function sets the values of the amplitude registers to the given values. There are 4 amplitude registers, so any pulse program can use four distinct amplitude values on its output.
pb_dds_load() - This function loads both the DDS waveform, and the shape waveform. The DDS waveform is loaded with a sinewave by default, so you do not need to re-load it unless you wish to use a different shape.
Two example programs are included with spinapi in the RadioProcessor directory to demonstrate how the AWG capabilities are used.
The first is awg.exe, which is a simple demo program which you can use to view the AWG outputs on your oscilloscope. By default, this program generates two sinc-shaped pulses back to back followed by a 1ms delay. You can enter the amplitude for each one, as well as the desired RF frequency to be used. The TTL outputs are enabled at the same time the pulses are generated, and can be used as the trigger for the oscilloscope. The RF output can be viewed on another channel.
The source code for this program is well documented, please take a look to gain a better understanding on how the AWG features of the board are controlled.<> The second program is spnmr_shape.exe . This program functions identically to the single_pulse_nmr.exe program described above, except that it generates a soft (sinc-shaped) excitation pulse instead of a hard pulse. There is also an additional command line parameter which allows you to specify the amplitude of the generated pulse.
Backwards compatibility with older code.>
If you have a
RadioProcessor board, you can still use older code which uses the pb_inst_radio()
This code will still behave correctly, since it will default to not
using any shape, and using amplitude register 0. The pb_set_defaults()
always initializes amplitude register 0 to 1.0, and the DDS waveform
is loaded with a sinewave, so the code will continue to operate the
same as it did on previous generations of the RadioProcessor board
which did not have AWG capabilities.