Réponse
+++Code+++
% Pré-conditions :
% - dernier R&S VISA installé
clc;
analyzer_handle = visa('rs','TCPIP::10.205.0.101::INSTR'); %visa connection, toolbox nécessaire
analyzer_handle.OutputBufferSize = 1000000; %taille de mémoire de sortie en octets
analyzer_handle.InputBufferSize = 1000000; %taille de mémoire en entrée en octets
fopen(analyzer_handle);
fprintf(analyzer_handle,'*RST;*WAI');
fprintf(analyzer_handle,'*IDN?');
a=fscanf(analyzer_handle);
disp(a);
fprintf(analyzer_handle,'INIT:CONT OFF'); %Sélectionne le mode de balayage unique.
%--------------Configuration de la fréquence et du span-------------
fcenter=1000000000;
fprintf(analyzer_handle,'FREQ:CENT %d',fcenter); %Définit la fréquence centrale
fspan=5000000;
fprintf(analyzer_handle,'FREQ:SPAN %d',fspan); %Règle le span
%--------------Configuration du balayage--------------------------
fprintf(analyzer_handle,'SENS:SWE:COUN 1'); %Définit 1 balayage
points=10000; %le nombre de points règle la résolution de la trace
fprintf(analyzer_handle, 'SENS:SWE:POIN %d',points);
%--------------Configuration de la bande passante----------------------
fprintf(analyzer_handle,'BAND:AUTO OFF');
fprintf(analyzer_handle,'BAND 100000'); %Définit la RBW
fprintf(analyzer_handle,'BAND:VID 500kHz'); %Découple la VBW de la RBW et la réduit pour une trace lisse.
%--------------acquisition de trace-----------------------------
timeout=30; %temporisation en secondes
set(analyzer_handle,'Timeout',timeout); %temporisation augmentée avant l'acquisition pour éviter les erreurs de synchronisation
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 supprime la terminaison supplémentaire dans la mémoire
timeout=1; %temporisation en secondes revient à une valeur normale
set(analyzer_handle,'Timeout',timeout);
%--------------Présentation de la trace en diagramme---------
fstart=fcenter-fspan/2;
fstop=fcenter+fspan/2;
resolution=fspan/points;
points_array=1:1:points;
pour c = 1:points %échelle de l'axe du temps et des données de puissance
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]')
%--------------vérification d'erreur----------------------
fprintf(analyzer_handle,'SYST:ERR?');
a=fscanf(analyzer_handle);
disp(a);
fclose(analyzer_handle);
+++
Ci-dessous, la trace observée dans l'analyseur de spectre après le script ci-dessus a été exécuté avec Matlab.