В этом примере показано, как инициализировать драйвер, считайте несколько свойств драйвера и получите использование спектра сигнала спектр Rohde & Schwarz анализатор и визуализируйте спектр в MATLAB®.
Этот пример требует, чтобы следующее было установлено на компьютере:
Rohde & Schwarz Spectrum Analyzer Версия драйвера 1.0 IVI-C x64 или более новый
Это перечисляет 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('rsspecan','rsspecan.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('rsspecan.mdd', 'GPIB0::01::INSTR','optionstring','simulate=true'); % Connect driver instance connect(myInstrument);
Запросите информацию о драйвере и инструменте
Utility = get(myInstrument,'Utility'); InherentIviAttributesInstrumentIdentification = get(myInstrument, 'Inherentiviattributesinstrumentidentification'); InherentIviAttributesDriverIdentification = get(myInstrument,'Inherentiviattributesdriveridentification'); Revision = get(InherentIviAttributesDriverIdentification, 'Revision'); Vendor = get(InherentIviAttributesDriverIdentification, 'Driver_Vendor'); Description = get(InherentIviAttributesDriverIdentification, 'Description'); InstrumentModel = get(InherentIviAttributesInstrumentIdentification, 'Model'); FirmwareRev = get(InherentIviAttributesInstrumentIdentification, '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: Driver: rsspecan 1.0 (1.0.0.14), Compiler: CVI 13.00, Components: IVIEngine 14.00, VISA-Spec 5.40 Vendor: Rohde&Schwarz Description: Rohde & Schwarz Signal and Spectrum Analyzer IVI-C Driver InstrumentModel: FSW-26 FirmwareRev: 1.30
% These constants are defined in the IVI header file 'IviSpecAn.h'
IVISPECAN_VAL_DETECTOR_TYPE_AUTO_PEAK = 1;
IVISPECAN_VAL_VERTICAL_SCALE_LINEAR = 1;
IVISPECAN_VAL_AMPLITUDE_UNITS_DBM = 1;
Сконфигурируйте частотный диапазон спектра анализатор с помощью центральной частоты и промежутка частоты.
FrequencyCenter = 2E+9; FrequencySpan = 500E+6; Configuration = get(myInstrument, 'Configuration'); invoke(Configuration, 'configurefrequencycenterspan', FrequencyCenter,FrequencySpan);
Сконфигурируйте атрибуты захвата спектра анализатор.
SweepModeContinuous = false; NumberOfSweeps = 1; DetectorTypeAuto = true; DetectorType = IVISPECAN_VAL_DETECTOR_TYPE_AUTO_PEAK; VerticalScale = IVISPECAN_VAL_VERTICAL_SCALE_LINEAR; Configuration = get(myInstrument, 'Configuration'); invoke(Configuration, 'configureacquisition', SweepModeContinuous,NumberOfSweeps,DetectorTypeAuto,DetectorType,VerticalScale);
Сконфигурируйте вертикальные атрибуты спектра анализатор. Это соответствует атрибутам как амплитудные модули, входное затухание, входной импеданс, контрольный уровень и смещение контрольного уровня
AmplitudeUnits = IVISPECAN_VAL_AMPLITUDE_UNITS_DBM;
InputImpedance = 50.0;
ReferenceLevel = -10.0;
ReferenceLevelOffset = 0;
AttenuationAuto = false;
Attenuation = 10.0;
invoke(Configuration, 'configurelevel', AmplitudeUnits, InputImpedance, ReferenceLevel, ReferenceLevelOffset, AttenuationAuto, Attenuation);
Сконфигурируйте связь и широкие атрибуты спектра анализатор
ResolutionBandwidthAuto = false;
ResolutionBandwidth = 1.0E+6;
VideoBandwidthAuto = false;
VideoBandwidth = 1.0E+6;
SweepTimeAuto = false;
SweepTime = 5.0E-3;
invoke(Configuration, 'configuresweepcoupling', ResolutionBandwidthAuto,ResolutionBandwidth,VideoBandwidthAuto,VideoBandwidth,SweepTimeAuto,SweepTime);
Инициируйте захват сигнала на основе существующей инструментальной настройки. Это затем ожидает захвата, чтобы завершиться и возвращает трассировку как массив амплитудных значений. Амплитудный массив возвращает данные, которые представляют амплитуду сигналов развертки от частоты запуска до частоты остановки. Амплитудный Модульный атрибут определяет модули точек в амплитудном массиве.
Tracename = 0; MaximumTimeMs = 5000; ArrayLength = 501; AmplitudeX = 1.75e+09:0.1e+07:2.25e+09; AmplitudeY = zeros(ArrayLength,1); Measurement = get(myInstrument, 'Measurement'); [ActualPointsY,AmplitudeY] = invoke(Measurement, 'readytrace', Tracename,MaximumTimeMs,ArrayLength,AmplitudeY);
% Display the acquired spectrum plot(AmplitudeX,AmplitudeY); title('Spectrum Analyzer Trace Plot'); xlabel('Frequency (Hz)'); ylabel('Amplitude (dBm)'); % 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 драйверов. Если измеренный спектр получен из инструмента, MATLAB может использоваться, чтобы визуализировать и выполнить исследования данных, пользующихся богатой библиотекой функций в Signal Processing Toolbox™ и Системах связи Toolbox™. Используя Instrument Control Toolbox™, возможно автоматизировать управление инструментов, и, создать системы тестирования, которые используют MATLAB, чтобы выполнить исследования, которые не могут быть возможным использованием встроенной возможности оборудования.