:MEASure:PLEVel:LINearity

Meas. mode:
Jitter
Waveform type:
PAM
Package License:
RND
Flex Apps:
FlexDCA

Command Syntax

:MEASure:PLEVel:LINearity

Query Syntax

:MEASure:PLEVel:LINearity?

Description

Activates one of three types of Linearity measurements. Linearity is a measure of the variance in amplitude separation (distribution) between the different PAM4 levels. The linearity ratio is always equal to or less than 1.0. The value 1.0 indicates that the separations between all levels are equal. For non-compliant measurements, you can use a PRBS signal. For compliant measurements, you will need to use compliance linearity pattern that is called out in the relevant standard.

The following three types of Linearity measurements are selected using the :MEASure:PLEVel:LINearity:DEFinition command:

  • RLM (Ratio Level Mismatch) (IEEE 802.3 Annex 120D). Shown in Level table as RLM (A_120D).
  • RLM (Ratio Level Mismatch) (IEEE 802.3 Clause 94). Shown in Level table as RLM (CL_94).
  • Eye Linearity (CEI 4.0). Shown in Level table as Eye Linearity.

The measurement algoritms used for the linearity measurements in Oscilloscope mode, Eye mode, and Jitter mode are identical. However, between these modes the measurement results yield small differences as the waveform data is represended differently within each instrument mode. For example, in oscilloscope mode measurement are made at the center of individual UIs while eye mode measurements are made on the center of all acquired UIs at once.

Examples of PAM Signal Linearity
Good Linearity Poor Linearity
V3-2 = V2-1 = V1-0 V3-2 ≠ V2-1 ≠ V1-0

Requires FlexDCA revision A.06.40 and above.

Measurement Identification

Avoid subtle programming errors! To ensure that the correct measurement is installed or queried, always explicitly identify a measurement when installing a measurement or querying a measured value, status, or detail. To identify a measurement, specify the measurement's source waveform (:SOURce child command). With some measurements, you may also need to specify other identifying values. Generally, when selecting a measurement using FlexDCA's GUI, if a dialog appears prompting you to select values, you should explicitly specify these values when remotely identifying the measurement. More information.

For example, to return the status of the measurement, :MEASure:PLEVel:LINearity:

flex.write(':MEASure:PLEVel:LINearity:SOURce CHAN1A')
if flex.query(':MEASure:PLEVel:LINearity:STATus?') == 'CORR';
    measurement = flex.query(':MEASure:PLEVel:LINearity?')
else:
	details = flex.query(':MEASure:PLEVel:LINearity:STATus:DETails?')
	reason = flex.query(':MEASure:PLEVel:LINearity:STATus:REASon?')

Child commands for measurement identification:

  • :MEASure:PLEVel:LINearity:SOURce
  • :MEASure:PLEVel:LINearity:DEFinition

Measurement Ready?

To confirm that the measurement is ready to read, you can query the measurement's status:

if ('CORR' in Flex.query(':MEASure:PLEVel:LINearity:STATus?')):
	measurement = Flex.query(':MEASure:PLEVel:LINearity?')

If averaging is turned on (:ACQuire:AVERaging), you can also confirm if the measurement result is ready by comparing the number of specified averages (:ACQuire:ECOunt?) versus the number of measurement sweeps that have occurred (:MEASure:PLEVel:LINearity:COUNt?). The technique uses the :COUNt? common measurement query. For example,

if (Flex.query(':MEASure:PLEVel:LINearity:COUNt?') >= Flex.query(':ACQuire:ECOUNt?')):
	measurement = Flex.query(':MEASure:PLEVel:LINearity?')

You can also use an acquisition limit lest to test that a number of waveform samples, or pattern acquisitions have completed before returning a measurement. Refer to the :LTESt:ACQuire:CTYPe command.

Common Measurement Child Queries

This command supports the use of the following common measurement queries: :LOCation?, :COUNt?, :MAXimum?, :MINimum?, :MEAN?, and :SDEViation?.