Resposta
+++Código+++
% Pré-condições:
% - Mais recente R&S®VISA instalado
clc;
analyzer_handle = visa('rs','TCPIP::10.205.0.101::INSTR'); %conexão visa, toolbox necessário
analyzer_handle.OutputBufferSize = 1000000; %tamanho do buffer de saída em bytes
analyzer_handle.InputBufferSize = 1000000; %tamanho do buffer de entrada em 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'); %Selecione o modo de varredura única.
%--------------Configurando a Frequência e o Intervalo-------------
fcenter=1000000000;
fprintf(analyzer_handle,'FREQ:CENT %d',fcenter); %Define a frequência central
fspan=5000000;
fprintf(analyzer_handle,'FREQ:SPAN %d',fspan); %Define o intervalo
%--------------Configurando a varredura--------------------------
fprintf(analyzer_handle,'SENS:SWE:COUN 1'); %Define 1 varredura
points=10.000; %o nº de pontos define a resolução do traço
fprintf(analyzer_handle, 'SENS:SWE:POIN %d’,points);
%--------------Configurando a largura de banda----------------------
fprintf(analyzer_handle,'BAND:AUTO OFF');
fprintf(analyzer_handle,'BAND 100000'); %Define a resolução de largura de banda
fprintf(analyzer_handle,'BAND:VID 500kHz'); %Desassocie o VBW da resolução de largura de banda e o diminua para suavizar o traço.
%--------------aquisição de traço-----------------------------
tempo limite=30; %tempo limite em segundos
set(analyzer_handle,'Timeout',timeout); %o tempo limite aumentado antes da aquisição para evitar erros de sincronização
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); %a leitura remove o terminal extra no buffer
tempo limite=1; %tempo limite em segundos volta a um valor normal
set(analyzer_handle,'Timeout',timeout);
%--------------Apresentação do traço em um diagrama---------
fstart=fcenter-fspan/2;
fstop=fcenter+fspan/2;
resolution=fspan/points;
points_array=1:1:points;
for c = 1:points %eixo de tempo de escala e dados de potência
points_array(1,c)=points_array(1,c)*resolution;
points_array(1,c)=points_array(1,c) + fstart;
fim
plot(points_array,data);
title('SA Spectrum Acquisition')
xlabel('frequency domain [Hz]')
ylabel('power [dbm]')
%--------------verificação de erro----------------------
fprintf(analyzer_handle,'SYST:ERR?');
a=fscanf(analyzer_handle);
disp(a);
fclose(analyzer_handle);
+++
Abaixo do traço observado no analisador de espectro após a execução do script acima com o Matlab.