Introduction To Iq Tools Waveform Generation
Introduction To Iq Tools Waveform Generation
USER GUIDE
Notices
© Keysight Technologies 2023 government may use, modify, distribute, or NOT BE LIABLE FOR ERRORS OR FOR
disclose the Software. The EULA and the INCIDENTAL OR CONSEQUENTIAL
No part of this manual may be reproduced
license set forth therein, does not require DAMAGES IN CONNECTION WITH THE
in any form or by any means (including
or permit, among other things, that FURNISHING, USE, OR PERFORMANCE OF
electronic storage and retrieval or transla-
Keysight: (1) Furnish technical information THIS DOCUMENT OR ANY INFORMATION
tion into a foreign language) without prior
related to commercial computer software CONTAINED HEREIN. SHOULD KEYSIGHT
agreement and written consent from
or commercial computer software AND THE USER HAVE A SEPARATE
Keysight Technologies as governed by
documentation that is not customarily WRITTEN AGREEMENT WITH WARRANTY
United States and international copyright
provided to the public; or (2) Relinquish to, TERMS COVERING THE MATERIAL IN THIS
laws.
or otherwise provide, the government DOCUMENT THAT CONFLICT WITH THESE
Manual Part Number rights in excess of these rights customarily TERMS, THE WARRANTY TERMS IN THE
provided to the public to use, modify, SEPARATE AGREEMENT WILL CONTROL.
M8100-91B60 reproduce, release, perform, display, or
disclose commercial computer software or Safety Notices
Edition commercial computer software documen-
Edition 4.0, December 2023 tation. No additional government require-
ments beyond those set forth in the EULA CAUTION
Keysight Technologies Deutschland GmbH shall apply, except to the extent that those
Herrenberger Strasse 130, terms, rights, or licenses are explicitly A CAUTION notice denotes a hazard.
71034 Böblingen, Germany required from all providers of commercial It calls attention to an operating
computer software pursuant to the FAR and procedure, practice, or the like that,
Technology Licenses the DFARS and are set forth specifically in
if not correctly performed or adhered
The hardware and/or software described in writing elsewhere in the EULA. Keysight
shall be under no obligation to update,
to, could result in damage to the
this document are furnished under a
revise or otherwise modify the Software. product or loss of important data.
license and may be used or copied only in
accordance with the terms of such license. With respect to any technical data as Do not proceed beyond a CAUTION
defined by FAR 2.101, pursuant to FAR notice until the indicated conditions
U.S. Government Rights
12.211 and 27.404.2 and DFARS 227.7102, are fully understood and met.
the U.S. government acquires no greater
The Software is “commercial computer than Limited Rights as defined in FAR
software,” as defined by Federal Acquisition 27.401 or DFAR 227.7103-5 (c), as
Regulation (“FAR”) 2.101. Pursuant to FAR applicable in any technical data. WARNING
12.212 and 27.405-3 and Department of A WARNING notice denotes a hazard.
Defense FAR Supplement Warranty It calls attention to an operating
(“DFARS”) 227.7202, the U.S. government THE MATERIAL CONTAINED IN THIS procedure, practice, or the like that,
acquires commercial computer software DOCUMENT IS PROVIDED "AS IS," AND IS if not correctly performed or adhered
under the same terms by which the SUBJECT TO BEING CHANGED, WITHOUT to, could result in personal injury or
software is customarily provided to the NOTICE, IN FUTURE EDITIONS. FURTHER,
public. Accordingly, Keysight provides the
death. Do not proceed beyond a
TO THE MAXIMUM EXTENT PERMITTED BY
Software to U.S. government customers WARNING notice until the indicated
APPLICABLE LAW, KEYSIGHT DISCLAIMS
under its standard commercial license, ALL WARRANTIES, EITHER EXPRESS OR conditions are fully understood and
which is embodied in its End User License IMPLIED WITH REGARD TO THIS MANUAL met.
Agreement (EULA), a copy of which can AND ANY INFORMATION CONTAINED
be found at: HEREIN, INCLUDING BUT NOT LIMITED TO
http://www.keysight.com/find/sweula. THE IMPLIED WARRANTIES OF
The license set forth in the EULA represents MERCHANTABILITY AND FITNESS FOR A
the exclusive authority by which the U.S. PARTICULAR PURPOSE. KEYSIGHT SHALL
Generating RF / IF Waveforms 44
Instrument Configuration 45
Digital Modulations 58
Amplitude and Phase Corrections for Digital Modulation Waveforms 62
Radar Pulses/Chirps 63
Frequency Switching 70
OFDM 71
Serial Data Generation 72
Pulse/Function Generator 85
Load Waveform from File 89
Sequencer Setup 95
In-System Calibration 98
M8199A User Calibration In-System Calibration 100
Reset M8199A User Calibration 103
M8199A Multi-Module Skew Calibration 104
M8199B Multi-Module Skew Calibration 109
4 References
References 122
1 Introduction
Overview / 8
Software Installation / 9
1 Introduction
Overview
Limited Warranty
Software Installation
Once you have done that, you can easily start IQTools by typing iqtools
on the MATLAB command line.
• IQTools (Standalone Executable) - It is a compiled executable that
does not require a MATLAB license. The standalone executable version
does not allow you to extend or customize the functionality.
9 Click Finish.
This completes the IQTools installation process.
If you are using the source code version of IQTools, type iqtools on the
MATLAB command line. If you are using the compiled version,
1 Click Start > All Programs > iqtools.
The Keysight IQTools main window appears. At the bottom left of the
main window, you can find the build date (YYYY.MM.DD) plus “script”
or “compiled” to indicate which version of IQTools you are using. In
case you need support, include this version information.
Menu bar
The menu bar consists of various drop-down menus, which provide access
to all waveform generation utilities and functions, while the Button panel
contains short cuts to frequently used utilities.
Menu bar
The menu bar consists of various drop-down menus which provide access
to different functions, and launch interactive GUI controls.
File Menu
IQ & RF Menu
Digital Menu
Other Menu
Button Panel
The button panel refers to the area of the IQTools user interface that
allows you to launch different applications. The buttons on the main
window have the same functionality as the corresponding menu entries
described above. Only the commonly used functions are available as
buttons on the button panel. All other functions must be called through
the menu.
• File
• Load waveform from file: Allows you to feed external data to IQ
Tools by loading a waveform file. For more information, refer to
“Load Waveform from File” on page 89.
• Sequencer
• Sequencer setup: This is specific to M8190A and M8195A. All the
AWGs that support sequencing allow you to play sequential data by
entering the required fields and defining the sequence as per your
requirement. For more information, refer to “Sequencer Setup” on
page 95.
• In-System Calibration: Allows you to calibrate the instrument for
accurate waveform generation/acquisition by performing various
analyses on the instrument, plotting various graphs, and extracting the
data to display calibrated data. For more information, refer to
“In-System Calibration” on page 98.
• M81xxA specific function: The functionality of this button changes
depending on the selected AWG model. If you are using either the
M8190A or an M8195A, you will find some model specific functions,
such as, CATV Signal Generation, Sequencer Demo (Time Domain),
Radar Demo (Moving Target), 4-Channel Synchronization, and so on.
For more information, see “M8190A Specific Functions” on page 118.
• an eye diagram plot (for serial data waveforms only). It shows all
symbols in the waveform overlaid on top of each other. Unlike the
time-domain plot, the waveform is not shown as individual samples
with straight lines between them. Instead, the waveform is interpolated
to show a smooth transition between the sample points which
represents the behavior of the AWG output in a realistic manner,
without taking its specific bandwidth limitations into account.
• a CCDF plot (multi-tone, noise and digital modulation only). The CCDF
(Complementary Cumulative Distribution Function) plot shows the
probability of the signal being at or above a certain power level. The
power level is expressed in dB relative to the average power.
In the CCDF plot, the blue curve is the current signal, the red curve
shows the CCDF of a Gaussian noise signal with the same number of
samples in comparison.
All of the numeric input fields in IQTools will accept numbers in fixed point
or engineering notation. Numbers without units are interpreted as seconds
or Hertz, depending on the context. Optionally, unit indicators (s, sec, Hz),
including the usual prefixes can be used in the edit fields for scalar values
and simple lists of values, but not for MATLAB expressions. For example,
• 12e9 or 12g - to indicate 12 GHz
• 6.2e-9 or 6.2n or 6.2 ns - to indicate 6.2 Nanoseconds
• 3e6 or 3M or 3 MHz - is interpreted as 3 MHz. Note, that the “M” has to
be a capital “M” to distinguish it from the “m” (milli, 1e-3) prefix
• 2e-12 or 2ps - will be interpreted as 2e-12 (2 pico)
Some fields which are marked with (*) in the graphical user interface also
accept lists of values (that is, MATLAB vectors). Lists can simply be
specified by multiple values separated by spaces or commas. For example,
• 500k, 1M, 2M - to indicate a list of frequency values (500 kHz, 1 MHz
and 2 MHz. Since it is a simple list, unit prefixes are allowed.
• 1e6 * [0.5 1 2] - same as above. Note that “1e6” must be used in this
case. 1 M is not allowed because it is a MATLAB expression.
• 1u, 3.5u, 10u - to indicate 1 us, 3.5 us and 10 us. Since it is a simple
list, unit prefixes are allowed
In addition to numbers and lists of numbers, the fields also accept
formulas using MATLAB syntax. For example,
• 1e9-5e3 - to indicate 5 kHz less than 1 GHz (or 999.5 MHz)
• 100e6:10e6:200e6 - a list of values from 100 MHz to 200 MHz in steps
of 10 MHz
• linspace(100e6,200e6,11) - different way of describing the same as
above: 11 values evenly spaced between 100 and 200 MHz
• 100e6 * rand(1,10) - 10 random frequencies between 0 and 100 MHz
(“rand” is a built-in MATLAB function)
In addition to that, all of the input fields will evaluate variable names that
are defined in the MATLAB workspace and formulas using MATLAB
workspace variables. For example,
• Fs - can be used, for example, in the sample rate field if the variable
“Fs” is defined in the MATLAB workspace
• 1e6*f - can be used to specify a list of frequencies assuming that “f”
contains the list of frequencies in MHz
• fc-5e3 - center frequency minus 5 kHz – assuming that the variable “fc”
is defined in the MATLAB workspace
Waveform Display
The iqplot scripts can be used to display waveforms in both time and
frequency domains. You can use iqplot to display real and I/Q data that
has been generated by any of the waveform generation functions listed
above or by your own MATLAB functions. Iqplot is called as follows:
iqplot(data, fs [, options])
The first parameter (data) is the desired signal represented as a vector of
real or complex values in the range [-1…+1] and the second parameter (fs)
is the sampling rate in Hz.
Optionally, you can specify further parameters that will influence how
signals are being displayed:
• 'figure', N – the figure number to be used for plots (default is 1)
• 'no_timedomain' – the time domain plot will not be shown
• 'nospectrum' – the spectrum plot will not be shown
• 'smallspectrum' – only the “interesting” part of the spectrum will be
shown (that is, the frequency range where the signal is above -90 dBm)
• 'spectrogram' – shows a spectrogram of the signal
• 'constellation' – shows the waveform as a constellation diagram
• 'no_CCDF' – no CCDF plot will be shown
Waveform Download
The iqdownload script is used to download waveforms into the AWG and
start waveform generation. You can call iqdownload with a vector or array
of real or complex data that has been generated by one of the waveform
generation functions listed above or your own MATLAB functions.
Iqdownload is called is follows:
iqdownload(data, fs [, option, value])
The first parameter (data) is the desired signal represented as a vector or
array of real or complex values in the range [-1…+1] and the second
parameter (fs) is the sampling rate in Hz.
By default, the real part of the data vector will be downloaded to channel 1
of the AWG and the imaginary part will be downloaded to channel 2. If you
want the mapping to be different, refer to “‘channelMapping’” on page 41.
Do not call the download routines for individual AWGs directly, since the
interface might change over time. (such as, iqdownload_M8190A,
iqdownload_81180A, and so on.)
iqdownload accepts additional parameters as name/value pairs. These are
explained in the header section of iqdownload.m. Some of them are
explained in the following sections:
‘channelMapping’
channel 1 1 0 0 0
channel 2 0 1 0 0
channel 3 0 0 1 0
channel 4 0 0 1 0
...
‘marker’
The ‘marker’ parameter allows you to specify the signal that will be
generated out of the sample marker and sync marker signals. In general,
the ‘marker’ parameter must be a vector with the same number of
elements as there are samples in the waveform.
The values of the marker array are treated as integers where the lower four
bits represent the four markers (sample1, sync1, sample2, sync2).
• A zero means that all markers are 0.
• A value of 15 (=binary 1111) means that all four markers are on.
• A value of 5 (=binary 0101) means that the two sample markers are on
at the corresponding sample time).
Note that the markers in the M8190A cannot be arbitrarily turned on and
off at any sample location, but will have a certain minimum pulse width
(See datasheet for more details). An example MATLAB code that uses
markers is shown here:
%
% automatically generated code from IQTools
%
fs = 1.2e+10;
iqdata = iqmod('sampleRate', fs, 'numSymbols', 3000,
...
'modType', 'QAM16', 'oversampling', 12, ...
'filterType', 'Square Root Raised Cosine',
'filterNsym', 80, ...
'filterBeta', 0.35, 'carrierOffset', 1e+09, ...
'magnitude', [0], 'quadErr', 0, 'correction', 0);
Generating RF / IF Waveforms
Instrument Configuration
7 Depending on the selected AWG model and mode, you can configure
the other available parameters available on the Instrument
Configuration screen.
Most of the additional parameters have a “Set” checkbox next to them.
If the “Set” checkbox is not selected, this parameter is not touched by
IQTools, that is, it remains at its default value or whatever value it was
previously configured, such as, in the instrument SFP. If the “Set”
checkbox is selected, the corresponding parameter is overwritten by
the value specified in the IQTools configuration window.
Most of the parameter fields accept either a single value, which is used
for all AWG channels or a list of multiple values separated by space or
comma. In this case, the first value is used for AWG channel 1, the
second for channel 2 and so on. Note that changes to any of the fields
are only reflected in the hardware after you download a new waveform
from any of the waveform generation windows.
The following fields are available:
• User-defined default sample rate: When opening any of the
IQTools waveform generation windows, the “Sample Rate” field
is populated with the factory default sample rate for this AWG.
If you enter a value into the “User-defined default sample rate”,
that value is used as a default value when opening waveform
generation windows. You may still overwrite the sample rate
with a different value if desired.
• Trigger Mode: For AWGs that support triggering, you can
select between “Continuous”, “Triggered”, “Gated” or “Leave
unchanged” .
• Delay: For AWGs that support this function, you can set the
(analog) delay for each channel in this field.
• Amplitude: For AWGs that support adjustable amplitude, you
can set the amplitude for all channels or for each channel
individually.
• Offset: For AWGs that support adjustable offset, you can set
the amplitude for all channels or for each channel individually.
• Amplifier Type: For AWGs that support multiple output paths,
you can select the desired amplifier path.
• Clock Source: For AWGs that support different clock/reference
c l o c k s o u rc e s , y o u c a n s e l e c t t h e d e s i re d c l o c k
source/reference clock source.
• Clock Frequency: When selecting an external clock source or
external reference clock source, you can specif y the
clock/reference clock frequency.
• Use DAC range: Use this field to specify what percentage of the
DAC full-scale range will be used. Usually, this field should be
left at 100% (that is, use the full range).
• Interleaving Mode: Select this check box if you externally
interleave two AWG channels. This function is only supported
and tested with the M8190A. For the M8199A, DO NOT select
this check box, but use the mode selection to configure
interleaved mode.
The Multi-Tone and Noise screen can be used to generate single tone,
two tone, multi tone signal with equidistant or non-equidistant spacing as
well as band-limited noise. “Notches” with variable width and depth can
be included with multi-tone or noise signals.
The algorithm in the multi-tone utility always calculates complex-valued
signals (I & Q). If you need a real-valued (non-I/Q) signal, simply choose
your tone frequencies to be all positive (or all negative). In this case, you
can simply ignore the “Q” row in the channel-mapping dialog.
If you use an AWG in conjunction with an I/Q modulator (such as, M8190A
connected to a Vector PSG), your range of tones can be from – FS/2 to +
FS/2. The I/Q modulator will move the frequency range to its carrier
frequency.
• To use the multi-tone utility, click Multi-Tone & Noise under the IQ &
RF pane.
The following figure displays the Multi-Tone & Noise parameters:
In the following sections, some special cases are described that can be
covered by the multi-tone utility.
Noise
If you just select the number of tones and a start and stop frequency, the
tones will be distributed equidistantly between the start and stop
frequency. The algorithm will put a tone on the start and stop frequency
itself. You should take this into account when selecting the number of
tones. E.g., if you want equidistant tones from 1 GHz to 2 GHz with 10
MHz spacing, you should choose 101 tones (not 100).
For non-equidistant tones, set the number of tones to “1” and enter the list
of tone frequencies that you would like to generate in the Stop frequency
field. You can use MATLAB expressions such as:
100e6 * [-3 -1 4 5 7.5 9]
This will generate tones at -300, -100, 400, 500, 750 and 900 MHz.
You can use the Notch feature to generate tones at different relative
amplitudes. You must only define a Notch for each tone (or range of tones)
that you want at a different level.
Example:
1 Set the Number of tones to 1 and the Stop Frequency to: 100e6 *
[-3 -1 4 5 7.5 9] to generate tones at -300, -100, 400, 500,
750 and 900 MHz. Without anything else, they will all have the same
relative amplitude.
2 Check the Notch check box, and enter 100e6 * [-3 -1 4 5
7.5 9] in the Notch frequency field.
3 Change the Notch span to 1e6 (can be any number > 0 because you
just want to hit that specific tone) and enter -5 +5 -10 +10 0 0
in the Notch depth field. This will change the relative amplitude of the
tones.
This works both with individual tones as well as with tone ranges.
4 To see an example with tone ranges at different levels, click on Preset
> Multi-tone with multiple Notches in the Multi-tone utility.
5 Click Visualize in MATLAB or Download to see the result in MATLAB
resp. in hardware.
Spec.An (zero span) Spectrum analyzer uses “zero span” mode. While the AWG generates the desired multi-tone signal, the SA center frequency
is set to one tone at a time.
Pro: reasonable measurement speed, resilience against small tone deviations (for example, if AWG and SA are not frequency
locked)
Con: SA’s frequency response behavior is different between zero-span mode and regular swept mode, which leads to
inaccuracies
Spec.An (markers) Spectrum analyzer is set to swept mode. AWG generates the desired multi-tone signal. An SA “Marker” is used to measure
the magnitude of each tone.
Pro: fastest measurement speed, consistent results (because SA is always in swept mode)
Con: due to small frequency deviations between AWG and SA, markers sometimes don’t hit the peaks of tones
Spec.An (list sweep) AWG generates the desired multi-tone signal. Spectrum analyzer uses “List Sweep” mode to measure all tone magnitudes at
the same time.
Pro: fastest measurement speed
Con: same as zero span
Spec.An (single tone) AWG is programmed to generate one tone at time instead of the whole multi-tone signal.
VSA (amplitude only) AWG generates the desired multi-tone signal. The VSA software is configured to capture the whole bandwidth of the signal
and uses a marker to measure the magnitude of each tone.
Pro: works with SA or oscilloscope
Con: same as “Marker” mode with spectrum analyzer
VSA (amplitude and AWG generates the desired multi-tone signal. The VSA software is configured to capture the whole bandwidth of the signal
phase) and measures magnitude and phase of each tone.
Pro: can measure (and correct for) amplitude and phase
Con: same as “Marker” mode with spectrum analyzer
Power sensor AWG is programmed to generate one tone at time instead of the whole multi-tone signal. Power sensor is used to measure
the power of each tone.
Pro: power sensor yields more accurate magnitude results compared to a spectrum analyzer
Once the measurement has completed, the result is stored in IQTools and
can be used to correct for amplitude/phase compensation in the waveform
calculation routine.
This amplitude correction can later on also be used by the other waveform
creation utilities to improve the flatness. The amplitude flatness correction
can compensate non-flatness on the output of the AWG or perform
correction even after I/Q up-conversion in a signal generator. In this case,
the magnitude response of the signal generator is also compensated.
To perform an amplitude correction:
1 Use the Configure Instrument Connection tool to set up the
communication parameters for the AWG, spectrum
analyzer/oscilloscope/VSA.
2 Choose the desired measurement algorithm in the popup menu (see
table above).
3 Set the Start/Stop/number of tones parameter to generate a
multi-tone signal that spans the entire frequency range that need to be
corrected later on. Do not configure any notches for the correction
measurement.
A good starting point for the M8190A is the Preset 101 tones, +/- 1
GHz, asymm. (can be found in the menu bar) if you are generating I/Q
data. For a direct IF/RF signal (not using I/Q), choose a range of
frequencies that are all positive. A larger number of tones will improve
the accuracy, but increase the measurement time. Around 100 – 200
tones produces reasonable results. For demo purposes, 30 or 40 tones
are good enough. To get optimal results, the Phase should be set to
Random and when using I/Q up-conversion, the tones should be
selected such that the images don’t fall on top of generated tones.
(that is, don’t use symmetrical intervals around 0 Hz).
4 Click Download once to see how the un-corrected waveform looks like.
The multi-tone calibration works either with direct AWG output or with
I/Q output going into the wideband modulation inputs of a PSG and
measuring the PSG output. (Ensure that Apply Correction check box is
clear).
5 Set the center frequency (“Fc – for calibration only”) in the Multi-Tone
GUI to zero if you analyze the direct AWG output. If you have the I/Q
signals connected to a PSG and correct the flatness of the final RF
output, enter the Carrier frequency set in the PSG. If you are
up-converting using a mixer, enter the difference between the LO and
IF frequency (LO – IF) if you are looking at the mixer’s upper sideband.
For the lower sideband, enter -1 * (LO + IF).
Ensure that Apply Correction check-box is clear to start a new
correction measurement.
6 Click the Calibrate button. Depending on the selected measurement
mode, the spectrum analyzer or oscilloscope will perform a
measurement. The result is used as the “current” correction. (The
current correction result is stored in the file C:\users\<username>\
AppData\local\Keysight\iqtools\ampCorr.mat. Usually, there is no
need to access this file directly). The measured frequency response is
also displayed as a MATLAB plot. This plot is just for your information
and can be closed if it no longer needed.
To further improve the calibration, you can run it again, taking the
previous correction factors into account. Experience shows that after
running the calibration about three times, no further improvement can
be achieved. The red graph indicates the measured deviation for each
tone from the average tone power. It should get close to the zero line
as you perform repeated calibrations.
7 The saved correction factors can be used by the other utilities (iqmod,
iqpulse, iqfsk) as well. Make sure to enable the Apply Correction in the
respective utility.
When performing the amplitude correction, ensure that the start and end
NOTE frequencies span at least the same range of frequencies that you will use
later on in other utilities.
Digital Modulations
Radar Pulses/Chirps
In addition to repeating the same pulse over and over, the IQTools pulse
utility allows you to generate a sequence of pulses with different PRI, pulse
width, rise/fall time, center frequency, and so on.
This can be achieved by specifying multiple separated by spaces or
comma in one or more of the following fields: PRI, pulse width, rise time
fall time, initial delay, amplitude, frequency offset, frequency span.
The number of pulses that will be generated is equal to the maximum
number of values in these fields. The values for the other fields will be
repeated as many times as needed to achieve the same number of values.
Example: PRI contains three values (8 us, 6 us, 4 us), amplitude contains
fivevalues (0, -2, -4, -6, -8), frequency offset contains two values (1G, 2G)
and frequency span contains only one value (100M). In this case, five
pulses are generated, because five is the maximum of (3, 5, 2, 1). The PRIs
for the five pulses will be 8 us, 6, us, 4 us, 8, us, 6 us. The offset
frequencies will be 1G, 2G, 1G, 2G, 1G and the frequency span will be
100M for all five pulses.
See also
Frequency Switching
OFDM
The serial data utility allows you to generate digital (NRZ) or multi-level
(PAMx) serial signals with adjustable transition times with or without
additional distortions.
• To use the Serial Data utility, click Serial data generation under the
Digital pane.
The following figure shows the Serial Data window:
• Shift: when type of data is set to PRBS, this value will “shift” the PRBS
pattern by the given number of symbols. This can be useful to generate
e.g. two PRBS patterns with the same length on two AWG channels,
but have them “misaligned” by a certain number of symbols.
• User defined data: The User defined data field is only visible if Type of
Data is set to “User defined”. It contains a MATLAB expression that
evaluates to a vector of “symbol” values. The values must be in the
range 0….1, with 0 representing the lowest voltage level and 1 the
highest voltage level. For NRZ signals, the field typically contains a
vector of 0’s and 1’s. For PAM4, the nominal values are 0, 1/3, 2/3 and
1.
You can either fill in a list of values separated by spaces or comma (such
as, 1 0 0 1 1 1 0 1 0 0 1) or a MATLAB expression that evaluates to a vector
of values (such as, to generate a vector of 256 random 0’s and 1’s, you can
put in the expression: randi([0 1], 256, 1)). To make PAM4 signals easier to
read, it can be written as 1/3*[0 1 2 3 …], instead of 0, 1/3, 2/3, 1 …
In addition to the “nominal” values (0 & 1 for NRZ; 0, 1/3, 2/3, 1 for PAM4),
you can also use any fractional value between 0 and 1 to represent
intermediate voltage levels. E.g., 0, 0, 0, 0.8, 0, 0, 0 can be used to
generate an isolated “1” that does not quite reach the correct voltage
level.
To simplify generating PRBS sequences with errors in them, the User
defined data field behaves as follows:
• Whenever you change the selection in the Type of Data drop-down
menu, the corresponding data pattern is copied to the User defined
data field. (E.g., when you select PRBS2^7-1, PAM4 as the Type of
data, the User defined data field changes to “1/3 * [1 2 2 3 2 2 3 1 2
3 3 2 3 0 1 3 2 3 3 1 3 0 3 3 2 0 0 1 1 2……]”).
• If you change the selection to User defined data afterwards, that
same data pattern will be generated. Now you have the possibility to
change individual symbols by changing one of the numbers in the
square brackets to another number in the range 0…3 or even force
the signal to go through the middle of an eye by changing one of the
numbers to a fractional value between 0 and 3.
• User pattern file: This field is only visible when type of data is set to
“Pattern from file”. Supported file formats are .TXT, .CSV and .PTRN.
TXT and CSV format are expected to contain a sequence of symbol
values separated by spaces or newlines. The same values as described
in “User defined data” described above are supported. The .PTRN
format is a legacy file format from BERT pattern generators.
If the result of the convolution exceeds the DAC range, the signal is
automatically scaled back to the full DAC range in order to avoid
clipping.
• Pulse shaping filter: The selection in this field determines which
algorithm is used to translate the sequence of digital symbols into a
waveform that can be played back by the AWG. Unlike a pattern
generator, where one symbol per clock cycle is generated, an AWG
typically uses more than one sample per symbol to generate a digital
signal. The oversampling ratio (sample_rate / symbol_rate) does not
need to be an integer value.
Figure 7 Adding up shifted copies of the impulse response yields the final signal
Both algorithms (transition time and RC/RRC) work with NRZ signals as
NOTE well as multi-level (e.g. PAM-4) signals.
• Transition Time: this field is only visible when Pulse Shape Filter is
set to Transition Time. As described above, this field defines the
duration of a transition segment as relative to the symbol duration
or unit interval (UI).
Note, that this parameter describes the “0 to 100%” transition time.
The 20/80 resp. 10/90 transition times will be shorter.
The background of this field turns yellow if fewer than four samples
can be placed on the transition. In that case, you can still get a valid
signal, but it may be distorted.
It is possible to specify rise and fall time to be different values by
putting two values into the “Transition Time” field, separated by a
space or comma. Example: 0.3 UI rise time, 1 UI fall time:
• NSym / Alpha: These two fields are only visible when Pulse Shape
Filter is set to Raised Cosine or Root-Raised Cosine. The NSym field
defines the length of the RC/RRC filter in number of symbols. For
smaller values of Alpha, a larger NSym should be chosen because
the “wiggling tails” of the filter reach out further. IQTools populates
this field with a reasonable default value depending on the Alpha
value. However, this value can be overwritten. Note, that NSym
must be less than (number_of_symbols – 5).
In the Alpha field, the roll-off factor of the RC/RRC filter can be
defined. The alpha value must be greater than zero and less or equal
to 1. The value of Alpha determines the bandwidth of the generated
signal. The nominal bandwidth can be calculated as: symbol_rate *
(1 + alpha) / 2.
• Jitter frequency and shape: These parameters define the frequency
of added periodic jitter and the shape of the jitter function. Note,
that the jitter frequency may be rounded such that an integer
number of jitter periods fits into the generated signal. Example: if
the signal is 1 us long and a jitter frequency of 20.1 MHz is selected,
it will be rounded to 20 MHz, since round(1 us * 20.1 MHz) /
1 us = 20 MHz.
• Jitter pp: Peak-peak deviation of the periodic jitter. The value is
given as a fraction of the unit interval (UI). A value of 1 (or larger) will
cause the eye diagram to be completely closed. If this field is zero,
no periodic jitter will be added.
• RJ pp: Peak-peak deviation of pseudo-random jitter. Just like
periodic jitter, this pseudo-random jitter is calculated into the
signal. Since the signal is played back repetitively, so is the jitter. So,
it is in fact not truly “random”. The jitter function is similar to a
gaussian deviation, but with a peak value that is limited at 6 times
the RMS value.
• SSC frequency and depth: these parameters define the frequency
and depth of spread-spectrum clocking function. Note that the SSC
frequency may be rounded such that an integer number of periods
fits into the generated signal. Example: if the signal is 100 us long
and the SSC frequency is set to 33 kHz, the frequency is rounded to
30 kHz, since round(100 us * 33 kHz) / 100 us = 30
kHz. The SSC depth is given in percent of a unit interval (UI).
Example: If the SSC depth is set to 2%, the period-to-period
deviation is 2% of a UI when the SSC function is at its maximum
value. Note, that the absolute timing deviation is usually much
larger than the SSC depth because the absolute deviation is the
cumulative sum of the period-to-period deviations.
Relationship between symbol rate, number of symbols, sample rate and number of
samples
In most cases, the IQTools algorithm takes care of calculating the desired
waveform given the parameters in the serial data window. Occasionally,
that is not possible and an error message will pop up. In this case, it is
helpful to understand what the limitations are, so that parameters can be
Both the left and right-hand side of this equation represent the overall
signal duration. On top of that, most AWGs impose a certain granularity
requirement on the number of samples in a waveform (for example, the
number of samples must be a multiple of 512 for the M8195A). If you
choose fixed values for sample rate, symbol rate and number of symbols, it
is very likely that the resulting number of samples does not meet the
granularity requirement. Normally, the algorithm takes care of that be
replicating the waveform a sufficient number of times to meet the
granularity requirement. But sometimes, this may not be possible because
it exceeds the available amount of memory. In this case, either the sample
rate or the number of symbols must be modified.
If the sample rate is fixed (that is, the “Auto” check box next to sample rate
is not selected), IQTools will modify the number of symbols, otherwise,
IQTools will modifty the sample rate in order to meet the granularity
requirements.
Example: Using the M8195A, we want to generate a PRBS 2^15-1 at 25
GBaud. Initially, using a sample rate of 64 GSa/s in 4-channel mode with
only 256 kSa/channels available.
The number of symbols is 2^15-1 = 32767. Using the formula above, the
number of samples is calculated as 32767 * 64G / 25G = 83883.52
samples. This is obviously not possible because an AWG cannot generate a
fractional number of samples. Repeating this waveform 25 times makes it
an integer number: 25 * 83,883.52 = 2,097,088. But this number is still not
divisible by 512. To meet this requirement, the signal must be repeated a
total of 200 times, which makes it 200 * 83883.52 = 16,776,704 samples.
Now this number by far exceeds the available memory size of 256 kSa.
There are several possibilities to work around this situation:
i Checking the “Auto” checkbox next to Sample Rate allows the
IQTools algorithm to choose a “convenient” sample rate. With
that, IQTools rounds the “exact” number of samples (83,883.52)
to the nearest multiple of the granularity (83,968 samples) and
adapts the sample rate to 64.064455 GSa/s, such that the
Pulse/Function Generator
• Repeat Interval: Is calculated based on the pulse width, rise time, fall
time and off-time parameters.
• Frequency: Is calculated as 1 / repeat_interval.
• Off DAC, On DAC: Defines the (normalized) DAC levels for the On-time
and Off-time of the pulse (refer to the figure above). A value of 1 refers
to the maximum DAC value, -1 refers to the minimum DAC value.
• Pulse shape: Selects the “shape” of the transition. The following figure
shows a comparison of the available transition shapes:
In addition to repeating the same pulse over and over, the IQTools pulse
utility allows you to generate a sequence of pulses with different pulse
width, rise/fall time, off-time, DAC On/Off values.
This can be achieved by specifying multiple values separated by spaces or
comma in one or more of the following fields: pulse width, rise time fall
time, off-time, On-DAC, Off-DAC. Through the combination of these
parameters, it is possible to define quite complex pulse shapes.
The number of pulses that will be generated is equal to the maximum
number of values in these fields. The values for the other fields will be
repeated as many times as needed to achieve the same number of values.
Example: Pulse width contains 3 values (8 us, 4 us, 1 us), rise/fall time
contains a single value (1 us), On-DAC contain 3 values (1, 0, -0.5),
Off-DAC contains a two values (-1, 0.5). In this case, 3 pulses are
generated, because 3 is the maximum number of values. The resulting
pulse looks like this:
• Sample Rate: If the “From File” check box is selected, the AWG sample
rate is read from the file (CSV with header or MATLAB format). If the
“From File” check box is clear, the sample rate must be specified in this
field.
• # of samples is filled in with the actual number of samples after the
“Visualize in MATLAB” or “Download” button is clicked.
Resampling panel
• Resampling check box: Enables / disables software re-sampling. Using
this functionality, a waveform file that was sampled at a low sample
rate can be brought into the sample rate range of the AWG.
• Resampling Method: The following methods are available:
• resample: uses the “resample” function that is built into MATLAB.
Note, that this function does not protect the beginning and end of
the waveform from resampling artefacts (unless windowing is also
enabled).
• interpolate: resample the data at a higher rate through lowpass
interpolation using the MATLAB function “interp”. Note that this
method can only be used with an integer resampling ratio.
• FFT: It works by first calculating the FFT of the waveform, then
extending the frequency domain signal with zeros followed by an
inverse FFT. This method works well if the original waveform is
periodic. The periodicity is preserved. This method uses the MATLAB
function “interpft” to perform resampling. This method works well
for periodic waveforms and retains the periodicity. This method
might be slow for large waveforms or large resampling factors (>>
10 MSamples).
Windowing panel
• Windowing check box: turns windowing functionality on or off.
Windowing can be used to avoid a spectral glitch when there is a phase
discontinuity or a sudden transition between the end of the waveform
file and the beginning.
• Windowing method: The Cosine Taper method smoothly fades out
both the beginning and end of the waveform, such that the transition
will always be at zero, while the Crossfade method creates an overlap
between the end and beginning of the waveform, similar to a dissolve
operation.
The following three graphs in Figure 15 show the transition from the
end of a waveform (blue) to the beginning of the waveform (red) under
different windowing methods. In this example, there is both a level as
well as a phase discontinuity in the original waveform.
Scaling panel
• Apply Scaling check box enables / disables scaling of the input
waveform. If it is turned off, waveforms that are smaller than the [-1 …
+1] interval will not use the full DAC range, which causes a degradation
of the signal-to-noise ratio. Except for special purposes, this check box
should always be selected.
• Scaling maintains zero: When enabled, it causes the scaling to be
symmetrical around zero, i.e. the sample values are simply multiplied by
a certain value. If this check box is cleared, the waveform is scaled such
that its maximum equals the “Scale max” value and its minimum equals
the “Scale min” value. A waveform value of zero may or may not end up
at zero after this operation.
• Scale max/Scale min defines the maximum/minimum of the waveform
values after scaling.
Sequencer Setup
For some of the AWG models (currently M8190A, M8195A and 81180A),
IQTools also support the sequencer that is built into these AWGs. To set up
a sequence, you must first define and download the individual waveform
segments that will later be combined into a sequence. Then, you can
define the sequence itself. The sequence is a table that describes which
waveform segment to use, how often it will be looped and under which
condition the next segment will follow.
To define the individual waveform segments, use the Segment Number
field that is available in each of the individual waveform tools (Multi-Tone,
Digital Modulation, Radar Pulse, and so on.)
Next, open the Sequencer Setup tool from the IQTools main window and
edit the sequence table:
• To use the Sequencer Setup utility, click Sequencer Setup under the
Sequencer pane.
The following figure shows the Sequencer Setup window:
In each row of the sequence table, you can do the specify the following:
• The waveform segment that you would like to generate.
• The number of times this waveform segment will be looped,
• Under which condition the sequencer will advance to the next
segment.
• Whether the marker outputs that you have defined for this segment will
be output.
You can insert and delete rows from the table with the respective buttons
and also display all the available segments (M8190A only) or delete all of
them. Note that when you delete all segments, you have to go back to the
waveform tools and download the segments again.
Once you press the Download and Run button, the sequence table will be
downloaded and the AWG starts to generate the programmed sequence.
The Advance Modes offers the following choices:
• Auto – The waveform segment will be looped for the programmed
number of times. Then, the sequence will automatically proceed to the
next table entry
In-System Calibration
This feature allows you to calibrate the instrument for accurate waveform
generation/acquisition by performing various analyses on the instrument,
plotting various graphs, and extracting the data to display calibrated data.
• To use the In-System Calibration utility, click In-System Calibration
under the Sequencer pane.
The following figure shows the Frequency/Phase response calibration
window.
This window displays how the data is calibrated as per channel mapping
and other connections. Whenever the user opts for in-system calibration,
these calibrations will automatically be performed, provided the required
hardware connection is available.
This feature allows you to store the calibrated value in the user calibration
area using the cal table on the module itself.
1 Setup the M8199A multi-module configuration. For more information,
refer to “Instrument Configuration” on page 45.
2 Click In-System Calibration under the Sequencer pane.
The following figure displays the Frequency/Phase response
calibration parameters.
• Run Action
4 Click Run.
The calibration between the AWG channels and Scope channels will be
performed.
5 To de-skew the scope channels, click Run again. This will consider
channel 1 as the benchmark and performs signal de-skew between
channels (1-2), channels (1-3), and channels (1-4).
The Overwrite or Merge dialog box appears. The following options are
available:
• Overwrite: To store the calibrated value in the user cal table.
• Merge: To merge only certain channels.
• Cancel: To cancel the calibration.
6 Click Overwrite to store the calibrated value in the user cal table.
Once the calibration executes successfully, you will see the magnitude
and phase response graphs on the right side of the screen.
This feature allows you to reset the M8199A user calibration. This will clear
all the older values from the cal table.
1 Click In-System Calibration under the Sequencer pane.
2 Go to File > Reset M8199A User Calibration.
4 Click Run.
Once the reset process is complete, you will see the magnitude and phase
response graphs on the right side of the screen.
The following progress window is displayed when you click the option
to perform the M8199A MultiModule Skew Threshold Cal. Note that
this step takes approximately 15 minutes to complete.
Overview
Note that the IQTools utility automatically checks and prompts you in
case a skew threshold cal was already performed with the current
module configuration. For example, when the clock / sync cable
between M8199B and M8008A has been changed, a new calibration is
required. In such cases, the IQTools utility starts the Multi-Module
Skew Threshold calibration process.
While the calibration is being performed, a progress window is
displayed.
The skew is then measured between the channels. At the end of the
calibration process, the measured values are written in a user cal table
on each module. Therefore, even after a power cycle of the chassis, the
skew values are retained.
Correction Management
Concept of operation
Next, the real and imaginary parts of the waveform are mapped to AWG
channels (as defined by the channel mapping) and the per-channel
corrections for the specific channel is applied:
S-parameter panel
It allows you to control some more M8190A specific functions, such as,
CATV Signal Generation, Sequencer Demo (Time Domain), Radar Demo
(Moving Target), 4-Channel Synchronization, and so on.
The IQTools utilities (except iserial) can also be used to generate baseband
signals for the M8190A operating in Digital Up-conversion (DUC) mode. In
order to use DUC mode, use the configuration window and select one of
the DUC mode (x3, x12, x24 or x48) in the Instrument Model pop-up
menu. Optionally, you can also select the carrier frequency in the same
window. After you click OK, open any of the IQTools utilities and define the
baseband waveform.
Notice that the Download pop-up menu now shows RF to channel 1 and
RF to channel 2 as the possible selections.
When working with the M8192A SYNC module, ensure the following:
• You have an M8190A firmware instance running for each of the two
modules.
• You have an M8192A firmware/SFP running.
• You have both M8190A VISA addresses and the M8192A VISA address
configured in the IQTools configuration window.
With these prerequisites, the Download To button in each of the utilities
allows you to select to which of the four channels your real and imaginary
part of the waveform will be downloaded. It is possible to load the same
component to multiple channels.
9 Click Automated De-skew. This will synchronize the two first channels
on both modules.
If an error message pops up, look at the scope – it should display the
rising edge of a square wave on channel 1 and 2. If one (or both) of the
channels show no signal, double check the connection diagram. Also,
make sure you using the correct output (DAC out vs. DC out).
10 The modules are now synchronized – you should see all 4 scope
channels perfectly aligned on the oscilloscope screen.
11 Choose one of the waveforms in the drop-down menu and click the
Start or Stop buttons to see how different waveform can be loaded
without changing the skew between the modules.
4 References
References / 122
4 References
References
M8100-91B60
www.keysight.com