FAQs from Rohde & Schwarz

Erfassen einer Messkurve im Spektrumanalysator-Modus mit MATLAB®

Frage

Das folgende MATLAB®-Skript ist eine Kurzreferenz, wie man die Messkurvendaten von einem R&S FSV3030 Spektrumanalysator in den MATLAB® Workspace transferiert.

Beispielhaft wurde als Konzeptnachweis ein nicht moduliertes Dauerstrichsignal mit 1 GHz und -30 dBm genutzt.

Antwort

+++Code+++

% Vorbedingungen:
% - Neuestes R&S VISA installiert
clc;
analyzer_handle = visa('rs','TCPIP::10.205.0.101::INSTR'); % VISA-Verbindung, Toolbox erforderlich
analyzer_handle.OutputBufferSize = 1000000; % Ausgabepuffergröße in Byte
analyzer_handle.InputBufferSize = 1000000; % Eingabepuffergröße in Byte
fopen(analyzer_handle);

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

fprintf(analyzer_handle,'INIT:CONT OFF'); % Single Sweep Mode wählen.

%--------------Konfigurieren von Frequenz und Darstellbreite-------------
fcenter=1000000000;
fprintf(analyzer_handle,'FREQ:CENT %d',fcenter); % Definition der Mittenfrequenz
fspan=5000000;
fprintf(analyzer_handle,'FREQ:SPAN %d',fspan); % Darstellbreite festlegen

%--------------Sweep konfigurieren--------------------------
fprintf(analyzer_handle,'SENS:SWE:COUN 1'); % definiert 1 Sweep
points=10000; % Anzahl Punkte setzt Auflösung der Messkurve
fprintf(analyzer_handle, 'SENS:SWE:POIN %d',points);

%--------------Bandbreite konfigurieren----------------------
fprintf(analyzer_handle,'BAND:AUTO OFF');
fprintf(analyzer_handle,'BAND 100000'); % definiert die Auflösebandbreite
fprintf(analyzer_handle,'BAND:VID 500kHz'); % entkoppelt die Videobandbreite von der Auflösebandbreite, Absenken zum Glätten der Messkurve.

%--------------Messkurvenerfassung-----------------------------
timeout=30; % Timeout in Sekunden
set(analyzer_handle,'Timeout',timeout); % Vergrößerung des Timeout vor Erfassung, um Sync-Fehler zu vermeiden
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 entfernt das Extra-Abschlusszeichen im Puffer
timeout=1; % Timeout in Sekunden auf einen normalen Wert
set(analyzer_handle,'Timeout',timeout);

%--------------Grafische Darstellung der Messkurve---------
fstart=fcenter-fspan/2;
fstop=fcenter+fspan/2;
resolution=fspan/points;
points_array=1:1:points;

for c = 1:points % Zeitachse und Leistungsdaten skalieren

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]')

%--------------Fehlerprüfung----------------------
fprintf(analyzer_handle,'SYST:ERR?');
a=fscanf(analyzer_handle);
disp(a);

fclose(analyzer_handle);

+++

Damit ergibt sich folgende im Spektrumanalysator beobachtete Messkurve, nachdem das obige Skript mit MATLAB® ausgeführt wurde.

Erfassen einer Messkurve im Spektrumanalysator-Modus mit MATLAB®

Es folgt die Ausgabe des Codes, der die Messkurvendaten als Konzeptnachweis repräsentiert.

Erfassen einer Messkurve im Spektrumanalysator-Modus mit MATLAB®
Erfassen einer Messkurve im Spektrumanalysator-Modus mit MATLAB®

Darüber hinaus kann man RsVisaTester nutzen, um den Erfassungsprozess der Datenpunkte im Detail zu überarbeiten. In diesem speziellen Fall wurden 10.000 Punkte erfasst, jeder davon als 4-Byte-Float-Wert. Aus diesem Grund liest man am Anfang der Erfassung 40.000 Bytes im Protokoll, damit der Erfassungspuffer entsprechend gesetzt wird.

Referenzen:

- Produktseite von FSV3030
https://www.rohde-schwarz.com/de/produkt/fsv3000-produkt-startseite_63493-601503.html

- Tipps und Tricks für die Fernbedienung von Spektrum- und Netzwerkanalysatoren - Application Note 1EF62_1E
https://www.rohde-schwarz.com/applications/hints-and-tricks-for-remote-control-of-spectrum-and-network-analyzers-application-note_56280-15635.html

- Fernsteuerung und Gerätetreiber:
https://www.rohde-schwarz.com/driver-pages/remote-control/drivers-remote-control_110753.html