Охарактеризование малошумящего усилителя путем измерения его S-параметров

Этот пример показывает вам, как автоматизировать измерение измерений S-параметра с 2 портами от Keysight Technologies® (раньше Agilent Technologies®) сетевой анализатор с помощью MATLAB® и Instrument Control Toolbox™. Пример также визуализирует измерения в MATLAB и сохраняет измерения в файл данных Пробного камня с помощью функций от RF Toolbox™.

Введение

Рассеивание параметров или S-параметров, описывает поведение отдельных компонентов или сети компонентов в линейных электрических сетях. Измерения S-параметров для компонентов в электрической сети могут использоваться к производительности модели, моделировать поведение, сети соответствия проекта, и т.д. Этот пример MATLAB подключения к и конфигурируют Keysight (Agilent) PNA (N5222A), чтобы измерить S-параметры низкого шумового усилителя (LNA). Инструмент, используемый в этом примере, запускает версию микропрограммного обеспечения A.09.90.02. Стандартные Команды для Программируемых Инструментов (SCPI) для PNA в этом примере, возможно, должны быть изменены, если вы используете различный инструмент или встроенное программное обеспечение. Набор команд SCPI для большинства инструментов доступен в инструментальном руководстве программиста от вашего инструментального поставщика.

Требования

Чтобы выполнить этот пример, вам нужен Keysight (Agilent) PNA соединенный с вашим устройством под тестом. Параметры в этом примере характерны для измерений для малошумящего усилителя, который мы используем и должны будем, вероятно, быть изменены, чтобы сделать измерения на вашем устройстве под тестом.

Этот пример использует функции из Instrument Control Toolbox и RF Toolbox.

Соединение КИП и настройка

Задайте параметры, используемые, чтобы сконфигурировать инструмент, прежде чем вы сделаете измерение. В этом примере мы соединяем с Keysight (Agilent) PNA использование интерфейса VISA к инструменту в сети TCPIP. На основе вашего измерения интереса вы, возможно, должны изменить некоторые следующие параметры.

% Define instrument VISA address. The VISA address of the instrument
% may be obtained from the instrument's user interface or your VISA
% configuration utility
instrumentVISAAddress = 'TCPIP0::127.0.0.1::inst0::INSTR';
% Define frequency range of 2.3GHz to 2.6GHz
frequencyRange = [2.3e9 2.6e9];
% Number of points in measurement
numPoints = 401;

% Create a VISA connection to interface with instrument
instrObj = visa('agilent',instrumentVISAAddress);
% Set up connection parameters for transfer of measurement data from the
% instrument
instrObj.InputBufferSize = 10e6;
instrObj.ByteOrder = 'littleEndian';
% Open connection to the instrument and clear hardware buffer of instrument
fopen(instrObj);
clrdevice(instrObj);

% Display information about instrument
IDNString = query(instrObj,'*IDN?');
fprintf('Connected to: %s\n',IDNString);
Connected to: Agilent Technologies,N5222A,US51220131,A.09.90.02

Setup измерения

Настройте инструмент, чтобы сделать измерения S-параметра с 2 портами.

% Prompt user to ask if they want to calibrate the instrument
doCalibration = questdlg('Do you want to calibrate your PNA?', 'ExampleMeasureSparameter','yes','no','no');
if strcmpi(doCalibration,'yes')
    % Launch wizard-guided calibration on the instrument and prompt user to confirm completion
    fprintf(instrObj,'SYSTem:CORR:WIZ MAIN');
    hMsgBox = msgbox('Press OK when calibration is complete', 'ExampleMeasureSparameter','help','modal');
    % Wait till user has confirmed that the calibration is complete
    uiwait(hMsgBox);
end

% Perform a System Preset
fprintf(instrObj,'SYSTem:FPReset');
fprintf(instrObj,'*CLS');

% Wait till system is ready as Preset could take time
opcStatus = 0;
while(~opcStatus)
    opcStatus = str2double(query(instrObj, '*OPC?'));
end

% Define a measurement name and parameter
fprintf(instrObj,'CALCulate:PARameter:DEFine:EXT ''SParamMeasurementS11'',S11');
fprintf(instrObj,'CALCulate:PARameter:DEFine:EXT ''SParamMeasurementS12'',S12');
fprintf(instrObj,'CALCulate:PARameter:DEFine:EXT ''SParamMeasurementS21'',S21');
fprintf(instrObj,'CALCulate:PARameter:DEFine:EXT ''SParamMeasurementS22'',S22');

% Create a new display window and turn it on
fprintf(instrObj,'DISPlay:WINDow1:STATE ON');

% Associate the measurements to WINDow1
fprintf(instrObj,'DISPlay:WINDow1:TRACe1:FEED ''SParamMeasurementS11''');
fprintf(instrObj,'DISPlay:WINDow1:TRACe2:FEED ''SParamMeasurementS12''');
fprintf(instrObj,'DISPlay:WINDow1:TRACe3:FEED ''SParamMeasurementS21''');
fprintf(instrObj,'DISPlay:WINDow1:TRACe4:FEED ''SParamMeasurementS22''');

% Turn ON the Title, Frequency, and Trace Annotation to allow for
% visualization of the measurements on the instrument display
fprintf(instrObj,'DISPlay:WINDow1:TITLe:STATe ON');
fprintf(instrObj,'DISPlay:ANNotation:FREQuency ON');
fprintf(instrObj,'DISPlay:WINDow1:TRACe1:STATe ON');
fprintf(instrObj,'DISPlay:WINDow1:TRACe2:STATe ON');
fprintf(instrObj,'DISPlay:WINDow1:TRACe3:STATe ON');
fprintf(instrObj,'DISPlay:WINDow1:TRACe4:STATe ON');

% Turn OFF averaging
fprintf(instrObj,'SENSe1:AVERage:STATe OFF');

% Set the number of points
fprintf(instrObj, sprintf('SENSe:SWEep:POINts %s',num2str(numPoints)));

% Set the frequency ranges
fprintf(instrObj, sprintf('SENSe:FREQuency:STARt %sHz',num2str(frequencyRange(1))));
fprintf(instrObj, sprintf('SENSe:FREQuency:STOP %sHz',num2str(frequencyRange(2))));

% Select measurements and set measurement trigger to immediate
fprintf(instrObj,'CALCulate:PARameter:SELect ''SParamMeasurementS11''');
fprintf(instrObj,'CALCulate:PARameter:SELect ''SParamMeasurementS12''');
fprintf(instrObj,'CALCulate:PARameter:SELect ''SParamMeasurementS21''');
fprintf(instrObj,'CALCulate:PARameter:SELect ''SParamMeasurementS22''');
fprintf(instrObj,'TRIG:SOURce IMMediate');

% Autoscale display
fprintf(instrObj, 'DISPlay:WIND:Y:AUTO');

% Select a single sweep across the frequency range to trigger a measurement
fprintf(instrObj,':SENSe:SWEep:MODE SINGLE');

% Since the instrument may take time to make the measurement, wait until it
% is done before requesting measurement data
opcStatus = 0;
while(~opcStatus)
    opcStatus = str2double(query(instrObj, '*OPC?'));
end

Получите данные об измерении

Инструмент может возвратить результаты измерений во множестве форматов. Самый эффективный способ передать измерения S-параметра использует формат блока IEEE 488.2.

% Set instrument to return the data back using binblock format
fprintf(instrObj, 'FORMat REAL,64');

% Set byte order to swapped (little-endian) format. SWAPped is required
% when using IBM compatible computers
fprintf(instrObj, 'FORMat:BORDer SWAP');

% Request 2-port measurement data from instrument
fprintf(instrObj, 'CALC:DATA:SNP:PORTs? ''1,2''');

% Read the measured data
rawDataDB = binblockread(instrObj, 'double'); 
fread(instrObj,1);

% Read back the number of points in the measurement and reshape the
% measurement data
numPoints = str2double(query(instrObj,' SENSe:SWEep:POINts?'));
% Reshape measurement data to [frequency, real, imag] array
rawDataDB = reshape(rawDataDB, numPoints, 9);

Отобразите любые ошибки

Отобразите инструментальные погрешности пользователю, если какая-либо из предыдущих команд SCPI вызвала инструментальную погрешность.

% Loop through the error queue and display all errors
systemError = '';
while isempty(strfind(lower(systemError),'no error'))
    systemError = query(instrObj,'SYSTem:ERRor?');
    fprintf('System Error(s): %s',systemError);
end
System Error(s): +0,"No error"

Очистите Соединения КИП

Очистите любые связи с инструментом после того, как измерения будут завершены

% Close, delete, and clear instrument connections.
fclose(instrObj);
delete(instrObj);
clear instrObj;

Данные о формате в sparameters возражают для использования RF Toolbox

RF Toolbox имеет объекты, которые могут использоваться, чтобы сохранить измерения, такие как измерения S-параметра, полученные из инструмента. Объекты могут быть созданы путем чтения в измерениях из стандартных форматов файлов, или, путем инициализации объекта с данными об измерении.

% Store frequency range of the measurements
freqRange = rawDataDB(:,1);

% Convert retrieved magnitude info from dB
sparamMag = 10.^((1/20).*rawDataDB(:,2:2:8));

% Convert retrieved phase info from degrees to radians
sparamPhase = rawDataDB(:,3:2:9)*(pi/180);

% Extract S-Parameter vectors
rawDataRI = sparamMag.*(cos(sparamPhase)+1i*sin(sparamPhase));
S11 = reshape(rawDataRI(:,1),1,1,numPoints);
S12 = reshape(rawDataRI(:,3),1,1,numPoints);
S21 = reshape(rawDataRI(:,2),1,1,numPoints);
S22 = reshape(rawDataRI(:,4),1,1,numPoints);

% Assemble into a 3D matrix to be consumed by the RF Toolbox
SParameter3Ddata = [S11 S12; S21 S22];

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

Файлы пробного камня являются стандартным форматом файла, используемым, чтобы хранить данные об измерении S-параметра. RF Toolbox обеспечивает стандартные функции, чтобы считать и записать файлы пробного камня из MATLAB. Измерения S-параметра могут использоваться непосредственно в MATLAB в целях проекта, таких как этот пример при разработке соответствия с сетями для малошумящего усилителя.

rfwrite(SParameter3Ddata,freqRange,'LNASParams.s2p');

Визуализируйте данные об измерении в MATLAB

MATLAB может использоваться, чтобы визуализировать данные различными способами. Для легкого сравнения с тем, что отображено на экране инструмента, постройте частоту по сравнению с комплексным значением данных S-параметра.

% Create the sparameters object
hSParamData = sparameters(SParameter3Ddata,freqRange);
% Plot the magnitude v/s frequency plot for the S-parameters of the LNA
rfplot(hSParamData);
title('2-Port S-Parameter Measurement Values');

Дополнительная информация

Этот пример показывает вам, как автоматизировать измерение данных S-параметра из Keysight Technologies® (раньше Agilent Technologies®) сетевое использование анализатора MATLAB и Instrument Control Toolbox. Используя Instrument Control Toolbox, возможно управлять широким спектром теста & оборудования измерения, такого как анализаторы сигнала, генераторы сигнала РФ, осциллографы, и т.д. из MATLAB. MATLAB может использоваться, чтобы визуализировать данные об измерении или использовать измерения, чтобы анализировать и разработать цифровой и системы РФ, пользующиеся библиотекой функций в Signal Processing Toolbox™, DSP System Toolbox™, Communications Toolbox™ и RF Toolbox.