Respuesta
+++Código+++
% Condiciones previas:
% - último R&S VISA
clc instalado;
analyzer_handle = visa('rs','TCPIP::10.205.0.101::INSTR'); %se requiere conexión visa, caja de herramientas
analyzer_handle.OutputBufferSize = 1000000; %tamaño del búfer de salida en bytes
analyzer_handle.InputBufferSize = 1000000; %tamaño del 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 modo de solo barrido.
%--------------Configurar la frecuencia y el span-------------
fcenter=1000000000;
fprintf(analyzer_handle,'FREQ:CENT %d',fcenter); %Define la frecuencia central
fspan=5000000;
fprintf(analyzer_handle,'FREQ:SPAN %d',fspan); %Configura el span
%--------------Configurar el barrido--------------------------
fprintf(analyzer_handle,'SENS:SWE:COUN 1'); %Define barrido 1
puntos=10000; %número de puntos configura la resolución de la traza
fprintf(analyzer_handle, 'SENS:SWE:POIN %d',puntos);
%--------------Configurar el 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 video del ancho de banda de resolución y lo disminuye para suavizar la traza.
%--------------adquisición de traza-----------------------------
tiempo límite=30; %tiempo límite en segundos
set(analyzer_handle,'Timeout',tiempo límite); %el tiempo límite se aumentó antes de la adquisición para evitar errores de sincronización
fprintf(analyzer_handle,'INIT:IMM;*WAI');
fprintf('Buscando forma de onda ...\n ');
fprintf(analyzer_handle,':FORM REAL,32');
fprintf(analyzer_handle,':TRAC? TRACE1;*WAI');
datos=binblockread(analyzer_handle,'float32');
fread(analyzer_handle,1); %fread remueve el terminador extra en el búfer
tiempo límite=1; %el tiempo límite en segundos regresa a un valor normal
set(analyzer_handle,'Timeout',tiempo límite);
%--------------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;
for c = 1:points %escala del eje temporal y datos de potencia
points_array(1,c)=points_array(1,c)*resolution;
points_array(1,c)=points_array(1,c) + fstart;
fin
plot(points_array,data);
title('Adquisición de espectro SA')
xlabel('dominio de la frecuencia [Hz]')
ylabel('potencia [dbm]')
%--------------comprobación de errores--------------------
fprintf(analyzer_handle,'SYST:ERR?');
a=fscanf(analyzer_handle);
disp(a);
fclose(analyzer_handle);
+++
A continuación se muestra la traza que se observó en el analizador de espectro después de ejecutar el script anterior con Matlab.