В этом примере показано, как инициализировать драйвер, считать несколько свойств драйвера и сконфигурировать выходной сигнал с помощью генераторов RF-сигналов Keysight Technologies и вывести результат в MATLAB ®.
Этот пример требует установки на компьютере следующего:
Библиотеки Keysight IO версии 17.1 или новее
Драйвер Keysight RF-генераторов IVI версии 1.5.0.0 или новее
Здесь перечисляются драйверы IVI, установленные на компьютере
IviInfo = instrhwinfo('ivi');
IviInfo.Modules
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 the MATLAB instrument driver makemid('AgRfSigGen','AgRfSigGen.mdd') % 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('AgRfSigGen.mdd', 'GPIB0::01::INSTR','optionstring','simulate=true'); % Connect driver instance connect(myInstrument);
% These values are defined in the driver's header file 'AgRfSigGen.h'
AGRFSIGGEN_VAL_LF_GENERATOR_WAVEFORM_SINE = 0;
Запросите информацию о драйвере и приборе
DriverIdentification = get(myInstrument,'Inherentiviattributesdriveridentification'); InherentIviAttributesInstrumentIdentification = get(myInstrument, 'Inherentiviattributesinstrumentidentification'); Utility = get(myInstrument, 'Utility'); Revision = invoke(Utility, 'revisionquery'); Vendor = get(DriverIdentification, 'Specific_Driver_Vendor'); Description = get(DriverIdentification, 'Specific_Driver_Description'); InstrumentModel = get(InherentIviAttributesInstrumentIdentification, 'Instrument_Model'); FirmwareRev = get(InherentIviAttributesInstrumentIdentification, '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');
Revision: 1.5.0.0 Vendor: Agilent Technologies Description: IVI Driver for Keysight Technologies RF Signal Generator [Compiled for 64-bit.] InstrumentModel: E4428C FirmwareRev: Sim1.5.0.0
fprintf('Carrier Signal:\n\t1GHz/0dBm (1 milliwatt)\n'); invoke(Utility, 'reset'); % Specifies the frequency of the generated RF output signal. Rf = get(myInstrument,'Rf'); set(Rf, 'Frequency', 1E9); % 1 GHz % Specifies the amplitude (power/level) of the RF output signal. set(Rf, 'Power_Level', 0); % 0 dB % Enable RF output signal. set(Rf, 'Output_Enabled', true);
Carrier Signal: 1GHz/0dBm (1 milliwatt)
% Disable amplitude modulation (AM) of the RF output signal AnalogModulationAM = get(myInstrument,'Analogmodulationam'); set(AnalogModulationAM, 'AM_Enabled', false); % Disable frequency modulation (FM) of the RF output signal AnalogModulationFM = get(myInstrument,'Analogmodulationfm'); set(AnalogModulationFM, 'FM_Enabled', false); % Disable phase modulation (PM) of the RF output signal AnalogModulationPM = get(myInstrument,'Analogmodulationpm'); set(AnalogModulationPM, 'PM_Enabled', false);
fprintf('Enable Amplitude Modulation (AM)\n\n'); % Get the analog modulation source name NameBufferSize = 256; ConfigurationLfGenerator = get(myInstrument, 'Configurationlfgenerator'); Lfg = invoke(ConfigurationLfGenerator, 'getlfgeneratorname', 1,NameBufferSize); % Set Lfg as amplitude modulation (AM) source set(AnalogModulationAM, 'AM_Source', Lfg); % Set Lfg as active LF generator LfGenerator = get(myInstrument, 'Lfgenerator'); set(LfGenerator, 'Active_LFGenerator', Lfg); % Generate a 2 kHz sine waveform modulation signal invoke(ConfigurationLfGenerator, 'configurelfgenerator', 2000, AGRFSIGGEN_VAL_LF_GENERATOR_WAVEFORM_SINE); % Enable amplitude modulation (AM) mode set(AnalogModulationAM, 'AM_Enabled', true);
Enable Amplitude Modulation (AM)
% 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); end
ErrorQuery: 0, No error.
disconnect(myInstrument);
% Remove instrument objects from memory
delete(myInstrument);
Этот пример показывает настройку и настройку выхода сигнала на генераторе радиочастотного сигнала с помощью драйвера IVI. Используя Instrument Control Toolbox™, можно автоматизировать управление инструментами, и, создать тестовые системы, которые используют MATLAB для выполнения анализа, который может быть невозможен с помощью встроенной возможности оборудования.