Main Content

Read Waveform Data from Keysight® DSO-X 2002A Oscilloscopes Using the IVI-C Driver

This example shows how to initialize the driver, read a few properties of the driver, acquire waveform data using Agilent Technologies DSO-X 2002A oscilloscope and output the result in MATLAB®.


This example requires the following to be installed on the computer:

  • Keysight (Agilent) IO libraries version 17.1 or newer;

  • Keysight (Agilent) 2000, 3000, 4000, 6000 InfiniiVision X-Series Oscilloscope IVI driver version or newer;

Enumerate Available IVI-C Drivers on the Computer

This enumerates the IVI drivers that have been installed on the computer.

IviInfo = instrhwinfo('ivi');
ans = 

  Columns 1 through 6

    'Ag33220'    'Ag3352x'    'Ag34410'    'Ag34970'    'Ag532xx'    'AgAC6800'

  Columns 7 through 11

    'AgE36xx'    'AgInfiniiVision'    'AgMD1'    'AgRfSigGen'    'AgXSAn'

  Columns 12 through 13

    'KtRFPowerMeter'    'rsspecan'

Create MATLAB Instrument Driver And Connect To The Instrument

% Create the MATLAB instrument driver

% Use icdevice with the MATLAB instrument driver name and instrument's
% resource name to create a device object. In this example the instrument
% is connected by GPIB at board index 0 and primary address 1.
myInstrument = icdevice('AgInfiniiVision.mdd', 'GPIB0::01::INSTR','optionstring','simulate=true');

% Connect driver instance

Get General Device Properties

Query information about the driver and instrument

% Get information about the driver
Utility = get(myInstrument, 'Utility');
Revision = invoke(Utility, 'revisionquery');
DriverIdentification = get(myInstrument,'Inherentiviattributesdriveridentification');
InstrumentIdentification = get(myInstrument,'Inherentiviattributesinstrumentidentification');
Vendor = get(DriverIdentification, 'Specific_Driver_Vendor');
Description = get(DriverIdentification, 'Specific_Driver_Description');
InstrumentModel = get(InstrumentIdentification, 'Instrument_Model');
FirmwareRev = get(InstrumentIdentification, 'Instrument_Firmware_Revision');

% Print the queried driver properties
fprintf('Revision:        %s\n', Revision);
fprintf('Vendor:          %s\n', Vendor);
fprintf('Description:     %s\n', Description);
fprintf('InstrumentModel: %s\n', InstrumentModel);
fprintf('FirmwareRev:     %s\n', FirmwareRev);
fprintf(' \n');
Vendor:          Agilent Technologies
Description:     IVI driver for the Keysight 2000X, 3000X, 4000X and 6000X family of Oscilloscopes [Compiled for 64-bit.]
InstrumentModel: DSO-X 2002A
FirmwareRev:     Sim2.1.6.0

Setup The Measurements And Fetch A Waveform From The Oscilloscope

Measurement = get(myInstrument, 'Instrumentspecificmeasurement');
invoke(Measurement, 'measurementsautosetup');
WaveformArray = zeros(1,100);
[WaveformArray,ActualPoints,InitialX,Xincreament] = invoke(Measurement, 'measurementfetchwaveform', 'Channel1', size(WaveformArray,2), WaveformArray);

Visualize Data And Display Any Errors

% Display the fetched data

% If there are any errors, query the driver to retrieve and display them.
ErrorNum = 1;
while (ErrorNum ~= 0)
    [ErrorNum, ErrorMsg] = invoke(Utility, 'errorquery');
    fprintf('ErrorQuery: %d, %s\n', ErrorNum, ErrorMsg);
ErrorQuery: 0, No error. 

Disconnect the Device Object and Clean Up

% Remove instrument objects from memory

Additional Information:

This example shows the setup and acquisition of data from an oscilloscope using the IVI driver. Once the measured waveform is retrieved from the instrument, MATLAB can be used to visualize and perform analyses on the data using the rich library of functions in the Signal Processing Toolbox™ and Communications Systems Toolbox™. Using Instrument Control Toolbox™, it is possible to automate control of instruments, and, build test systems that use MATLAB to perform analyses that may not be possible using the built-in capability of the hardware.