Time Domain

Spectrum analyzers typically display signals in the frequency domain, but can also be configured to display in the time domain, a feature called Zero Span.

Satsagen has been equipped with Zero Span since version 0.8.0.0.

Starting with version 0.9.2.1, the Zero Span function has been expanded and improved. In summary, the display of frequency versus time has been added in addition to power versus time, and the processing mode is no longer only by FFT, but also by IF demodulation. E.g., this process mode allows display signals up to 2 uS per division using an RTL-SDR as a receiving device.

Zero Span is activated by clicking on the Time Domain (Zero Span) button located in the Spectrum Analyzer panel.

The TimeBase knob allows you to set the time base within the range allowed by the receiving device in use and the signal processing mode settings. By extending the bandwidth controls with a click on the BW label, you can also directly set the sampling rate expressed in MSPS:

At the same time as activating Zero Span, the Time Domain tab appears below the display, where other controls related to this function are available:

The Type list sets the display to power vs. time or frequency vs. time. The Processing mode list sets the processing mode to IF demodulation, ZERO IF demodulation, or FFT. The IF decimation list sets three decimation levels, 1, 10, or 100, which allow the time base to be extended over longer times if necessary in IF or ZERO-IF demodulation modes. The Trace auto-clear button only serves a purpose if a Trigger has been selected. If there is no signal at the Trigger and the Trace auto-clear button is activated, the display is cleared after a few seconds, while if the button is deactivated, the display “freezes” at the instant of the last Trigger.

The following image is of a setup with a double device. In reception, there is an RTL-SDR dongle, and in transmission, a HackRF. A small RF cable connects the two devices. The generator modulates a 100MHz carrier in AM at 20 kHz. Satsagen is configured for the classic spectrum display:

A classic spectrum analyzer display as a function of frequency. Note the carrier of an AM-modulated signal and the two sidebands.

By activating Zero Span with the same setup, the display switches to power vs. time, by setting Power vs. time from the Type list and IF demodulation from the Processing mode list:

Time domain visualization

The X-axis switches from a frequency to a time representation, while the Y-axis remains in amplitude expressed in dBm.

The image will not be still, but will scroll in one direction, as there is no synchronism between the modulation and the sampling performed. To synchronize and freeze the image, you need to activate a trigger from the Triggers tab.

The same view in the time domain, but with the Video trigger active

The Video trigger level setting, whether positive or negative slope, should fall within a value within the modulation amplitude, in this case from approximately -48 dBm to approximately -41 dBm.

If you can’t find an optimal trigger value to get a stable image, you can try to activate a sort of hysteresis by clicking repeatedly on the Level text above the knob until it becomes Level R and a Range knob becomes available for setting the trigger intervention range:

Time Domain Visualization with Trigger and Hysteresis Active

We now switch the Generator modulation to FMW, with the same modulation frequency as before and a deviation of 30 kHz.

To view the frequency modulation, you need to go back to the Time Domain tab and select Frequency vs. time from the Type list. Furthermore, from the Triggers tab, you need to set a level between approximately -30 kHz and +30 kHz:

Frequency vs. time display with trigger active

The X-axis remains in a time representation, while the Y-axis switches from a display of amplitude expressed in dBm to one expressed in frequency.

For correct viewing, you also need to adjust the bandwidth using the appropriate knob in the Spectrum Analyzer panel.

In the case of a frequency-modulated signal display, the minimum bandwidth value should be the maximum modulation frequency plus the deviation, multiplied by two. So in our case, the minimum bandwidth to ensure that the displayed shape does not suffer distortion is about 100 kHz.

Satsagen on Wine

Some functions and compatibility with the Linux Wine layer are improved starting from Satsagen version 0.9.3.5:

  • Simplified the Pluto connection by fixing the unable pluto.local address.
  • The serial COMx ports work now, so the Simple spectrum analyzers, PLL synthesizers, Log detectors, GPIB devices, and the spectrometers are now available.
  • The Pluto and GPIB terminal consoles work now.

Here is a step-by-step guide to take advantage of these improvements:

This guide is tested on Ubuntu 25.04 and Wine 9.0 layer. Some commands could be changed or adapted to different OS/Distribution versions.

  • Remove old Satsagen version if it is below 0.9.3.5. Open a terminal, type wine control, and choose the Add/Remove Programs icon to remove the old Satsagen Application
  • Close the Wine control panel. Download the latest Satsagen version from the Download Page, and unzip the file at the end.
  • Turn back on the terminal window, and type wine $HOME/Downloads/satsagen_9_3_5_setup.exe (or the version name you had downloaded), and execute it.
  • Complete the setup, show Apps, and click on the SATSAGEN icon to run the program. A message should be shown on the first run
  • Close the window and the application. Turn back on the terminal window and type groups yourusername.
  • If your username does not belong to the dialout group, add it by executing the sudo usermod -aG dialout yourusername
  • Restart Wine by typing winserver -k at the terminal prompt

  • So, connect a Pluto device, for example, to the PC, show Apps, and click again on the SATSAGEN icon to run the application
  • Wait for some seconds, let the USB device be detected by the OS, and click on View-> Open terminal menu, a dialog with a device available on the serial COM port should appear, confirming that the above procedure is successful.
  • Close the above window, and to check the Pluto connection, go to Settings -> Devices tab
  • A Pluto should be listed on the SDR Device listbox
  • Close the Settings window and click the Power button. Start the Spectrum Analyzer.

The Notch Problem


My friend Gianni IW1EPY discovered a tricky problem with the ADALM-PLUTO used above specifications. Here is his report:


This info is for ADALM-PLUTO users who experience this strange behavior.
During the metal boxing of an ADALM-PLUTO Rev C of my friend, I discovered a problem.

Connecting it to an LMX2595 to test the 5 harmonics.

Left a small box containing the LMX2595 board with the double coax transitions in WR42 to cancel the fundamental, and on the right, the Pluto under test.

A terrible notch appeared.

Without signal, Pluto noise is around -70, so the notch kills all around 22.3 GHz.
After the Pluto board investigation, bad SMA soldering was discovered.
The central pin was soldered on the pad, but a length of around 1.5 mm starting from the PCB edge was not soldered.
The missing soldering is mainly due to a non-planarity of the SMA vs the PCB.
The RF enters the PCB, not at the PB edge, and sees two lines, one of which is the correct path to the balun and a second line that extends for 1.5 mm to the edge of the board.
The second line acts as a stub with an open end, applying a short at the frequency of lambda-quarter resonation.
Resoldering the full length of the SMA central pin, the problem went out.

This is the normal behaviour of an ADALM-PLUTO without calibration, giving you a little more than 20 dB of dynamics in the 24 GHz band.

73, Gianni IW1EPY