FAQs from Rohde & Schwarz

Capturar una traza en modo de analizador de espectro utilizando Matlab

Pregunta

El siguiente archivo de comandos de Matlab proporciona una referencia rápida de cómo trasladar los datos de traza de un analizador de espectro R&S FSV3030 al área de trabajo de Matlab.

Como ejemplo de prueba de concepto se ha utilizado una señal de onda continua simple no modulada de 1 GHz y -30 dbm.

Respuesta

+++Código+++

% Requisitos previos:
% - está instalada la versión más reciente de R&S VISA
clc;
analyzer_handle = visa('rs','TCPIP::10.205.0.101::INSTR'); % conexión visa, se requiere toolbox
analyzer_handle.OutputBufferSize = 1000000; % tamaño de búfer de salida en bytes
analyzer_handle.InputBufferSize = 1000000; % tamaño de búfer de entrada en bytes
fopen(analyzer_handle);

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

fprintf(analyzer_handle,'INIT:CONT OFF'); %Selecciona el modo de barrido único.

%--------------Configuración de frecuencia y span-------------
fcenter=1000000000;
fprintf(analyzer_handle,'FREQ:CENT %d',fcenter); %Define la frecuencia central
fspan=5000000;
fprintf(analyzer_handle,'FREQ:SPAN %d',fspan); %Ajusta el span

%--------------Configuración del barrido--------------------------
fprintf(analyzer_handle,'SENS:SWE:COUN 1'); %Define 1 barrido
points=10000; %n.° de puntos ajusta la resolución de la traza
fprintf(analyzer_handle, 'SENS:SWE:POIN %d',points);

%--------------Configuración del ancho de banda----------------------
fprintf(analyzer_handle,'BAND:AUTO OFF');
fprintf(analyzer_handle,'BAND 100000'); %Define el ancho de banda de resolución
fprintf(analyzer_handle,'BAND:VID 500kHz'); %Desacopla el ancho de banda de vídeo del ancho de banda de resolución y lo reduce para suavizar la traza.

%--------------Adquisición de traza-----------------------------
timeout=30; %tiempo límite en segundos
set(analyzer_handle,'Timeout',timeout); %tiempo límite incrementado antes de la adquisición para evitar errores de sincronización
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 elimina la terminación adicional en el búfer
timeout=1; %tiempo límite en segundos vuelve a un valor normal
set(analyzer_handle,'Timeout',timeout);

%--------------Presentación de la traza en un gráfico---------
fstart=fcenter-fspan/2;
fstop=fcenter+fspan/2;
resolution=fspan/points;
points_array=1:1:points;

para c = 1:points %escala del eje de tiempo y datos de potencia

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

end

plot(points_array,data);
title('SA Spectrum Acquisition')
xlabel('frequency domain [Hz]')
ylabel('power [dbm]')

%--------------Comprobación de error----------------------
fprintf(analyzer_handle,'SYST:ERR?');
a=fscanf(analyzer_handle);
disp(a);

fclose(analyzer_handle);

+++

Más abajo se muestra la traza observada en el analizador de espectro después de ejecutar el archivo de comandos de arriba con Matlab.

Capturar una traza en modo de analizador de espectro utilizando Matlab

La salida del código, que presenta los datos de traza como prueba de concepto.

Capturar una traza en modo de analizador de espectro utilizando Matlab
Capturar una traza en modo de analizador de espectro utilizando Matlab

Asimismo, se puede utilizar R&S Visa Tester para revisar en detalle el proceso de adquisición de los puntos de datos, en este caso en particular se registraron 10 000 puntos, cada uno de ellos expresado como valor flotante de 4 bytes. Por ello se lee 40 000 bytes en el registro al principio de la adquisición, de modo que el búfer de adquisición se ajusta correspondientemente,

Referencias:

- Página de producto del FSV3030
https://www.rohde-schwarz.com/de/produkt/fsv3000-produkt-startseite_63493-601503.html

- Consejos y trucos para controlar remotamente analizadores de espectro y de redes (Hints and Tricks for Remote Control of Spectrum and Network Analyzers) - Nota de aplicación 1EF62_1E
https://www.rohde-schwarz.com/applications/hints-and-tricks-for-remote-control-of-spectrum-and-network-analyzers-application-note_56280-15635.html

- Control remoto y controladores de instrumentos:
https://www.rohde-schwarz.com/driver-pages/remote-control/drivers-remote-control_110753.html