Wiki sections

Wiki Spectrum analyzer

Trust bar and loss counters

The trust bar is the row at the bottom of the main window, visible from every tab. It shows what a number on the spectrum is meaningless without: at which RBW, with which window and detector the picture was obtained, what share of the air was really computed, and how many samples were lost. It is not a setting but part of the reading. The second half of this page covers the four separate loss counters on the Device tab and ADC saturation.

The left part of the trust bar
The left part of the trust bar: RBW, VBW, N, the window with its ENBW, the detector with its fold, averaging and drops.

How to read the bar

The fields run from left to right, and the badges are pushed to the right edge. Some fields appear only when they have something to say: for example, Coverage is shown only when it is below 100 %, and Age only in a sweep. The colour of a value carries meaning too: green is fine, amber needs attention, red is a loss or a fault. Every number is the actual one, not the requested one: the RBW here is what resulted after N was rounded, not what you asked for.

Fields from left to right

RBW
The actual resolution bandwidth in hertz. With a tinySA 0.9.25 it is the RBW of the instrument's sweep: 0.9.41 the app computes it by the firmware's rule, and the instrument's answer serves as a check. The number turns amber when the app cannot confirm this RBW (an assumption about the instrument's mode, or an answer that does not agree with the rule) or does not know it at all; details are in the instrument panel (see tinySA and tinySA Ultra). More about RBW on the page RBW, windows and VBW.
VBW
The video filter bandwidth in hertz, or off. An active VBW smooths the trace in time, and a burst shorter than its time constant reads low — which is why the value is highlighted.
N
The FFT size. With a tinySA the field is absent: no FFT is computed there.
Window
The name of the FFT window and ·ENBW — the equivalent noise bandwidth of the window in bins: one spectrum sample "weighs" that many bins of noise. It is 1.5 for Hann and about 3.8 for flat-top. With a tinySA the field is absent.
Detector
The main detector and its fold — the number after the × sign: how many spectra it folds into one waterfall row. When the fold is greater than one, the value is highlighted: the noise level in the picture now depends on the detector. In a sweep this is the actual number of spectra per segment. With a tinySA the field reads instrument: the detector is inside the analyzer itself.
Bias
By how many decibels this detector, at this fold, shifts the noise level relative to its mean power. It is not a textbook constant but a number for the current mode: peak reads noise high, median and average(log) read it low (median by 1.59 dB in the limit). For RMS and sample the bias is zero at any fold, for peak, neg, median, p90 and average(log) at a fold of ×1, and the field is then absent (the exception is CISPR-average: in tuned mode it reads noise 1.05 dB low at any fold). For quasi-peak with memory, the floor detector and RMS-average above 1 GHz there is no simple answer — the bar then says undefined instead of staying silent.
Coverage
The share of air time the spectrum was really computed from. It appears when the share is below 100 %: the machine cannot keep up, or you chose to compute the spectrum from fewer than all blocks. An event shorter than the gap may not reach the screen. How to control this is on the Performance page.
Averages
Shown when an Average trace is on: collected/requested. "Averaged 7 of 100" and "100 of 100" are different measurements, so the number is amber while at least one enabled trace is still collecting, and green once it has. In a sweep the counter counts passes.
Age
Only in a sweep: up to … s — the duration of the last pass. That is how much older the left edge of the stitched picture is than the right one. Amber above 2 s. See Sweep age.
Spurs
Only in a sweep with the spur check on. not checked yet — there has been no pair of passes yet, and a zero here would be an invented result. After that, the number of bins that move with the local oscillator: … marked or … removed, and the age of the check: … s ago. The mask is not updated between checks, so a number without an age would pass an old check off as a fresh one.
Drops
Samples lost in the source ring buffer: the app did not take them in time. Zero is green, any other number is red. It is the same counter as Ring buffer (drops) on the Device tab. Losses in USB transport are not included — they are counted separately, see below.
History
Appears as peak ×… when a spectrum row is wider than the waterfall history texture (4096 points): the history is stored reduced by peak, and the number says how many bins go into one of its points. The trace remains full — which is exactly why the difference is stated.

Badges on the right

bin/px
How many bins are reduced into one pixel along frequency, and by which display detector (Detector ↔px: peak, neg, sample or avg). The badge appears when there is more than one bin per pixel: from then on the picture depends on that detector.
PLL NOT LOCKED 0.9.25
A red badge for an RTL-SDR: the tuner's synthesiser did not lock at this frequency. The frequency under the spectrum is unreliable, and the picture may not be from that part of the air.
SWEEPS CUT 0.9.43
An amber badge for a tinySA: the instrument itself cuts the app's sweeps — someone is touching its screen or buttons. There is no whole sweep, and the spectrum stays on the last whole one; why, and how many sweeps in a row were cut, is said in the instrument panel. The badge is visible from any tab and also when the side panel is closed.
BAND CLIPPED
A red badge: the VFO band extends beyond the edge of the captured band. There are no samples past the capture edge, and that side of the band is not measured. Move the receive centre or narrow the VFO bandwidth. The red Offset field in the Frequency group shows the same thing.
ALARMS: … PRO
In SDR SA PRO only: a red badge with the number of Scanner alarms not yet accepted. It is visible from any tab; without unaccepted alarms it takes no space. See Scanner.
dBFS — UNCAL
An amber badge that is always present when the source is an IQ receiver (HackRF One, RTL-SDR), the demo signal or a recording: levels are referred to the ADC's full scale and are not calibrated in dBm. The app has no amplitude calibration for IQ receivers yet.
dBm — instrument 0.9.25
A green badge that replaces the previous one when the source is a tinySA: the instrument calibrates the levels itself, and the axis is labelled in dBm. The warning does not vanish; it becomes a statement.

Four levels of losses

Lost samples are counted separately on four levels and never merged into one number: they are four different faults with different causes and different remedies. All four counters are on the Device tab, in the Source and Record groups.

LevelFieldWhat it countsWhat to do
Source ringRing buffer (drops) in the Source group; Source ring buffer in the recording losses; Drops in the trust barSamples the app did not take from the device ring in timeTake load off the computer: Spectrum from blocks set to auto, a lower instrument sample rate — see Performance
USB transportLost in transitSamples lost between the instrument and the app. The driver does not report them, so this is an estimate from the clock; the share in per cent is shown next to itA lower instrument sample rate, or another USB port with no neighbours on the same controller
PauseDiscarded while pausedSamples that arrived while the stream was paused. This is the user's decision, not a fault, so the number is grey; the field is shown only when it is not zeroNothing. But remember: the gap is in the recording too
Writer ringDisk fell behind under the heading Losses in the recordingSamples the writer discarded because the disk would not accept themA drive with the sustained speed the sample rate demands: 40 MB/s for 20 MS/s — see IQ recording

Why not a single counter: samples lost in transport never reach the app at all, and the ring counter would show zero where a noticeable share of the stream is actually being lost. Lost in transit is amber for any loss and red when the loss exceeds 0.1 % of the stream; a red line with an explanation and advice then appears below the counters.

0.9.36 USB transfers that came back with an error (RTL-SDR) and transfers of odd length (RTL-SDR, HackRF One) are named by the Source group in separate lines with their count. A spectrum frame is not glued across such a place (except a long frame when the breaks come one after another: otherwise there would be no spectrum at all), and in a recording it is marked as a gap — see Gaps with a known position. How many samples are missing there is shown by Lost in transit.

Two fields warn in advance, before anything is lost:

  • Ring buffer fill in the Source group — how much of the device ring is occupied. Above 70 % the app is barely keeping up, and drops will follow.
  • Writer queue in the Record group — the fill of the queue in front of the disk and the longest write in milliseconds. A growing queue means the disk is not keeping up.

The Losses in the recording block appears as soon as the recording holds data. Besides the three counters it contains Gaps in metadata — how many time gaps are marked in SigMF. Lost samples go into the recording's metadata and into the file name, and gaps with a known position are marked where they occurred. With a tinySA there is no Record group: the instrument returns levels, not samples.

ADC saturation

Saturation is not a loss of samples but their distortion: the signal hits the ADC's full scale, and the clipping produces products across the whole band. In a sweep the app checks every segment. If at least 0.1 % of its samples sit at full scale, a red line The ADC is saturated in … tunes (… MHz) appears in the Resolution bandwidth group with the number of such segments and their frequencies. Levels there are not a measurement, and false peaks are possible nearby. Reduce the gain or remove the strong signal.

In tuned mode this version has no separate saturation indicator. The signs of overload are described in the tooltip of the LNA slider on a HackRF One: the noise floor jumps or ghost peaks appear — reduce the gain there.

Limits

  • The bar tells you under which conditions the picture was taken, but it gives no level uncertainty: the scale of IQ receivers is dBFS without calibration.
  • Drops in the bar is the source ring only. Transport, pause and disk losses are on the Device tab.
  • Lost in transit is an estimate from the clock, not a driver counter.
  • In a sweep there is no Coverage field: blocks are never skipped there, and the share of measured bins of a pass is in the sweep status line in the Resolution bandwidth group.
  • ADC saturation is checked only per sweep segment.

The wiki describes version 0.9.49. Your app's version is shown in the Help menu, under About. Found a mistake? Write to us.