Получите Спектр Сигнала на Rohde & Schwarz® Spectrum Analyzer с помощью Драйвера IVI-C

В этом примере показано, как инициализировать драйвер, считайте несколько свойств драйвера и получите использование спектра сигнала спектр Rohde & Schwarz анализатор и визуализируйте спектр в MATLAB®.

Требования

Этот пример требует, чтобы следующее было установлено на компьютере:

  • Rohde & Schwarz Spectrum Analyzer Версия драйвера 1.0 IVI-C x64 или более новый

Перечислите доступные драйверы IVI-C на компьютере

Это перечисляет 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'

Создайте инструментальный драйвер MATLAB и подключение к инструменту

% 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);

Сконфигурируйте пропускную способность разрешения (RBW), полоса частот видеосигнала время развертки и (VBW)

Сконфигурируйте связь и широкие атрибуты спектра анализатор

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, чтобы выполнить исследования, которые не могут быть возможным использованием встроенной возможности оборудования.