Question:
How do I create an arbitrary waveform with the Agilent
33120A?
Answer:
A custom waveform that can be designed to meet the user s
needs within the performance of the Agilent 33120A Getting Started
- Arbitrary Waveform
- A custom waveform that can be designed to meet the user s needs within the
performance specifications of the Agilent 33120A. Also called arbs, or arb
functions.
- Built-In Arbitrary Waveforms
- The Agilent 33120A has five built-in arbitrary waveforms. These waveforms
come standard with the Agilent 33120A, and can not be erased or modified.
The built-in waveforms are sinc, negative ramp, exponential rise,
exponential fall, and cardiac.
- Non-Volatile Memory
- Memory that is not erased when power is cycled or when the unit is turned
off. The Agilent 33120A has four non-volatile memory locations that may be
used to store user-defined arbitrary waveforms.
- Volatile Memory
- Memory that is erased when power is cycled or when the unit is turned off.
The Agilent 33120A has one volatile memory location that may be used to
create or edit user-defined arbitrary waveforms, or to output user-defined
arbitrary waveforms that will not be saved.
- Arb Length
- The number of horizontal points used to define an arbitrary waveform.
Between 8 and 16,000 points may be used for each waveform. The number of
points used will define the maximum frequency at which the arbitrary
waveform can be output. 12,288 to 16,000 points can be output up to 200 kHz.
8,193 to 12,287 points can be output up to 2.5 MHz. 8 to 8,192 points can be
output up to 5 MHz.
- Arb Level
- The vertical position of the arbitrary waveform at a particular point in
the waveform. This is used when creating or editing waveforms. The Agilent
33120A has 12 bit vertical resolution, or 4096 discrete points. The arb
level is used to create a normalized version of the arbitrary waveform.
There are two formats to the arb level; binary integers or floating-point
numbers. In the floating-point format, the arb level ranges between -1 and
+1. In the binary format, the arb level values range between -2047 and
+2047. From the front panel, only the floating-point format may be used.
We wish to create a 16,000 point arbitrary waveform like, store it in
non-volatile memory, and output it as a 1 kHz, 5 Vpp waveform.
- Clear the memory. Turn on the menu by pressing [SHIFT] [ON/OFF].
Press the right arrow until you see EDIT MENU, then press the down arrow.
Press the down arrow again to enter the NEW ARB menu. Press the right arrow
until you see CLEAR MEM. Press [ENTER] to clear the memory and exit the
menu.
- Set the number of points. Press [SHIFT] [RECALL MENU] to go
directly to the last command you used before exiting previously (NEW ARB).
Press the right arrow. You should see POINTS. Press the down arrow to enter
the parameter. Using the arrow keys, the knob, or the enter number methods,
adjust the number of points to 16,000. Press [ENTER] to save the change and
exit the menu.
- Enter the line edit menu. Press the [SHIFT] [RECALL MENU] to go
directly to the last command you used before exiting previously (POINTS).
Press the right arrow. You should see LINE EDIT. Press the down arrow to
enter the parameter.
- Set the start point. The first point in the waveform is 0. For a
waveform with n points, the last point is n-1. The five digits to the left
of the colon is the waveform point, the five digits to the right of the
colon is the arb level. The comma at the end of the line signifies that you
are editing the start point. Set the arb point and the arb level for the
first part of the line and press [ENTER]. The start point for your first
segment is [00000:-1.0000].
- Set the end point. The end point has the same format as the start
point with the exception of the comma. Enter the parameters for your end
point. The end point for your first segment is [05999:-1.000]. The line edit
mode will draw a line between the two points you have entered and fill in
the points for you. Press [ENTER] to save the line and to continue editing
the waveform.
- Finish the waveform. Continue to create the waveform by entering
the start and stop point of the other three lines that make up your
waveform. When complete, turn off the menu. The other three lines will have
start and stop points as follows:
-
Save the waveform. Press [SHIFT] [RECALL MENU] to enter the edit
menu again. Press the right arrow until SAVE AS is displayed on the screen.
Press the down arrow to enter the parameter. Press the right arrow until
you see ARB1 *NEW*. If you have already stored a waveform as ARB1, you
will see ARB2, ARB3, or ARB4 followed by *NEW*, depending upon how many
waveforms you have stored. Press [ENTER] to store your waveform and exit
the menu.
-
Select the arbitrary waveform. Press [SHIFT] [ARB LIST] to see the
selection of arbitrary waveforms that may be output. Use the right and
left arrow keys to scroll through the choices. When you have reached the
desired waveform, press [ENTER]. This waveform will now be output.
-
Set the frequency and amplitude of the waveform. Adjust the frequency
to 1 kHz using the arrow keys, the knob, or the enter number methods. Adjust
the amplitude to 5 Vpp in the same manner.
Programming Example Below is a sample program in HP Basic for the front-panel
example. The example set up a 16,000 point arbitrary waveform, saved it into
non-volatile memory, and output it as a 1 kHz, 5 Vpp waveform.
10 !
20 DIM Waveform (16,000) ! dimension 16000 point array
30 INTEGER I ! declare integer value
40 CLEAR 7 ! clear bus interface
50 ASSIGN @Gen TO 710 ! assign I/O path to address
60 OUTPUT @Gen;"*RST" ! reset the function generator
70 ! CREATE THE ARBITRARY WAVEFORM
80 FOR I=1 TO 6000
90 Waveform(I)=-1 ! create first segment
100 NEXT I
110 FOR I=6000 TO 8000
120 Waveform(I)=(I-7000)/1000 ! create second segment
130 NEXT I
140 FOR I=8000 TO 14000
150 Waveform(I)=1 ! create third segment
160 NEXT I
170 FOR I=14000 to 16000
180 Waveform(I)=(15000-I)/1000 ! create 4th and last segment
190 NEXT I
200 ! DOWNLOAD AND STORE THE WAVEFORM
210 OUTPUT @Gen;"DATA VOLATILE,";Waveform(*)
220 OUTPUT @Gen;"DATA:COPY PULSE, VOLATILE"
230 ! OUTPUT THE ARBITRARY WAVEFORM
240 OUTPUT @Gen;"FUNC:USER PULSE" ! select active arb waveform
250 OUTPUT @Gen;"FUNC:SHAP USER" ! output arbitrary waveform
260 OUTPUT @Gen;"FREQ 1000" ! waveform frequency is 1 kHz
270 OUTPUT @Gen;"VOLT 5" ! waveform amplitude is 5 Vpp
280 END
Deleting Waveforms To delete a waveform from the front panel, press
[SHIFT] [RECALL MENU] to return to the edit menu. Press the right arrow until
DELETE is displayed on the screen. Press the down arrow, and press the right
arrow until you see the waveform you wish to delete. Press [ENTER] to delete the
waveform and exit the menu. You can not delete the arbitrary waveform that is
currently in memory.
To delete a waveform over the bus, the command is DATA:DEL ARB1. ARB1
can be replaced by another name, to match the waveform you wish to delete. You
can not delete the arbitrary waveform that is currently being output, and you
can not delete any of the five built-in arbitrary waveforms. To delete all
user-defined arbitrary waveforms (any user defined waveform in volatile memory
and all user defined waveforms in non-volatile memory), use the command DATA:DEL:ALL.
If one of the waveforms is currently being output, the active waveform will not
be deleted. All other waveforms will be deleted and error +787 (Cannot delete
an active arb waveform) is generated.
Revision 1.0 22 Mar 99
cld