:MEASure:PLEVel:LINearity
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.
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?
.