R&S FSL spectrum analyzer¶
Connecting to the instrument via network¶
Once connected to the network, the instrument’s IP address can be found by clicking the “Setup” button and navigating to “General Settings” -> “Network Address”.
It can then be connected like this:
from pymeasure.instruments.rohdeschwarz import FSL
fsl = FSL("TCPIP::192.168.1.123::INSTR")
Getting and setting parameters¶
Most parameters are implemented as properties, which means they can be read and
written (getting and setting) in a consistent and simple way. If numerical
values are provided, base units are used (s, Hz, dB, …).
Alternatively, the values can also be provided with a unit, e.g. "1.5 GHz"
or "1.5GHz"
. Return values are always numerical.
# Getting the current center frequency
fsl.freq_center
9000000000.0
# Changing it to 10 MHz by providing the numerical value
fsl.freq_center = 10e6
# Verifying:
fsl.freq_center
10000000.0
# Changing it to 9 GHz by providing a string and verifying the result
fsl.freq_center = '9GHz'
fsl.freq_center
9000000000.0
# Setting the span to maximum
fsl.freq_span = '7 GHz'
Reading a trace¶
We will read the current trace
x, y = fsl.read_trace()
Markers¶
Markers are implemented as their own class. You can create them like this:
m1 = fsl.create_marker()
Set peak exursion:
m1.peak_excursion = 3
Set marker to a specific position:
m1.x = 10e9
Find the next peak to the left and get the level:
m1.to_next_peak('left')
m1.y
-34.9349060059
Delta markers¶
Delta markers can be created by setting the appropriate keyword.
d2 = fsl.create_marker(is_delta_marker=True)
d2.name
'DELT2'
Example program¶
Here is an example of a simple script for recording the peak of a signal.
m1 = fsl.create_marker() # create marker 1
# Set standard settings, set to full span
fsl.continuous_sweep = False
fsl.freq_span = '18 GHz'
fsl.res_bandwidth = "AUTO"
fsl.video_bandwidth = "AUTO"
fsl.sweep_time = "AUTO"
# Perform a sweep on full span, set the marker to the peak and some to that marker
fsl.single_sweep()
m1.to_peak()
m1.zoom('20 MHz')
# take data from the zoomed-in region
fsl.single_sweep()
x, y = fsl.read_trace()
- class pymeasure.instruments.rohdeschwarz.fsl.FSL(adapter, name='Rohde&Schwarz FSL', **kwargs)¶
Bases:
SCPIMixin
,Instrument
Represents a Rohde&Schwarz FSL spectrum analyzer.
All physical values that can be set can either be as a string of a value and a unit (e.g. “1.2 GHz”) or as a float value in the base units (Hz, dBm, etc.).
- property attenuation¶
Attenuation in dB.
- continue_single_sweep()¶
Continue with single sweep with synchronization.
- property continuous_sweep¶
Continuous (True) or single sweep (False)
- create_marker(num=1, is_delta_marker=False)¶
Create a marker.
- Parameters:
num – The marker number (1-4)
is_delta_marker – True if the marker is a delta marker, default is False.
- Returns:
The marker object.
- property freq_center¶
Center frequency in Hz.
- property freq_span¶
Frequency span in Hz.
- property freq_start¶
Start frequency in Hz.
- property freq_stop¶
Stop frequency in Hz.
- read_trace(n_trace=1)¶
Read trace data.
- Parameters:
n_trace – The trace number (1-6). Default is 1.
- Returns:
2d numpy array of the trace data, [[frequency], [amplitude]].
- property res_bandwidth¶
Resolution bandwidth in Hz. Can be set to ‘AUTO’
- single_sweep()¶
Perform a single sweep with synchronization.
- property sweep_time¶
Sweep time in s. Can be set to ‘AUTO’.
- property trace_mode¶
Trace mode (‘WRIT’, ‘MAXH’, ‘MINH’, ‘AVER’ or ‘VIEW’)
- property video_bandwidth¶
Video bandwidth in Hz. Can be set to ‘AUTO’