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’