# :MEASure:DATA:SERatio

Symbol Error Ratio Commands

- :MEASure:DATA:SERatio
- :MEASure:DATA:SERatio:ACCumulation
- :MEASure:DATA:SERatio:FAVorite
- :MEASure:DATA:SERatio:LOCation?
- :MEASure:DATA:SERatio:SOURce
- :MEASure:DATA:SERatio:STATus?
- :MEASure:DATA:SERatio:STATus:DETails?
- :MEASure:DATA:SERatio:STATus:REASon?
- :MEASure:DATA:SERatio:UREFerence:STATe
- :MEASure:DATA:SERatio:UREFerence:VALue

## Command Syntax

    :MEASure:DATA:SERatio

## Query Syntax

    :MEASure:DATA:SERatio?

## Description

This command adds the SER (Symbol Error Ratio) measurement.

The query returns the measured value.

Because NRZ and PAM signals can use forward error correction (FEC) with possible bit errors on the order of 1e5 or 1e6 bits, it becomes practical for an oscilloscope to measure SER (Symbol Error Ratio).

The SER (Symbol Error Ratio) measurement requires clock recovery (see the `:<waveform>:CRECovery` commands) and at least two error-free copies of an identical repeating bit pattern in acquisition memory (see the `:<waveform>:SIGNal:TYPE` and `:<waveform>:PATTern` commands). Typically, a PRBS test pattern is used.

For the SER measurement, you can make cumulative measurements (over many acquisitions) to measure a statistical SER level or you can make measurements per (for each) acquisition to help identify and locate burst errors. See `:MEASure:DATA:SERatio:ACCumulation`.

With PAM signals, there are multiple bits per symbol, and one symbol error could mean multiple bit errors. As an example, PAM4 signals define four symbol levels (0, 1, 2, 3) that each represent two bits (00, 01, 10, 11). The following table shows the bit errors that are counted when one symbol is expected and a different symbol is captured.

If this symbol is expected: | And this symbol is captured: | Then:
--- | --- | ---
3 (11 in binary) | 2 (10 in binary) | This is a 1-bit error.
1 (01 in binary) | This is a 1-bit error.
0 (00 in binary) | This is a 2-bit error.

## Measurement Ready?

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

    if ('CORR' in Infiniium.query(':MEASure:DATA:SERatio:STATus?')):
    	measurement = Infiniium.query(':MEASure:DATA:SERatio?')

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

    if (Infiniium.query(':MEASure:DATA:SERatio:COUNt?') >= Infiniium.query(':ACQuire:COUNt?')):
    	measurement = Infiniium.query(':MEASure:DATA:SERatio?')

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

## Querying Measurement Results and Statistics

You can query measurement results using the `:MEASure:DATA:SERatio?` query after making the proper instance settings.

If a measurement is installed into Results table (using the `:MEASure:DATA:SERatio` command) and you have made the proper instance settings, you can query statistics using common child queries.

Also, you can query measurement results and statistics directly from the Results table (without having to make the proper instance settings beforehand). See Querying Measurement Results and Statistics.

The Count in the measurement results indicates:

- For cumulative SER: How many symbols have been observed.
- For per acq SER: How many acquisitions have been observed.