FAQs from Rohde & Schwarz

Получение кривой в режиме анализатора спектра с помощью Matlab

Вопрос

Приведенный далее сценарий Matlab показывает, как перенести данные кривых из анализатора спектра R&S FSV3030 в рабочее пространство Matlab.

Для проверки концепции в примере использовался простой немодулированный сигнал 1 ГГц и -30 дБмВт.

Ответ

+++Код+++

% Необходимые условия:
% - Установлена новейшая версия R&S VISA
clc;
analyzer_handle = visa('rs','TCPIP::10.205.0.101::INSTR'); % Соединение VISA, требуется Toolbox
analyzer_handle.OutputBufferSize = 1000000; % Размер выходного буфера в байтах
analyzer_handle.InputBufferSize = 1000000; % Размер входного буфера в байтах
fopen(analyzer_handle);

fprintf(analyzer_handle,'*RST;*WAI');
fprintf(analyzer_handle,'*IDN?');
a=fscanf(analyzer_handle);
disp(a);

fprintf(analyzer_handle,'INIT:CONT OFF'); % Выбор режима однократной развертки.

%--------------Настройка частоты и полосы обзора-------------
fcenter=1000000000;
fprintf(analyzer_handle,'FREQ:CENT %d',fcenter); % Определяет центральную частоту
fspan=5000000;
fprintf(analyzer_handle,'FREQ:SPAN %d',fspan); % Определяет полосу обзора

%--------------Настройка развертки--------------------------
fprintf(analyzer_handle,'SENS:SWE:COUN 1'); % Определяет 1 развертку
points=10000; % Кол-во точек определяет разрешение кривой
fprintf(analyzer_handle, 'SENS:SWE:POIN %d',points);

%--------------Настройка полосы пропускания----------------------
fprintf(analyzer_handle,'BAND:AUTO OFF');
fprintf(analyzer_handle,'BAND 100000'); % Определяет полосу разрешения
fprintf(analyzer_handle,'BAND:VID 500kHz'); % Отделяет полосу видеосигнала от полосы разрешения и уменьшает ее в целях сглаживания кривой.

%--------------Сбор данных кривой-----------------------------
timeout=30; % Выдержка времени в секундах
set(analyzer_handle,'Timeout',timeout); % Увеличение выдержки времени перед сбором данных во избежание ошибок синхронизации
fprintf(analyzer_handle,'INIT:IMM;*WAI');
fprintf('Fetching waveform ...\n ');
fprintf(analyzer_handle,':FORM REAL,32');
fprintf(analyzer_handle,':TRAC? TRACE1;*WAI');
data=binblockread(analyzer_handle,'float32');
fread(analyzer_handle,1); %fread удаляет дополнительный ограничитель в буфере
timeout=1; % Восстанавливается нормальная выдержка времени в секундах
set(analyzer_handle,'Timeout',timeout);

%--------------Графическое представление кривой---------
fstart=fcenter-fspan/2;
fstop=fcenter+fspan/2;
resolution=fspan/points;
points_array=1:1:points;

for c = 1:points % Масштаб оси времени и значений мощности

points_array(1,c)=points_array(1,c)*resolution;
points_array(1,c)=points_array(1,c) + fstart;

end

plot(points_array,data);
title('Сбор данных спектра')
xlabel('Диапазон частот [Гц]')
ylabel('Мощность [дБмВт]')

%--------------Проверка на ошибки----------------------
fprintf(analyzer_handle,'SYST:ERR?');
a=fscanf(analyzer_handle);
disp(a);

fclose(analyzer_handle);

+++

Далее изображена кривая, полученная на анализаторе спектра после запуска сценария Matlab.

Получение кривой в режиме анализатора спектра с помощью Matlab

Далее представлен результат выполнения кода, который показывает данные кривой в качестве проверки концепции.

Получение кривой в режиме анализатора спектра с помощью Matlab
Получение кривой в режиме анализатора спектра с помощью Matlab

Вы также можете использовать тестер R&S VISA для подробной проверки процесса сбора точек данных. В конкретном примере были собраны 10 000 точек, каждая из которых представляет собой плавающее 4-байтное значение. В связи с этим в начале сбора данных в протоколе указываются 40 000 байт, что необходимо для правильной настройки буфера сбора данных.

Библиография:

-Страница прибора FSV3030
https://www.rohde-schwarz.com/de/produkt/fsv3000-produkt-startseite_63493-601503.html

- Советы и рекомендации по дистанционному управлению анализаторами спектра и анализаторами цепей - Руководство по применению 1EF62_1E
https://www.rohde-schwarz.com/applications/hints-and-tricks-for-remote-control-of-spectrum-and-network-analyzers-application-note_56280-15635.html

-Дистанционное управление и драйверы приборов:
https://www.rohde-schwarz.com/driver-pages/remote-control/drivers-remote-control_110753.html