Daqarta
Data AcQuisition And Real-Time Analysis
Scope - Spectrum - Spectrogram - Signal Generator
Software for Windows
The following is from the Daqarta Help system:

# Trigger Hysteresis (Hyst)

Controls: Trigger Dialog >> Hysteresis
Macro: TrigHyst

When Hysteresis is non-zero, the Trigger Level is surrounded by threshold limits, shown on the waveform display as dotted horizontal lines above and below the solid line of the Level setting. In order to qualify as a valid trigger, a signal must pass through both of these thresholds, in the proper sequence. For example, if Slope is Positive the signal must pass through the lower threshold, then the upper (which thus acts as the true trigger level) to start the trace.

Hysteresis is not needed for many uses, so the default value is zero. But consider a simple sine wave signal that has a lot of noise along with it: As the underlying sine crosses the chosen Trigger Level in the Slope direction, the instantaneous signal is jumping up and down due to the noise. So the signal passes repeatedly through the specified Level and Slope, even though the underlying sine wave only passes through once.

This causes several problems. The first is that the added noise may cause the trigger to be crossed prematurely, which will cause the trace to be shown shifted slightly to the right. The following trace may be shown with a different shift, since the noise may cause the Level threshold to be crossed earlier or later. So the waveform may show some horizontal jitter.

A bigger problem for trace displays is the fact that the noise causes multiple triggers on the opposite slope of the sine wave. Slope may have been set to Positive, but there will be triggers detected even when the sine wave is going down (since the noise is going up and down). The result is that the display may jump between the desired waveform and its inverse of the opposite slope.

Yet there is an even more significant problem: The Frequency Counter counts all the triggers in the waveform, even those that are not used to initiate a trace update. If noise causes spurious multiple triggers, the count and thus the computed frequency will be too high... possibly way too high (or the period too low).

Hysteresis solves both of these problems by requiring the triggering signal to pass through two thresholds: Level minus Hyst, then Level plus Hyst. The trigger system is "armed" when the signal passes through the initial threshold with the proper slope, and after that all other motions of the signal are ignored until the final threshold is crossed.

In general, set Hysteresis just larger than the peak-to-peak level of the noise you want to ignore, which means the difference between the dotted horizontal threshold lines will be twice that. For really noisy signals it's usually best to set Trigger Level at zero and then adjust Hysteresis for a stable trace or frequency reading.

You don't need to measure the noise to set Hysteresis; just hold down the ALT key and drag either dotted horizontal line with the mouse until you get stable results. (If Hysteresis is set to zero, you won't see the dotted lines initially; just ALT-drag away from the solid Level line and they will appear.)

If you do enter Hysteresis values directly, you can use the small button to the right of Level to toggle the units between percent of full-scale (default) and Volts, or to User Units, if active.

Note that Hysteresis is always positive, and that the sum with the absolute value of Level is limited to 100%. So if Level is 90%, for example, then Hysteresis will be limited to 10%.

The Hysteresis control is disabled in Gen Sync mode because all trigger functions are determined by the Sync system of the Generator.

Also note that Hysteresis depends upon the signal passing through the negative threshold before the positive threshold (for positive Slope). But if you are looking at tone bursts, the signal sits at zero before the start of each burst... it doesn't pass through the negative threshold until the second waveform cycle of the burst, so the trigger point will not be at the start. Either avoid Hysteresis in this case via simple Level-only triggering (or use Gen Sync), or accept the delayed trigger point and use negative Delay to see the start.

Macro Notes:

The % button determines the units that are used when setting Trigger Hysteresis, as well as Trigger Level. TrigLevUnit=0 sets the default % units, TrigLevUnit=1 sets Volts (or User Units, if active), and TrigLevUnit=x toggles between them. If you want to set Hysteresis in User Units, be sure to give a UserUnits=1 command as well.

If % units are active, TrigHyst=500m sets Trigger Hysteresis to 0.500%. Otherwise, it sets Hysteresis to 0.500 Volts or User Units.

Alternatively, TrigHyst=>1 increments Hysteresis by 1% and TrigHyst=>-1 decrements by 1% if the units are %. Otherwise, these increment or decrement by the minimum step size equivalent to 0.00305% in the chosen units.

When reading, X=TrigHyst sets variable X to the Trigger Hysteresis value, in the selected units. Alternatively, X=TrigHyst?% returns percent regardless of the selected units. This allows unit-independent macro behavior, such as for Array Frequency Counting or Edge/Event/Trigger Detection.

Caution: Be mindful of the interaction between Hysteresis and Level when setting these values via macros. If you want to set Hysteresis to 10% but Level is currently at 95% or -95%, the resultant Hysteresis will only be 5%.

GO: