25 Filters

25.1 Introduction

25.1.1 Key Concepts

ngscopeclient and libscopehal are based on a “filter graph” architecture internally. The filter graph is a directed acyclic graph with a set of source nodes (waveforms captured from hardware, loaded from a saved session, or generated numerically) and sink nodes (waveform views, protocol analyzer views, and statistics) connected by edges representing data flow.

A filter is simply an intermediate node in the graph, which takes input from zero or more waveform nodes and outputs a waveform which may be displayed, used as input to other filters, or both. A waveform is a series of data points which may represent voltages, digital samples, or arbitrarily complex protocol data structures.

As a result, there is no internal distinction between math functions, measurements, and protocol decodes, and it is possible to chain them arbitrarily. Consider the following example:

  • Two analog waveforms representing serial data and clock are acquired

  • Each analog waveform is thresholded, producing a digital waveform

  • The two digital waveforms are decoded as \(I^2C\), producing a series of packets

  • The \(I^2C\) packets are decoded as writes to a serial DAC, producing an analog waveform

  • A moving average filter is applied to the analog waveform

  • A measurement filter finds the instantaneous frequency of each cycle of the DAC output

In this document we use the term “filter” consistently to avoid ambiguity.

25.1.2 Conventions

A filter can take arbitrarily many inputs (vector or scalar values from the filter graph), arbitrarily many parameters (static scalar configuration settings), and outputs arbitrarily many vector or scalar outputs.

If the output signal is a multi-field type (as opposed to a single scalar, e.g. voltage, at each sample) the Output Signal section will include a table describing how various types of output data are displayed.

All filters with complex output use a standardized set of colors to display various types of data fields in a consistent manner. These colors are configurable under the menustyle{Appearance / Decodes} preferences category.

Color name

Use case

Default Color

Address

Memory addresses

cellcolor{address}textcolor{black}{#ffff00}

Checksum Bad

Incorrect CRC/checksum

cellcolor{checksumbad}textcolor{white}{#ff0000}

Checksum OK

Valid CRC/checksum

cellcolor{checksumok}textcolor{black}{#00ff00}

Control

Miscellaneous control data

cellcolor{control}textcolor{white}{#c000a0}

Data

User data

cellcolor{data}textcolor{white}{#336699}

Error

Malformed/unreadable data

cellcolor{error}textcolor{white}{#ff0000}

Idle

Inter-frame gaps

cellcolor{idle}textcolor{white}{#404040}

Preamble

Preamble/sync words

cellcolor{preamble}textcolor{white}{#808080}

25.2 128b/130b

Decodes the 128b/130b line code used by PCIe gen 3/4/5. This filter performs block alignment and descrambling, but no decoding of block contents.

128b/130b, as a close relative of 128b/130b, is a serial line code which divides transmitted data into 128-bit blocks and scrambles them with a LFSR, then appends a 2-bit type field (which is not scrambled) to each block for synchronization. Block synchronization depends on always having an edge in the type field so types 2’b00 and 2’b11 are disallowed.

For PCIe over 128b/130b, block type 2’b01 contains 128 bits of upper layer protocol data while block type 2’b10 contains an ordered set.

Note that this filter only performs block alignment and descrambling. No decoding or parsing is applied to the 128-bit blocks, other than searching for skip ordered sets (beginning with 0xaa) and using them for scrambler synchronization.

_images/128b130b.png

Fig. 25.1 Example 128b/130b decode

_images/graph-pcie-gen3.png

Fig. 25.2 Example filter graph using 128b/130b to decode a 2-lane PCIe gen3 link

25.2.1 Inputs

Signal name

Type

Description

data

Digital

Serial 128b/130b data line

clk

Digital

DDR bit clock, typically generated by use of the Clock Recovery (PLL) filter on the input data.

25.2.2 Parameters

This filter takes no parameters.

25.2.3 Output Signal

The 128B/130B filter outputs a time series of 128B/130B sample objects. These consist of a control/data flag and a 128-bit data block.

Stream name

Type

Description

data

Sparse protocol

Output decode

Type

Description

Color & Format

Ordered set

Block with type 2’b10

cellcolor{control}textcolor{white}{Control} & 032x

Data

Block with type 2’b01

cellcolor{data}textcolor{white}{Data} & 032x

Error

Block with type 2’b00 or 2’b11

cellcolor{error}textcolor{white}{Error} & 032x

25.3 2-Port Shunt Through

Measures the impedance of a DUT connected to a VNA in a 2-port shunt-through topology (VNA ports 1 and 2 connected, with DUT attached between the connection point and ground). This is commonly used for measuring very low impedance networks, such as power distribution networks.

25.4 64b/66b

Decodes the 64/66b line code used by Ethernet - 10Gbase-R and other serial protocols, as originally specified in IEEE 802.3 clause 49.2.

64b/66b is a serial line code which divides transmitted data into 64-bit blocks and scrambles them with a LFSR, then appends a 2-bit type field (which is not scrambled) to each block for synchronization. Block synchronization depends on always having an edge in the type field so types 2’b00 and 2’b11 are disallowed.

Note that this filter only performs block alignment and descrambling. No decoding is applied to the 64-bit blocks, as different upper-layer protocols assign different meaning to them. In 10Gbase-R, type 2’b01 denotes “64 bits of upper layer data” and type 2’b10 denotes “8-bit type field and 56 bits of data whose meaning depends on the type”, however this is not universal and some other protocols use these fields for different purposes.

_images/64b66b.png

Fig. 25.3 Example 64b/66b decode

_images/graph-10gbe.png

Fig. 25.4 Example filter graph using 64b/66b to decode a 10Gbase-R signal

25.4.1 Inputs

Signal name

Type

Description

data

Digital

Serial 64b/66b data line

clk

Digital

DDR bit clock, typically generated by use of the Clock Recovery (PLL) filter on the input data.

25.4.2 Parameters

This filter takes no parameters.

25.4.3 Output Signal

The 64B/66B filter outputs a time series of 64B/66B sample objects. These consist of a control/data flag and a 64-bit data block.

Stream name

Type

Description

data

Sparse protocol

Output decode

Type

Description

Color & Format

Control

Block with type 2’b10

cellcolor{control}textcolor{white}{Control} & 016x

Data

Block with type 2’b01

cellcolor{data}textcolor{white}{Data} & 016x

Error

Block with type 2’b00 or 2’b11

cellcolor{error}textcolor{white}{Error} & 016x

25.5 8B/10B (IBM)

Decodes the standard 8b/10b line code used by Ethernet - SGMII, Ethernet - 1000baseX, DisplayPort, JESD204, PCIe Gen 1/2 Logical, SATA, USB 3.0, and many other common serial protocols.

8b/10b is a dictionary based code which converts each byte of message data to a ten-bit code. In order to maintain DC balance and limit run length to a maximum of five identical bits in a row, all 8-bit input codes have one of:

  • One legal coding, with exactly five zero bits

  • Two legal codings, one with four zero bits and one with six

The transmitter maintains a “running disparity” counter and chooses the appropriate coding for each symbol to ensure DC balance. There are twelve legal codes which are not needed for encoding data values; these are used to encode frame boundaries, idle/alignment sequences, and other control information.

_images/8b10b.png

Fig. 25.5 Example 8b/10b decode

_images/graph-1000basex.png

Fig. 25.6 Example filter graph using 8b/10b to decode a differential 1000base-X link

25.5.1 Inputs

Signal name

Type

Description

data

Digital

Serial 8b/10b data line

clk

Digital

DDR bit clock, typically generated by use of the Clock Recovery (PLL) filter on the input data.

25.5.2 Parameters

Parameter name

Type

Description

Comma Search Window

Integer

Number of unit intervals to search when performing comma alignment. A larger window increases the probability of a correct lock, but significantly slows down the decode.

Display Format

Enum

Dotted (K28.5 D21.5): displays the 3b4b and 5b6b code blocks separately, with K or D prefix.; Hex (K.bc b5): displays data as hex byte values and control codes with a K prefix.

25.5.3 Output Signal

The 8B/10B filter outputs a time series of 8B/10B sample objects. These consist of a control/data flag, the current running disparity, and a byte of data.

Stream name

Type

Description

data

Sparse protocol

Output decode

Type

Description

Color & Format

Control

Control codes

cellcolor{control}textcolor{white}{Control} & Kd.d+ or K02x

Data

Upper layer protocol data

cellcolor{data}textcolor{white}{Data} & Dd.d+ or 02x

Error

Malformed data

cellcolor{error}textcolor{white}{Error} & ERROR

25.6 8B/10B (TMDS)

Decodes the 8-to-10 Transition Minimized Differential Signalling line code used in DVI and HDMI.

Like the 8B/10B (IBM) line code, TMDS is an 8-to-10 bit serial line code. TMDS, however, is designed to minimize the number of toggles in the data stream for EMC reasons, rendering it difficult to synchronize a CDR PLL to. As a result, HDMI and DVI provide a reference clock at the pixel clock rate (1/10 the serial data bit rate) along with the data stream to provide synchronization.

_images/tmds.png

Fig. 25.7 Example TMDS decode

_images/graph-tmds.png

Fig. 25.8 Example filter graph decoding TMDS from a single-ended input. Note that this example recovers the clock from the input signal rather than multiplying up the reference clock.

25.6.1 Inputs

Signal name

Type

Description

data

Digital

Serial TMDS data line

clk

Digital

DDR bit clock, typically generated by use of the Clock Recovery (PLL) filter on the input data. Note that this is 5x the rate of the pixel clock signal.

25.6.2 Parameters

Parameter name

Type

Description

Lane Number

Integer

Lane number within the link (0-3)

25.6.3 Output Signal

The TMDS filter outputs a time series of TMDS sample objects. These consist of a type field and a byte of data.

The output of the TMDS decode is commonly fed to the DVI or HDMI protocol decoders.

Stream name

Type

Description

data

Sparse protocol

Output decode

Type

Description

Color & Format

Control

Control codes (H/V sync)

cellcolor{control}textcolor{white}{Control} & CTLd

Data

Pixel/island data

cellcolor{data}textcolor{white}{Data} & 02x

Error

Malformed data

cellcolor{error}textcolor{white}{Error} & ERROR

Guard band

HDMI data/video guard band

cellcolor{preamble}textcolor{white}{Preamble} & GB

25.7 AC Couple

Automatically removes a DC offset from an analog waveform by subtracting the average of all samples from each sample.

This filter should only be used in postprocessing already acquired data, or other situations in which AC coupling in the hardware (via an AC coupled probe, or coaxial DC block) is not possible.

_images/accouple.png

Fig. 25.9 Example input and output of the AC Couple filter

_images/graph-accouple.png

Fig. 25.10 Example filter graph AC coupling an input waveform

25.7.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.7.2 Parameters

This filter takes no parameters.

25.7.3 Output Signal

This filter outputs an analog waveform with identical configuration (sparse or uniform) and sample rate to the input, vertically shifted to center the signal at zero volts.

Stream name

Type

Description

data

Analog

Output decode

25.8 AC RMS

Measures the Root Mean Square value of the waveform after removing any DC offset. The DC offset is calculated by averaging all samples in the waveform.

_images/acrms.png

Fig. 25.11 Example usage of the AC RMS filter on a QAM modulated signal

_images/graph-acrms.png

Fig. 25.12 Example filter graph measuring RMS value of a waveform

FloatBarrier

25.8.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.8.2 Parameters

This filter takes no parameters.

25.8.3 Output Signal

This filter has two output streams.

Stream name

Type

Description

trend

Sparse analog

One sample per cycle of the input waveform containing the RMS value across that cycle

avg

Scalar

RMS value across the entire waveform

25.9 Add

This filter adds two inputs. Either input may be a vector (waveform) or scalar.

_images/add.png

Fig. 25.13 Example usage of adding two analog waveforms

_images/graph-add.png

Fig. 25.14 Example filter graph adding two analog waveforms

FloatBarrier

25.9.1 Inputs

Signal name

Type

Description

a

Analog waveform or scalar

First input waveform

b

Analog waveform or scalar

Second input waveform

25.9.2 Parameters

This filter takes no parameters.

25.9.3 Output Signal

If both inputs are vectors, this filter outputs a waveform containing the pairwise sum; i.e. sample \(i\) of the output is \(a[i] + b[i]\). No resampling is performed on the inputs so incorrect or unexpected results may occur if they do not share the same timebase. Both inputs must be the same type (both sparse or both uniform), mixing sparse and uniform (even if the sample timestamps are the same) is not allowed.

If both inputs are scalars, this filter outputs their sum.

If one input is a vector and the other is a scalar, this filter outputs the sum of the scalar and each element of the waveform, i.e. sample \(i\) of the output is \(a + b[i]\) for the scalar + vector case and \(a[i] + b\) for the vector + scalar.

Stream name

Type

Description

data

Analog

One sample per cycle of the input waveform containing the sum of the a and b inputs at that time

25.10 Area Under Curve

TODO: needs to be updated when we port to scalar interface

Measures the area under the curve by integrating the data points. By default, area measured above ground is considered as positive and area measured below the ground is considered negative. The negative area can also be considered as positive by changing a filter parameter. The measurement can be performed on the full record or on each cycle.

_images/true-area.png

Fig. 25.15 Example of true area under the curve measurement (Integral)

_images/absolute-area.png

Fig. 25.16 Example of absolute area under the curve measurement

_images/per-cycle-absolute-area.png

Fig. 25.17 Example of per-cycle absolute area under the curve measurement

25.10.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.10.2 Parameters

Parameter name

Type

Description

Measurement Type

Enum

Full Record: Measure the area of entire waveform; Per Cycle: Measure the area of each cycle in the waveform

Area Type

Enum

True Area: Consider area below ground as negative; Absolute Area: Consider area below ground as positive

25.10.3 Output Signal

For full record measurement, this filter outputs a waveform indicating total area measured till the time on the waveform. For per cycle measurement, this filter outputs waveform representing area of each cycle.

25.11 ADL5205

Decodes SPI data traffic to one half of an ADL5205 variable gain amplifier.

TODO: Screenshot

25.11.1 Inputs

Signal name

Type

Description

spi

SPI bus

The SPI data bus

25.11.2 Parameters

This filter takes no parameters.

25.11.3 Output Signal

This filter outputs one ADL5205 sample object for each write transaction, formatted as “write: FA=2 dB, gain=8 dB”.

25.12 Autocorrelation

This filter calculates the autocorrelation of an analog waveform. Autocorrelation is a measure of self-similarity calculated by multiplying the signal with a time-shifted copy of itself. In Fig. 25.18, strong peaks can be seen at multiples of the 8b/10b symbol rate.

For best performance, it is crucial to keep the maximum offset as low as possible, since filter run time grows linearly with offset range.

_images/autocorrelation.png

Fig. 25.18 Example waveforms showing autocorrelation of an 8b/10b signal

_images/graph-autocorrelation.png

Fig. 25.19 Example filter graph showing usage of autocorrelation filter

FloatBarrier

25.12.1 Inputs

Signal name

Type

Description

din

Uniform analog

Input waveform

25.12.2 Parameters

Parameter name

Type

Description

Max offset

Integer

Maximum shift (in samples)

25.12.3 Output Signal

This filter outputs an analog waveform with the same timebase as the input, one sample for each correlation offset.

Stream name

Type

Description

data

Uniform analog

Autocorrelation waveform

25.13 Average

This filter calculates the average of its input.

_images/average.png

Fig. 25.20 Typical usage of average filter

_images/graph-average.png

Fig. 25.21 Example filter graph showing usage of average filter

FloatBarrier

25.13.1 Inputs

Signal name

Type

Description

in

Analog or scalar

Input waveform

25.13.2 Parameters

This filter takes no parameters.

25.13.3 Output Signal

Signal name

Type

Description

latest

Scalar

Average of the filter’s current input

cumulative

Scalar

Average of all input since the last clear-sweeps

totalSamples

Scalar

Total number of integrated samples

totalWaveforms

Scalar

Total number of integrated waveforms

25.14 Bandwidth

Calculates the -3 dB bandwidth of a network, given the insertion loss magnitude.

The bandwidth is measured relative to a user-specified reference level; for example the bandwidth of a -20 dB attenuator can be measured by setting the reference level to -20 dB.

_images/bandwidth.png

Fig. 25.22 Measuring the -3 dB bandwidth of a cable

_images/graph-bandwidth.png

Fig. 25.23 Example filter graph showing usage of bandwidth filter on an imported Touchstone file

FloatBarrier

25.14.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform (typically S21)

25.14.2 Parameters

Parameter name

Type

Description

Reference Level

Float

Nominal (DC / mid band) insertion loss of the network

25.14.3 Output Signal

This filter outputs a scalar containing the first frequency in the network which is at least -3 dB below the reference level. If the input waveform is entirely below this level, the lowest frequency in the input is returned. If the input waveform is entirely above this level, the highest frequency in the input is returned.

Signal name

Type

Description

data

Scalar

Calculated bandwidth

25.15 Base

TODO: needs to be updated when we port to scalar interface

Calculates the base (logical zero level) of each cycle in a digital waveform.

It is most commonly used as an input to statistics, to view the average base of the entire waveform. At times, however, it may be useful to view the base waveform. For example, in Fig. 25.24, the vertical eye closure caused by channel ISI is readily apparent.

_images/base.png

Fig. 25.24 Example of base measurement on a serial data stream

25.15.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.15.2 Parameters

This filter takes no parameters.

25.15.3 Output Signal

This filter outputs an analog waveform with one sample for each group of logical zeroes in the input signal, containing the average value of the zero level for the middle 50of the low period.

25.16 BIN Import

Loads an Agilent / Keysight / Rigol binary waveform file.

25.16.1 Inputs

This filter takes no inputs.

25.16.2 Parameters

Parameter name

Type

Description

BIN File

Filename

Path to the file being imported

25.16.3 Output Signal

This filter outputs a uniformly sampled analog waveform for each channel in the file. The number of output streams is variable based on how many channels are present in the file.

25.17 Burst Width

Measures the burst width of each burst in a waveform. A Burst is a sequence of adjacent crossings of the mid level reference of the waveform. Burst width is the duration of this sequence. Bursts are separated by a user-defined idle time that can be provided as a parameter to this filter. The measurement is made on each burst in the waveform.

_images/burst-width.png

Fig. 25.25 Example of burst width measurement

25.17.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.17.2 Parameters

Parameter name

Type

Description

Idle Time

Integer

Minimum idle time with no toggles, before declaring start of a new burst

25.17.3 Output Signal

This filter outputs an analog waveform with one sample for each burst in the input signal.

25.18 Bus Heatmap

Computes a “spectrogram” visualization of bus activity with address on the Y axis and time on the X axis, in order to identify patterns in memory or bus activity.

The current version only supports CAN bus however other common memory interfaces will be added in the future.

_images/bus-heatmap.png

Fig. 25.26 CAN bus activity on a car’s OBD port showing the vehicle being started, running for 50 seconds, then shutting down

_images/graph-bus-heatmap.png

Fig. 25.27 Example filter graph showing usage of bus heatmap filter on an imported CAN bus capture

FloatBarrier

25.18.1 Parameters

Parameter name

Type

Description

Max Address

Integer

Maximum address to display in the plot

X Bin Size

Integer

Width of each pixel in the X axis (timebase units)

Y Bin Size

Integer

Number of addresses to merge into each pixel in the Y axis

25.18.2 Output Signal

This filter outputs a 2D density plot that is (max address) / (y bin size) pixels high and (memory depth) / (x bin size) pixels wide, spanning the entire duration of the input and the full address range requested.

All packets within the input waveform have the start time and address rounded to the closest bin in X and Y. The corresponding pixel in the integration buffer is incremented, then the final waveform is normalized to cover the full range of the selected color ramp.

Signal name

Type

Description

data

Density map

Calculated heatmap

25.19 CAN

Decodes the Control Area Network (CAN) bus, commonly used in vehicle control systems. Both standard (11 bit) and extended (29 bit) IDs are supported.

CAN-FD frames are detected and flagged as such, but the current decode cannot parse them fully. Full support is planned (issue{scopehal}{334}).

_images/can.png

Fig. 25.28 Example of decoding a single extended-format frame with 3 bytes of data

_images/graph-can.png

Fig. 25.29 Example filter graph showing usage of CAN bus decode

_images/packet-can.png

Fig. 25.30 Example packet output

FloatBarrier

25.19.1 Inputs

Signal name

Type

Description

CANH

Digital

Thresholded CANH (or CANH-CANL) signal

25.19.2 Parameters

Parameter name

Type

Description

Bit Rate

Integer

Bit rate of the bus (most commonly 250 or 500 Kbps)

25.19.3 Output Signal

The CAN bus decode outputs a time series of CAN sample objects. These consist of a type field and a byte of data.

Signal name

Type

Description

data

Protocol

Decoded waveform data

Type

Description

Color & Format

Control

Start of frame

cellcolor{preamble}textcolor{white}{Preamble} & SOF

ID

CAN ID

cellcolor{address}textcolor{black}{Address} & ID x

RTR

Remote Transmission Request

cellcolor{control}textcolor{white}{Control} & DATA | REQ

FD mode

CAN-FD mode

cellcolor{control}textcolor{white}{Control} & FD | STD

R0

Reserved bits

cellcolor{preamble}textcolor{white}{Preamble} & RSVD

DLC

Data Length Code

cellcolor{control}textcolor{white}{Control} & Len 3

Data

Payload data

cellcolor{data}textcolor{white}{Data} & 02x

Valid CRC

Good checksum

cellcolor{checksumok}textcolor{black}{Checksum OK} & CRC: 04x

Invalid CRC

Bad checksum

cellcolor{checksumbad}textcolor{white}{Checksum Bad} & CRC: 04x

CRC delimiter

Bus turnaround

cellcolor{preamble}textcolor{white}{Preamble} & CRC DELIM

ACK

Acknowledgement

cellcolor{checksumok}textcolor{black}{Checksum OK} & ACK

NAK

Missing acknowledgement

cellcolor{checksumbad}textcolor{white}{Checksum Bad} & NAK

ACK delimiter

Bus turnaround

cellcolor{preamble}textcolor{white}{Preamble} & ACK DELIM

EOF

End of frame

cellcolor{preamble}textcolor{white}{Preamble} & EOF

25.19.4 Protocol Analyzer

TODO

25.20 CAN Analyzer

This filter adds a protocol analyzer table to CAN waveforms which do not have one natively.

25.21 CAN Bitmask

Extracts a bit-masked value from a stream of CAN bus packets and outputs a Boolean waveform

25.22 Can-Utils Import

Loads a log file generated by the codestyle{candump} utility from the Linux codestyle{can-utils} software package and displays it as a series of CAN packets.

Example capture command: codestyle{candump -l can0}

25.23 Channel Emulation

This filter models the effects of applying an arbitrary channel, described via a single path of a set of S-parameters, to a waveform. Fig. 25.31 shows the result of passing a 1.25 Gbps serial data pattern through S21 of a 10x oscilloscope probe with approximately 500 MHz bandwidth. The ISI, attenuation, and phase shift introduced by the channel can all be seen.

_images/channel-emulation.png

Fig. 25.31 Example of channel emulation on a serial data stream

The channel model works in the frequency domain. An FFT is performed on the input, then each complex point is scaled by the interpolated magnitude and rotated by the phase, then an inverse FFT is used to transform the signal back into the time domain.

The group delay of the channel is then estimated and samples are discarded from the beginning of the waveform to prevent causality violations. For example, when performing channel emulation using a network with a 1ns group delay, the output waveform will begin 1ns after the input (since the channel output before this depends on input samples before the start of the waveform). Note that the automatic group delay estimation uses points from roughly the center of the S-parameter dataset in the current implementation; channels which do not have a significant passband around this frequency will give incorrect group delay estimates. The “Group Delay Truncation Mode” parameter can be set to manual in this case, selecting the “Group Delay Truncation” parameter instead of the automatically estimated value.

By choosing appropriate stimulus waveforms and S-parameter paths, many different kinds of analysis can be performed. For example, given a 4-port network describing two transmission lines (with ports 1 and 3 as input, and 2 and 4 as output):

  • Applying \(S_{11}\) to a step or impulse waveform gives TDR response of the port 1-2 channel.

  • Applying \(S_{21}\) to an impulse waveform gives impulse response of the port 1-2 channel

  • Applying \(S_{21}\) to a serial data stream gives the port 1-2 signal as it would be seen by a receiver

  • Applying \(S_{31}\) to a serial data stream gives the NEXT between the port 1-2 and 3-4 channels

  • Applying \(S_{41}\) to a serial data stream gives the FEXT between the port 1-2 and 3-4 channels

Note that only the single S-parameter path provided is considered, and reflections elsewhere in the system are not modeled. As a result, multiple applications of this filter to emulate a large circuit piecewise (for example, a cable followed by a fixture) may give inaccurate results since reflections between the two networks are not considered. In this situation, it is preferable to use a circuit simulator or the S-Parameter Cascade filter to calculate combined S-parameters of the entire circuit and then perform the channel emulation once.

25.23.1 Inputs

Signal name

Type

Description

signal

Analog

Input waveform

mag

Analog

S-parameter magnitude channel

ang

Analog

S-parameter angle channel

25.23.2 Parameters

Parameter name

Type

Description

Max Gain

Float

Maximum gain to apply

Group Delay Truncation

Int

Group delay override for manual mode

Group Delay Truncation Mode

Enum

Specifies manual or automatically estimated group delay

25.23.3 Output Signal

This filter outputs an analog waveform with the same timebase as the input, with the emulated channel applied.

25.24 Clip

This filter limits the maximum or minimum value of a waveform to a given value. It can be configured to clip “above” in which case it imposes an upper limit or “below” in which case it imposes a lower limit.

25.24.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.24.2 Parameters

Parameter name

Type

Description

Behavior

Enum

Select between clipping values above or below selected value

Level

Float

Maximum/minimum signal level

25.24.3 Output Signal

This filter outputs an analog waveform with the same timebase as the input, clipped as specified by the parameters.

25.25 Clock Recovery (D-PHY HS Mode)

Extracts a double-rate clock from a MIPI D-PHY clock+data stream, which is gated to only toggle when the data input is in HS mode. This can be used for generating eye patterns of the HS-mode data.

25.26 Clock Recovery (PLL)

This filter uses a PLL to recover a clock from a serial data stream. The recovered clock is double-rate and phased \(90^\circ\) with respect to the data, such that the data can be sampled directly by both edges of the PLL output clock.

When the optional clock gating input is low, the output does not toggle and any edges in the input signal are ignored. As soon as the gate goes high, the PLL will phase shift the internal NCO to align with the next transition in the input signal and then begin running closed-loop.

NOTE: The current edge detector uses a single threshold suitable for NRZ inputs. When using a multi-level modulation such as PAM-4 or MLT-3, set the threshold to the highest or lowest crossing level. This will work fine for MLT-3 but introduces some data-dependent jitter in PAM signals (since the slew rate for an 00-11 transition is different than that for a 10-11 transition). The resulting recovered clock should still be adequate for protocol decoding, however a better edge detector will need to be implemented in order to do adequate jitter measurements on PAM waveforms. An edge detector suitable for PAM is planned (issue{scopehal}{77}).

The current implementation of this filter uses a simple bang-bang control loop which is fast and provides reasonable jitter transfer performance (passing high frequency jitter but rejecting spread spectrum modulation), but does not precisely match the jitter transfer characteristics of any particular serial data standard. In the future, several standard PLL responses including the Fibre Channel golden PLL (issue{scopehal}{163}) will be supported as options.

_images/cdrpll.png

Fig. 25.32 Example of CDR PLL on a serial data stream

25.26.1 Inputs

Signal name

Type

Description

IN

Analog

Input waveform

Gate

Digital

Clock enable signal, or NULL to disable gating

25.26.2 Parameters

Parameter name

Type

Description

Symbol rate

Float

Symbol rate, in Hz

Threshold

Float

Decision threshold for the edge detector, in volts

25.26.3 Output Signal

This filter outputs an digital waveform with one sample per transition of the recovered clock.

25.27 Clock Recovery (UART)

This filter uses a DLL to recover a sampling clock from UART or similar protocol at a known baud rate. The single-rate recovered clock idles low and toggles for each bit in each frame and is phased \(90^\circ\) with respect to data, such that each bit can be sampled on the rising edge of the DLL output clock. This filter can be used for generating an eye pattern of the serial signal.

The current implementation limits support to serial protocols with 10 bits/symbols per frame. Consider using the Clock Recovery (PLL) for unsupported serial formats if applicable.

The current implementation does not synchronize by aligning falling clock edges with symbol edges.

_images/cdruart.png

Fig. 25.33 Example of UART CDR on two serial data frames separated by a short delay

25.27.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.27.2 Parameters

Parameter name

Type

Description

Baud rate

Float

Symbol rate, in bps

Threshold

Float

Decision threshold for the edge detector, in volts

25.27.3 Output Signal

This filter outputs a digital waveform with the sampling clock recovered from the analog stream.

25.28 Complex Import

Loads waveform data from a raw binary file containing I/Q samples in one of several formats. Regardless of sample format, the samples must be in I-Q-I-Q order.

Supported formats (native endianness, no byte swapping is performed):

  • Signed int8

  • Unsigned int8

  • Signed int16

  • Float32

  • Float64

25.28.1 Inputs

This filter takes no inputs.

25.28.2 Parameters

Parameter name

Type

Description

Complex File

String

Path to the input file

File Format

Enum

Data type of the samples

Sample Rate

Int

Sampling frequency

25.28.3 Output Signal

This filter outputs two streams named “I” and “Q” containing the I/Q waveform data.

25.29 Complex Spectrogram

Plots a spectrogram of complex I/Q data.

25.30 Constant

This filter outputs a scalar with a constant value, which may be used as input to other filter graph blocks.

25.30.1 Inputs

This filter takes no inputs.

25.30.2 Parameters

Parameter name

Type

Description

Value

Float

The value to output

Unit

Enum

Data type of the constant value

25.30.3 Output Signal

This filter outputs a single scalar with a constant value.

25.31 Constellation

This filter takes I/Q streams and a double-rate symbol clock and outputs a constellation diagram.

25.32 Coupler De-Embed

Given waveforms from both coupled ports of a dual directional coupler and the S-parameters of the coupler, de-embeds the coupler response in order to recover the forward and reverse waveforms.

NOTE: The current implementation of this filter requires the codestyle{VK_KHR_push_descriptor} Vulkan extension. A fallback implementation for GPUs without this extension will be added at some point in the future.

Both coupled-port waveforms must be the same sample rate, memory depth, and de-skewed relative to one another.

This filter uses a multi-step algorithm to de-embed both the insertion loss of the coupled path and enhance the apparent directivity of the coupler:

begin{enumerate}

item De-embed the coupled path response from the coupled port waveforms in order to calculate an initial estimate of the input port waveforms. The same FFT-based algorithm as the De-Embed filter is used.

item Given the initial estimated input port waveforms, calculate the leakage from the forward path to the reverse coupled port, and from the reverse path to the forward coupled port. The same FFT-based algorithm as the Channel Emulation filter is used. This estimate is imperfect since it assumes perfect directivity, so a small amount of the legitimate waveform is incorrectly included in the leakage waveform.

item Subtract the leakage waveforms from the measured coupled port waveforms. This removes most of the leakage (as well as a small amount of the legitimate waveform).

item De-embed the coupled path response from the subtracted waveform in order to get a revised estimate of input port waveforms. This is the final output of the filter.

end{enumerate}

25.32.1 Inputs

Signal name

Type

Description

forward

Analog

Forward coupled port waveform

reverse

Analog

Reverse coupled port waveform

forwardCoupMag

Analog

Magnitude response of forward coupled path

forwardCoupAng

Analog

Angle response of forward coupled path

reverseCoupMag

Analog

Magnitude response of reverse coupled path

reverseCoupAng

Analog

Angle response of reverse coupled path

forwardLeakMag

Analog

Magnitude response of forward leakage path

forwardLeakAng

Analog

Angle response of forward leakage path

reverseLeakMag

Analog

Magnitude response of reverse leakage path

reverseLeakAng

Analog

Angle response of reverse leakage path

25.33 CSV Export

Saves waveform data to a comma-separated-value file.

The Update Mode parameter specifies how and when the file is modified:

  • Append (continuous): Every time the filter graph runs, the inputs are appended to the end of the file.

  • Append (manual): When the “Export” button in the filter properties box is clicked, the inputs are appended to the end of the file.

  • Overwrite (continuous): Every time the filter graph runs, the input waveforms replace the current contents of the file.

  • Overwrite (manual): When the “Export” button in the filter properties box is clicked, the input waveforms replace the current contents of the file.

25.33.1 Inputs

This filter takes a variable number of inputs, named “column1”, “column2”, etc, which may be of analog, digital, or arbitrary protocol type. 2D persistence maps are not supported.

25.33.2 Parameters

Parameter name

Type

Description

File name

String

Path to the CSV file

Update mode

Enum

Specifies how and when to update the file)

25.33.3 Output Signal

This filter stores its output to a file and has no filter graph output ports.

25.34 CSV Import

Loads waveform data from a comma-separated-value file.

25.35 Current Shunt

Converts a voltage waveform acquired across a known resistance into a current waveform.

25.36 DDJ

Calculates the peak-to-peak data-dependent jitter for a serial data stream.

This filter uses the non-repeating-pattern method, which allows DDJ to be computed for arbitrary waveforms rather than requiring a short, repeating PRBS. In this method, per-UI jitter (TIE) measurements are split across \(2^n\) histogram bins, one for each possible combination of the preceding \(n\) bits. The jitter samples for each bin are then averaged to remove the effects of other jitter, leaving only the DDJ. The final DDJ value is reported as the difference between the minimum and maximum histogram bins.

The current implementation uses a fixed window size of \(n=8\) UI. If the channel has significant memory effects or reflections with delays of more than 8 UI, DDJ maybe underestimated.

The current implementation only supports NRZ signals and cannot measure DDJ for MLT3 or PAM waveforms.

25.36.1 Inputs

Signal name

Type

Description

TIE

Analog

TIE waveform computed by the TIE filter

Threshold

Digital

Thresholded digital sample values

Clock

Digital

Double rate, center aligned sampling clock for threshold values

25.36.2 Parameters

This filter takes no parameters.

25.36.3 Output Signal

This filter outputs an analog waveform with a single sample containing the computed DDJ value.

Additionally, the raw DDJ histogram is stored internally and may be accessed by other filters via the C++ API. There is currently no way to display the histogram content.

25.37 DDR1 Command Bus

Decodes the command bus for first-generation DDR SDRAM.

25.38 DDR3 Command Bus

Decodes the command bus for third-generation DDR SDRAM.

25.39 De-Embed

Applies the inverse of a channel (described by a single path in an S-parameter dataset, normally \(S_{21}\)) to a signal, in order to calculate what the waveform would have looked like at the input to a cable, fixture, etc. given the signal seen at the output.

The channel model works in the frequency domain. An FFT is performed on the input, then each complex point is scaled by the interpolated magnitude and rotated by the phase, then an inverse FFT is used to transform the signal back into the time domain.

The group delay of the channel is then estimated and samples are discarded from the end of the waveform to prevent causality violations. For example, when performing a de-embed using a network with a 1ns group delay, the output waveform will end 1ns before the input does (since the channel output after this depends on input samples after the end of the stimulus waveform). Note that the automatic group delay estimation uses points from roughly the center of the S-parameter dataset in the current implementation; channels which do not have a significant passband around this frequency will give incorrect group delay estimates. The “Group Delay Truncation Mode” parameter can be set to manual in this case, selecting the “Group Delay Truncation” parameter instead of the automatically estimated value.

Note that only the single S-parameter path provided is considered, and reflections elsewhere in the system are not modeled. As a result, multiple applications of this filter to de-embed a large circuit piecewise (for example, a cable followed by a probe) may give inaccurate results since reflections between the two networks are not considered. In this situation, it is preferable to use a circuit simulator or the S-Parameter Cascade filter to calculate combined S-parameters of the entire circuit and then perform a single de-embed.

The maximum gain the de-embed applies is capped (default 20 dB) in order to prevent amplifying noise outside the passband of the network being de-embedded.

25.39.1 Inputs

Signal name

Type

Description

signal

Analog

Input waveform

mag

Analog

S-parameter magnitude channel

ang

Analog

S-parameter angle channel

25.39.2 Parameters

Parameter name

Type

Description

Max Gain

Float

Maximum gain to apply

Group Delay Truncation

Int

Group delay override for manual mode

Group Delay Truncation Mode

Enum

Specifies manual or automatically estimated group delay

25.39.3 Output Signal

This filter outputs an analog waveform with the same timebase as the input, with the emulated channel applied.

25.40 Deskew

Moves an analog waveform earlier or later in time to compensate for trigger offsets, probe length mismatch, etc. It is generally preferable to deskew using the skew adjustment on the channel during acquisition; this filter is provided for correction in postprocessing.

25.40.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.40.2 Parameters

Parameter name

Type

Description

Skew

Float

Time offset to shift the waveform

25.40.3 Output Signal

This filter outputs an analog waveform with one sample for each sample in the input, phase shifted by the requested offset.

25.41 Digital to NRZ

Convert a digital signal (and associated clock) to an analog NRZ waveform. This filter uses a simplistic piecewise linear rise/fall time model: the output stays at the logic low/high voltage until the input changes, then ramps at a constant rate to then new value. For more accurate modeling of edge shape use the IBIS Driver filter with the appropriate IBIS model for your DUT.

25.41.1 Inputs

Signal name

Type

Description

data

Digital

Digital data to send

clk

Digital

Clock for data

25.41.2 Parameters

Parameter name

Type

Description

Level 0

Float

Voltage to send when the input is a logic 0

Level 1

Float

Voltage to send when the input is a logic 1

Sample Rate

Int

Sample rate for the generated waveform

Transition Time

Int

Rising and falling edge time

25.41.3 Output Signal

This filter outputs an analog NRZ version of the provided digital input, sampled uniformly at the specified rate.

25.42 Digital to PAM4

Convert a digital signal (and associated clock) to an analog PAM-4 waveform. This filter uses a simplistic piecewise linear rise/fall time model: the output stays at the current symbol’s voltage until the input changes, then ramps at a constant rate to then new value. For more accurate modeling of edge shape use the IBIS Driver filter with the appropriate IBIS model for your DUT.

The input data is a digital serial bit stream at twice the PAM4 symbol rate. Two consecutive input bits map to a single PAM-4 output sample.

25.42.1 Inputs

Signal name

Type

Description

data

Digital

Serial digital data to send

clk

Digital

Clock for data

25.42.2 Parameters

Parameter name

Type

Description

Level 00

Float

Voltage to send when the input is a logic 0-0

Level 01

Float

Voltage to send when the input is a logic 0-1

Level 10

Float

Voltage to send when the input is a logic 1-0

Level 11

Float

Voltage to send when the input is a logic 1-1

Sample Rate

Int

Sample rate for the generated waveform

Transition Time

Int

Rising and falling edge time

25.42.3 Output Signal

This filter outputs an analog PAM-4 version of the provided digital input, sampled uniformly at the specified rate.

25.43 DisplayPort - Aux Channel

Decodes the Auxiliary Channel of DisplayPort

25.44 Divide

Divides one waveform by another.

25.45 Downconvert

Performs digital downconversion by mixing a directly sampled RF signal with a two-phase local oscillator, then outputs the downconverted signal. No LO rejection filtering or decimation is performed.

25.46 Downsample

Low-pass filters a signal to prevent aliasing, then decimates by an integer factor.

25.47 DRAM Clocks

Given a DRAM command bus and a DQS strobe, produce separate gated DQ clock streams for read and write bursts.

25.48 DRAM Trcd

Calculates \(T_{rcd}\) (RAS-to-CAS delay) for each newly opened row in a DRAM command bus stream.

25.49 DRAM Trfc

Calculates \(T_{rfc}\) (refresh-to-refresh delay) for each refresh operation in a DRAM command bus stream.

25.50 Duty Cycle

Calculates the duty cycle of a bimodal waveform. The duty cycle is defined as the percentage of time spent in the high state divided by the period.

25.51 DVI

Decodes Digital Visual Interface (DVI) video signals.

25.52 Emphasis

Adds pre/de emphasis to a signal.

25.53 Emphasis Removal

Removes pre/de emphasis from a signal.

25.54 Enhanced Resolution

Applies a FIR low-pass filter to a signal to increase the vertical resolution and reduce noise at the cost of reduced bandwidth. This technique assumes a small amount of Gaussian noise is present in the input waveform, such that a signal whose true value is midway between two ADC codes will randomly fluctuate between the two quantized values, with an average equal to the true value.

Each half bit of resolution reduces the bandwidth by an additional factor of two beyond the Nyquist limit. For example, a 1.5 bit resolution improvement reduces the bandwith to Fnyquist / 8. The filter properties dialog displays the calculated -3 dB bandwidth based on the current input sample rate.

25.54.1 Inputs

Signal name

Type

Description

in

Analog

Input signal

25.54.2 Parameters

Parameter name

Type

Description

Bits

Enum

Number of additional bits of resolution to add

25.55 Envelope

Finds the minimum and maximum of each sample in the input over time, and outputs them as separate streams.

25.56 Ethernet - 10baseT

Decodes the 10base-T Ethernet PCS/PMA as specified in IEEE 802.3-2018 clause 14.

25.57 Ethernet - 100baseT1

Decodes the 100base-T1 single-pair / automotive Ethernet PMA/PCS, as specified in IEEE 802.3-2018 clause 96.

25.59 Ethernet - 100baseTX

Decodes the 100base-TX Ethernet PMA/PCS as specified in IEEE 802.3-2018 clause 24 and 25, and the ANSI X3T12 FDDI PHY.

25.60 Ethernet - 1000baseX

Decodes the 1000base-X Ethernet PCS as specified in IEEE 802.3-2018 clause 36.

Signal name

Type

Description

data

8b/10b

Output of 8B/10B (IBM)

25.60.1 Parameters

This filter takes no parameters.

25.60.2 Output Signal

The 1000base-X filter outputs a series of Ethernet frame segment objects.

Type

Description

Color & Format

Preamble

Preamble

cellcolor{preamble}textcolor{white}{Preamble} & PREAMBLE

Preamble

Start of frame delimiter

cellcolor{preamble}textcolor{white}{Preamble} & SFD

Address

Src/dest MAC

cellcolor{address}textcolor{black}{Address} & From 02:00:11:22:33:44

Control

Ethertype

cellcolor{control}textcolor{white}{Control} & Type: IPv4 newline Type: 0xbeef

Control

VLAN tag

cellcolor{control}textcolor{white}{Control} & VLAN 10, PCP 0

Data

Frame data

cellcolor{data}textcolor{white}{Data} & a5

Checksum OK

Valid FCS

cellcolor{checksumok}textcolor{black}{Checksum OK} & CRC: 0xdeadbeef

Checksum Bad

Invalid FCS

cellcolor{checksumbad}textcolor{white}{Checksum Bad} & CRC: 0xbaadc0de

Error

Malformed data

cellcolor{error}textcolor{white}{Error} & ERROR

TODO: Document protocol analyzer output

25.61 Ethernet - 10Gbase-R

Decodes the 10Gbase-R Ethernet PCS as specified in IEEE 802.3-2018 clause 49.

25.62 Ethernet - GMII

Decodes the Gigabit Media Independent Interface as specified in IEEE 802.3-2018 clause 35.

25.63 Ethernet - QSGMII

Converts a Quad SGMII data stream into four separate SGMII data streams which can be independently decoded.

25.64 Ethernet - RGMII

Decodes the Reduced Gigabit Media Independent Interface as specified in the RGMII 2.0 specification.

25.65 Ethernet - RMII

Decodes the Reduced Media Independent Interface as specified in the RMII specification.

25.66 Ethernet - SGMII

Decodes Serial GMII data at 10, 100, or 1000 Mbps rates to Ethernet frames.

25.67 Ethernet Autonegotiation

Decodes the Base-T autonegotiation signaling for Ethernet as specified in IEEE 802.3-2018 clause 28.

This filter outputs a stream of 16-bit negotiation codewords, which is typically fed to the Ethernet Autonegotiation Page filter.

25.68 Ethernet Autonegotiation Page

Decodes a stream of 16-bit negotiation codewords to ability values, as specified in IEEE 802.3-2018 annex 28A, 28B, and 28C.

Note that the autonegotiation protocol is stateful, so it is not possible to definitively decode a single code word or small group of them in isolation. For accurate decoding, the input waveform should start with the Base Page (sent during the link-down state before a link partner has been detected).]

25.69 Ethernet Base-X Autonegotiation

Decodes the Base-X autonegotiation signaling for Ethernet as specified in IEEE 802.3-2018 clause 37.

Also supports the extended autonegotiation used by SGMII.

25.70 Exponential Moving Average

Calculates an exponential moving average of the input waveform, averaging the data at each sample index with the previous values of the same over multiple consecutive acquisitions.

The average is calculated recursively; for sample value \(S\) and half life \(T\), the recurrence relation is:

\[Out[i] = \left(1-\frac{1}{\displaystyle{2^\frac{1}{x}}}\right)\left(Out[i-1]\right) + \left(\frac{1}{\displaystyle{2^\frac{1}{x}}}\right)\left(S\right)\]

25.70.1 Inputs

Signal name

Type

Description

din

Analog

Input signal

25.70.2 Parameters

Parameter name

Type

Description

Half-life

Integer

Half life of the average, in waveforms

25.71 Eye Bit Rate

Measures the bit rate of an eye pattern.

25.72 Eye Height

Measures the vertical opening of an eye pattern.

25.73 Eye P-P Jitter

Measures the peak-to-peak jitter of an eye pattern.

25.74 Eye Pattern

Calculates an eye pattern given an analog waveform and a clock (typically generated by the Clock Recovery (PLL) filter).

_images/eye.png

Fig. 25.34 Typical usage of the eye pattern filter

_images/graph-eye.png

Fig. 25.35 Example filter graph for computing an eye pattern from a differential input

FloatBarrier

25.74.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

clk

Digital

Symbol clock

25.74.2 Parameters

Parameter name

Type

Description

Bit Rate

Int

Symbol rate (if not using automatic bit rate calculation)

Bit Rate Mode

Enum

Specifies whether to automatically calculate the symbol rate from the input clock, or use a user-specified symbol rate

Center Voltage

Float

Vertical midpoint of the eye (normally 0)

Clock Edge

Float

Selects whether the sampling clock is rising edge triggered, falling edge triggered, or DDR (default)

Mask

Filename

Path to a YAML file containing pass/fail mask polygons

Saturation Level

Float

Saturation level for normalizing eye patterns, in range [0, 1.0]. 1.0 is the default and maps the full input range to the full output range; lower values saturate. For example 0.5 means the bottom half of count values map to the full scale output range and anything larger is clipped to full scale.

Vertical Range

Float

Full scale Y-axis range (if not autoscaling)

Vertical Scale Mode

Enum

Specifies whether to autoscale the input or use a user-specified full scale range

25.74.3 Output Signal

Stream name

Type

Description

data

Eye

Output eye pattern

hitrate

Scalar

Fraction of samples touching the mask (mask hits / samples integrated). If no mask is set, this output will always be zero.

uisIntegrated

Scalar

Number of unit intervals integrated by the eye

samplesIntegrated

Scalar

Number of samples integrated by the eye

25.75 Eye Period

Measures the UI width of an eye pattern.

25.76 Eye Width

Measures the horizontal opening of an eye pattern.

25.77 Fall

Measures the fall time of each falling edge in a waveform.

25.78 FFT

Calculates a Fast Fourier Transform and displays the magnitude response.

25.79 FIR

Applies a finite-impulse-response filter to a signal.

25.80 Frequency

Measures the frequency of each cycle in a waveform.

25.81 FSK

Converts a frequency-vs-time waveform (typically generated by the Vector Frequency filter either directly or through a denoising filter) to a digital waveform. As of now, only BFSK is supported.

The filter calculates a histogram of the input signal each waveform, expecting a bimodal distribution. The two highest histogram peaks are selected as the nominal logic 0 and 1 levels, with the higher frequency assigned to logic 1 and the lower to logic 0.

Thresholding is performed at the midpoint of the nominal 0 and 1 levels, with hysteresis equal to 20of the difference between the nominal levels. Using adaptive thresholds allows the filter to automatically track frequency-hopping systems as long as only one packet is present in each waveform.

TODO: re-histogram any time we break squelch?

25.82 Full Width at Half Maximum

Calculates the full width at the half of maximum value of all peaks in a signal.

_images/full-width-half-max.png

Fig. 25.36 Example of full width at half maximum of a Sinewave input waveform.

25.82.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.82.2 Parameters

Parameter name

Type

Description

Peak Threshold

Float

Pulses with peak values below this threshold are not considered

25.82.3 Output Signal

This filter outputs two analog waveforms. One shows the value of full width at half maximum value of all the peaks in the signal. Another output waveform shows the amplitude of all the corresponding peaks.

25.83 Gate

This filter outputs a copy of its input with zero delay if the enable signal is high. If the enable signal is low, the output is either unchanged (latched) or no waveform is produced (gated).

25.84 Glitch Removal

This filter removes glitches’ from a digital waveform. A Minimum Width is specified, and any `pulse’ (period during which the waveform has the same value) shorter than that pulse is ignored, the previous pulse continuing. Common use is to remove glitches from a :math:`f Hz signal by filtering pulses shorter than \(\frac{1}{1.1f}\) s.

25.84.1 Inputs

Signal name

Type

Description

data

Digital

Input data.

25.84.2 Parameters

Parameter name

Type

Description

Minimum Width

Float

Minimum width of a pulse allowed through.

25.84.3 Output Signal

This filter outputs a digital waveform which has no samples shorter than Minimum Width. The output waveform does not have any samples until the first pulse of at least Minimum Width, and the last state continues to the end of the waveform.

25.85 Group Delay

Calculates the group delay of a phase-vs-frequency waveform, \(\frac{d\phi}{d\omega}\).

25.85.1 Inputs

Signal name

Type

Description

Phase

Analog

Phase angle vs frequency

25.85.2 Parameters

This filter takes no parameters.

25.85.3 Output Signal

This filter outputs an analog waveform with one sample per frequency point, containing the group delay at that frequency.

25.86 Histogram

Computes a histogram from incoming data. Histogram counts are accumulated across multiple processed waveforms and cleared on “Clear Sweeps.” Number of histogram bins is determined from the bin size parameter and the max/min values configured. Default behavior is to autorange the input and have 100fs bins. Samples outside a configured manual range will fall into the highest/lowest bin and the “CLIPPING” flag will be set on the output waveform.

25.86.1 Inputs

Signal name

Type

Description

data

Analog

Input data. Usually in units of fs.

25.86.2 Parameters

Parameter name

Type

Description

Autorange

Bool

If the filter should automatically range the maximum and minimum bins

Min Value

Float

Lower end of the lowest bin when Autorange disabled

Max Value

Float

Higher end of the highest bin when Autorange disabled

Bin Size

Float

Size of a bin. Number of bins is determined from this and max/min values

25.86.3 Output Signal

This filter outputs an analog waveform with one sample per bin and a value in counts. The “CLIPPING” flag on a waveform indicates that input samples fell outside the configured range of bins (when not using Autoranging.)

25.87 Horizontal Bathtub

Calculates a bathtub curve across a horizontal slice through an eye pattern.

25.88 HDMI

Decodes HDMI

25.89 \(I^2C\)

Decodes the Phillips \(I^2C\) bus protocol.

25.90 \(I^2C\) EEPROM

Decodes common \(I^2C\) EEPROM memory devices

25.91 \(I^2C\) Register

Decodes low level \(I^2C\) bus traffic into a series of register read-write transactions targeting a specific device address.

This filter assumes that the device has a fixed sized address pointer. Register writes consist of a write to the device’s address, the register address, then write data. Reads consist of a write to the device’s address, the register address, a read from the device’s address, and read data.

25.92 IBIS Driver

Converts a digital waveform and double-rate clock to an analog waveform using the rising and falling edge waveforms from an IBIS model.

This filter assumes a perfect \(50\Omega\) load or other matched load as specified in the IBIS model; clamp behavior of the driver in response to channels with significant reflection is not currently modeled.

IBIS-AMI is not currently supported, however this is planned (issue{scopehal}{192}).

Model name and termination conditions are dynamically created enumerations; the set of legal values for these fields depends on the specific .ibs file loaded.

Note that IBIS corners specify minimum, typical, or maximum output voltage, not timing or other properties.

25.92.1 Inputs

Signal name

Type

Description

data

Digital

Digital waveform to transmit

clk

Digital

Transmit clock (double rate)

25.92.2 Parameters

Parameter name

Type

Description

Corner

Enum

Name of the corner to use

File Path

String

Filesystem path to the IBIS model

Model Name

Enum

Name of the I/O cell model within the IBIS model to use

Sample Rate

Int

Sample rate to use for the output waveform

Termination

Enum

Name of the termination condition to use

25.92.3 Output Signal

This filter outputs an analog waveform containing uniformly spaced samples at the specified rate.

25.93 Invert

Inverts an analog waveform by negating each sample.

25.94 Intel eSPI

Decodes the Enhanced Serial Peripheral Interface protocol, used between Intel CPUs and peripherals such as baseboard management controllers (BMCs) and embedded controllers (ECs).

25.95 IPv4

Internet Protocol version 4

25.96 IQ Demux

Given a single waveform containing consecutively sampled I and Q values, plus a recovered clock, output separate sampled I and Q waveforms and a half-rate clock.

I is always sampled before Q.

Two alignment methods are supported: None (first clock edge in the input is arbitrarily declared to be I) and 100Base-T1 (the alignment with the least (0,0) symbols is preferred)

25.97 IQ Squelch

Gates I/Q data to eliminate noise between packets. Signal regions with amplitude below the squelch threshold are replaced with an equal number of zero-valued samples.

25.98 J1939 Analog

Outputs an analog signal extracted from a specific J1939 PGN

25.99 J1939 Bitmask

Outputs a Boolean signal indicating whether a specific J1939 PGN matches a bitmask

25.100 J1939 PDU

Decodes CAN bus IDs to decode the J1939 PDU1 and PDU2 format.

25.101 J1939 Source Match

Filters a sequence of J1939 PDUs to output only those which are sent from a specified source address

25.102 J1939 Transport

Decodes the J1939 transport layer (PGNs 60416 and 60160) and reassembles multi-part packets into single logical packets. All other PGNs pass through this filter unchanged.

As of now, only broadcast mode (BAM) packets are decoded, due to lack of CM test datasets.

25.103 Jitter

Adds random and/or periodic jitter to a digital waveform by displacing each sample.

Random jitter is unbounded and has a Gaussian distribution with a user-specified standard deviation. Periodic jitter is sinusoidal and has a bounded range of -1 to +1 times the specified amplitude. Only a single frequency of Pj is supported, however several instances of this filter may be chained in order to inject Pj at multiple frequencies. The starting phase of the Pj sinusoid is random.

25.103.1 Inputs

Signal name

Type

Description

din

Digital

Input waveform

25.103.2 Parameters

Parameter name

Type

Description

Rj Stdev

Float

Standard deviation of random jitter

Pj Frequency

Float

Frequency of periodic jitter

Pj Amplitude

Float

Amplitude of periodic jitter

25.103.3 Output Signal

This filter outputs a digital waveform with one sample per sample in the input waveform, with sample time shifted by the sum of random and periodic jitter terms. The output waveform will have 1fs timebase resolution and not be dense packed, regardless of the input timebase configuration.

25.104 Jitter Spectrum

Calculates an FFT of a TIE waveform.

25.105 JTAG

Joint Test Action Group

25.106 Magnitude

Calculates the magnitude of a complex valued signal

25.107 Maximum

This filter calculates the maximum of its input.

25.107.1 Inputs

Signal name

Type

Description

in

Analog

Input waveform

25.107.2 Parameters

This filter takes no parameters.

25.107.3 Output Signal

Signal name

Type

Description

latest

Scalar

Maximum of the filter’s current input

cumulative

Scalar

Maximum of all input since the last clear-sweeps

totalSamples

Scalar

Total number of integrated samples

totalWaveforms

Scalar

Total number of integrated waveforms

25.108 MDIO

Decodes the Management Data Input/Output interface on Ethernet PHYs. At the moment, only Clause 22 format is supported.

25.109 Memory

Takes a snapshot of the input which remains “frozen” until manually updated. Typically used for comparing past and present values of a signal on the same plot.

25.110 MIL-STD-1553

Decodes the MIL-STD-1553 avionics data bus.

25.111 Minimum

This filter calculates the minimum of its input.

25.111.1 Inputs

Signal name

Type

Description

in

Analog

Input waveform

25.111.2 Parameters

This filter takes no parameters.

25.111.3 Output Signal

Signal name

Type

Description

latest

Scalar

Minimum of the filter’s current input

cumulative

Scalar

Minimum of all input since the last clear-sweeps

totalSamples

Scalar

Total number of integrated samples

totalWaveforms

Scalar

Total number of integrated waveforms

25.112 MIPI D-Phy Data

Converts two streams of D-Phy Symbols (one data and one clock) into bytes and control events.

Only a single data lane is supported at the moment, but multi-lane support will be added in the future.

This filter only supports high speed data; escape mode data is handled by the MIPI D-Phy Escape Mode filter.

25.113 MIPI D-Phy Escape Mode

Converts a stream of D-PHY Symbols for a data lane into low-power data.

25.114 MIPI D-Phy Symbol

Decodes one or two analog channels to MIPI D-PHY symbols (HS/LS line states). Either the positive half, or both positive and negative, of the pair may be provided.

If only the positive half is provided, it is possible to decode HS data and clocks, but not the LP-01 and LP-10 states, as these are indistinguishable from LP-00 and LP-11. This prevents proper decoding of Escape Mode data, although Start-Of-Transmission sequences may be inferred from context.

25.115 MIPI DSI Frame

Converts a MIPI DSI Packet stream into video scanlines.

25.116 MIPI DSI Packet

Converts two streams of D-Phy Symbol’s (one data and one clock) into MIPI DSI packets.

25.117 Moving Average

Calculates a moving average (box filter) over an analog waveform.

25.118 Multiply

Multiplies one waveform or scalar by another. No resampling is performed; if both inputs are waveforms they must have identical sample rates and be aligned in time.

Unit conversions are performed, for example the product of a voltage and current waveform is a power waveform.

25.119 NCO

Numerically controlled oscillator: creates a sinusoidal waveform whose frequency tracks a target value

25.120 Noise

Adds Gaussian noise with a specified standard deviation to a waveform.

25.121 Overshoot

25.122 PAM4 Demodulator

Converts an analog PAM4 waveform and recovered clock into a digital serial waveform and recovered clock at twice the symbol rate. This allows conventional NRZ protocol decodes to be applied to a PAM4 data stream.

Gray coding is assumed, as used by all major PAM-4 networking standards.

25.123 PAM Edge Detector

Finds level crossings in a PAM signal (of arbitrary order) and outputs a digital waveform which toggles each time the PAM signal transitions to a new level. This may be used as the input to a CDR PLL block which is designed to work on NRZ input.

25.124 Parallel Bus

25.125 PcapNG Export

Exports a series of packets to a PCAPNG file (or pipe). As of this writing, Ethernet is the only implemented link layer.

25.126 PcapNG Import

Imports a PcapNG file as a list of packets. As of this writing, CAN is the only implemented link layer.

25.128 PCIe Gen 1/2 Logical

Decodes the Logical Sub-Block of the PCI Express 1.0 and 2.0 PHY. This layer decodes 8B/10B symbols and the LFSR scrambler. TLP and DLLP start/end markers are identified but no packet decoding is performed.

25.129 PCIe Gen 3/4/5 Logical

Decodes the Logical Sub-Block of the PCI Express 3.0, 4.0, and 5.0 PHY. This layer converts 128b/130b symbols into a stream of protocol packets and content. TLP and DLLP start/end markers are identified but no packet decoding is performed.

25.131 PCIe Transport

Decodes the Transport layer of PCI Express. At this layer TLPs are fully decoded, however only a unidirectional view of the system is visible (only TX or only RX).

25.132 Peak Hold

25.133 Peak-to-Peak

25.134 Peaks

Finds peaks in a waveform (typically a spectrum of some sort)

25.135 Period

25.136 Phase

Displays the relative phase of a signal as a function of time. Typically used for visualizing PSK modulations.

25.137 Phase Nonlinearity

Given a phase angle waveform, outputs the difference between the actual phase and linear phase. A perfectly linear network will be displayed as a horizontal line at Y=0; leading or lagging phase will show up as spikes above or below zero.

The nominal linear phase response is calculated based on the averge group delay between two user-supplied frequencies. Moving the reference frequencies further apart reduces the impact of phase noise in the data (since more points are being averaged) however both points must be located well within the linear region of the network in order to give accurate results.

_images/phase-nonlinearity.png

Fig. 25.37 Example of nonlinear phase of a filter in the stopband

25.137.1 Inputs

Signal name

Type

Description

Phase

Analog

Input waveform

25.137.2 Parameters

Parameter name

Type

Description

Ref Freq Low

Float

Lower reference frequency

Ref Freq High

Float

Upper reference frequency

25.137.3 Output Signal

This filter outputs an analog waveform with one sample for each sample in the input, containing the deviation from linear phase.

25.138 PRBS

Generates a pseudorandom bit sequence, and double rate bit clock, with a specified bit rate from a list of standard polynomials.

25.139 Pulse Width

This filter measures the length and amplitude of pulses and outputs that as a waveform. It auto-thresholds analog inputs at 50.

_images/pulse-width.png

Fig. 25.38 Example of pulse width measurement of a clipped sinewave input waveform.

25.139.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.139.2 Output Signal

This filter outputs two output waveforms. One is a sparse analog waveform with the same timebase as the input, containing one sample per pulse with a duration and value equal to the length of the pulse. Other is a similar sparse analog waveform, but its values are equal to the amplitude of the pulses. In case, the input is uniform or sparse digital, this second output waveform is uniform or sparse digital respectively instead of analog.

25.140 QSPI

Quad SPI as used in serial Flash. Note that this filter only decodes quad mode streams, not x1 SPI.

25.141 Quadrature

Quadrature pulses from a rotary encoder

25.142 Reference Plane Extension

Given a set of S-parameters, shifts the reference plane on one or two ports and outputs a new set of S-parameters.

25.143 RGB LED

Decodes the single-wire serial protocol used by common addressable RGB LEDs

25.144 RIS

Performs random interleaved sampling (RIS) on a repetitive, uniformly sampled analog waveform in order to create a waveform with a higher effective sample rate.

25.145 Rise

Calculates the rise time for each cycle of a waveform

25.146 Rj + BUj

Removes data-dependent jitter (DDJ) from a TIE waveform, leaving uncorrelated jitter (Rj and BUj).

25.147 RMS

Measures the Root Mean Square value of the waveform, including any DC component

_images/acrms.png

Fig. 25.39 Example of an AC RMS Measurement of a Sinewave with 1V peak voltage

25.147.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.147.2 Parameters

This filter takes no parameters.

25.147.3 Output Signal

This filter has two output streams.

Stream name

Type

Description

trend

Sparse analog

One sample per cycle of the input waveform containing the RMS value across that cycle

avg

Scalar

RMS value across the entire waveform

25.148 S-Parameter Cascade

Cascades two two-port networks and outputs a two-port network equivalent to the two input networks in series.

25.149 Sawtooth

Generates a sawtooth waveform.

25.150 S-Parameter De-Embed

Given a two port network equal to the cascade of two others, plus S-parameters for one of the two sub-networks, output S-parameters for the other.

25.151 Scalar Pulse Delay

Delays a scalar pulse by approximately the specified real time.

This filter is intended for use in control or test applications to trigger a measurement after an experimental setup has had time to stabilize.

25.152 Scalar Stairstep

Outputs a scalar value which ramps from a starting value to an ending value in a stairstep pattern, with configurable step duration and spacing.

25.153 SD Card Command

Decodes the Secure Digital card command bus protocol

25.154 Setup / Hold

Calculates the setup and hold times of a data signal relative to a clock.

Setup time is measured from data valid (leaving the undefined region between Vil and Vih) to clock invalid (entering the undefined region). Hold time is measured from clock valid to data invalid.

The overall setup and hold times reported by the filter are the minimums observed across the entire waveform.

If the undefined regions of data and clock signals ever overlap, both setup and hold time are reported as zero.

25.154.1 Inputs

Signal name

Type

Description

data

Analog

Input data

clock

Analog

Input clock

25.154.2 Parameters

Parameter name

Type

Description

Vih

Float

High level threshold for the input buffer

Vil

Float

Low level threshold for the input buffer

Clock Edge & Enum &

Rising: Sample data on the rising clock edge newline Falling: Sample data on the falling clock edge newline Both: Sample data on both clock edges

25.154.3 Output Signal

Signal name

Type

Description

tsetup

Analog scalar

Lowest setup time observed in the waveform

thold

Analog scalar

Lowest hold time observed in the waveform

25.155 Sine

Generates a pure sine wave with specified frequency, amplitude, sample rate, and DC bias.

25.156 SNR

Computes simple \(\frac{\mu}{\sigma}\) (mean over standard deviation) signal-to-noise ratio for the input signal.

25.156.1 Inputs

Signal name

Type

Description

in

Analog

Input Waveform

25.156.2 Parameters

This filter takes no parameters.

25.156.3 Output Signal

This filter outputs a scalar value representing the \(\frac{\mu}{\sigma}\) SNR for the whole waveform. For sparse waveforms samples are weighted by length and gaps are not considered.

25.157 Spectrogram

Displays a 2D plot of frequency vs time using configurable FFT length.

25.158 SPI

Serial Peripheral Interface.

25.159 SPI Flash

Flash memory attached to a SPI or quad SPI bus. Typically these chips have part numbers that start with “25”.

25.160 Squelch

Detects periods with no signal.

25.161 Step

Generates a single step from one voltage level to another. Typically used for measuring step response of a channel or doing TDR transforms on S-parameters.

25.162 Subtract

Subtracts one waveform from another. No resampling is performed; both inputs must have identical sample rates.

25.162.1 Inputs

Signal name

Type

Description

IN+

Analog

Positive input waveform

IN-

Analog

Negative input waveform

25.162.2 Parameters

This filter takes no parameters.

25.162.3 Output Signal

This filter outputs an analog waveform with one sample for each sample in the input, containing the difference of the two input waveforms.

25.163 SWD

The Serial Wire Debug protocol between a Debug Probe and an ARM Microcontroller, typically from the CORTEX-M family. This decode recognises all SWD frame elements and validates type and parity of both incoming and outgoing messages. It also identifies line resets and line protocol change messages.

The SWD Protocol defines that the target will read and write on the rising edge of SWCLK. It does not place any constraint on when the probe reads and writes. For the purposes of graphical depiction each protocol element starts at a falling edge and continues to be valid until the next falling edge, following the graphical convention established in the ARM documentation.

Reference: ARM Debug Interface v5 Architecture Specification, Chapter 4.

_images/swd.png

Fig. 25.40 Example of SWD protocol decode

25.163.1 Inputs

Signal name

Type

Description

SWDIO

Digital

Serial Wire Data In/Out (To/From target)

SWCLK

Digital

Serial Wire Clock In (To Target from Debug Probe)

25.163.2 Parameters

No parameters are required for configuration of SWD. The protocol is clocked by SWCLK.

25.163.3 Output Signal

The SWD bus decode outputs a time series of SWD message elements, each of which may be one or a number of bits long. Each message element consist of a type and optional numeric content.

Type

Description

Color & Format

Line Control

Line Reset

cellcolor{preamble}textcolor{white}{Preamble} & LINE RESET

Line Mode

Line Mode Change to SWD

cellcolor{control}textcolor{white}{Control} & JTAG TO SWD

Line Mode

Line Mode Change to JTAG

cellcolor{control}textcolor{white}{Control} & SWD TO JTAG

Line Mode

Line Mode Change to Dormant

cellcolor{control}textcolor{white}{Control} & SWD TO DORMANT

Line Mode

Leave Dormant Mode

cellcolor{control}textcolor{white}{Control} & LEAVE DORMANT

Start

Start of frame

cellcolor{preamble}textcolor{white}{Preamble} & START

APnDP

Selection between AP and DP

cellcolor{control}textcolor{white}{Control} & AP|DP

RnW

Read or Write mode

cellcolor{control}textcolor{white}{Control} & R|W

ADDR

AP or DP Address

cellcolor{address}textcolor{black}{Address} & Reg 02x

Parity

Good Header Parity

cellcolor{green}textcolor{black}{Control} & OK

Parity

Bad Header Parity

cellcolor{red}textcolor{white}{Control} & BAD

Stop

End of Header

cellcolor{preamble}textcolor{white}{Preamble} & STOP

Park

Line Release

cellcolor{preamble}textcolor{white}{Preamble} & PARK

Turnaround

Line Direction Change

cellcolor{preamble}textcolor{white}{Preamble} & TURN

Acknowledge

Good Response from target to request

cellcolor{control}textcolor{white}{Control} & ACK|WAIT

Acknowledge

Bad Response from target to request

cellcolor{control}textcolor{white}{Control} & FAULT|ERROR

Data

Payload to/From Target

cellcolor{data}textcolor{white}{Data} & 08x

25.164 SWD MEM-AP

Converts SWD accesses to MEM-AP registers into memory read-write transactions.

Reference: ARM Debug Interface v5 Architecture Specification, chapter 8.

25.165 Tachometer

Converts pulses from a tachometer to shaft speed

25.166 Tapped Delay Line

Generic FIR filter with arbitrary tap values and delays. Can be used as-is for testing FIR filter coefficients calculated by hand, but most commonly used as a base class for more specialized filters.

25.167 TCP

Decodes the Transmission Control Protocol (RFC 675). As of this writing, only IPv4 is supported as a network layer protocol. IPv6 support is planned once an IPv6 protocol decode has been written.

25.168 TDR

Converts a TDR waveform from volts to reflection coefficient or impedance.

25.169 Time Outside Level

Measures the total integrated time a signal remains above a high reference level or below a low reference level or both.

_images/time-outside-level.png

Fig. 25.41 Example of time outside high level measurement with a high level threshold of 0mV

25.169.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.169.2 Parameters

Parameter name

Type

Description

High Level

Float

High level reference voltage

Low Level

Float

Low level reference voltage

Measurement Type & Enum &

High Level: Measure the total time the signal is above high level reference voltage newline Low Level: Measure the total time the signal is below low level reference voltage newline Both: Measure the total time the signal is both above and below high level and low level reference voltages respectively

25.170 Thermal Diode

Converts an analog voltage measurement of a thermal diode to a temperature value

25.171 Threshold

Converts an analog waveform to digital by thresholding at a constant level (no hysteresis).

25.171.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.171.2 Parameters

Parameter name

Type

Description

Threshold

Float

Decision threshold

25.171.3 Output Signal

This filter outputs an digital waveform with one sample for each sample in the input, which is true if the corresponding input sample is above the threshold and false if less than or equal.

25.172 TIE

Calculates the time interval error of a data or clock signal with respect to an ideal “golden” clock (typically obtained from a CDR PLL).

25.173 Top

Calculates the top (logical one level) of each cycle in a digital waveform. It is most commonly used as an input to statistics, to view the average top of the entire waveform.

25.173.1 Inputs

Signal name

Type

Description

din

Analog

Input waveform

25.173.2 Parameters

This filter takes no parameters.

25.173.3 Output Signal

This filter outputs an analog waveform with one sample for each group of logical ones in the input signal, containing the average value of the one level.

25.174 Touchstone Export

Saves S-parameter data to a Touchstone file.

25.175 Touchstone Import

Loads a Touchstone file and displays the complex data in magnitude/angle format

25.176 Trend

Plots a trend of a scalar value over time

25.177 TRC Import

Loads waveform data from a Teledyne LeCroy TRC waveform file.

25.178 UART

25.179 Unwrapped Phase

Given a phase angle waveform which wraps within the interval \([-180 ^\circ, +180 ^\circ]\), unwrap the phase angle.

_images/unwrapped-phase.png

Fig. 25.42 Example of wrapped and unwrapped phase of a transmission line

25.179.1 Inputs

Signal name

Type

Description

Phase

Analog

Input waveform

25.179.2 Parameters

This filter takes no parameters.

25.179.3 Output Signal

This filter outputs an analog waveform with one sample for each sample in the input, containing the unwrapped phase angle.

25.180 USB 1.0 / 2.x Activity

25.181 USB 1.0 / 2.x Packet

25.182 USB 1.0 / 2.x PCS

25.183 USB 1.0 / 2.x PMA

25.184 Undershoot

25.185 Upsample

Upsamples a waveform using sin(x)/x interpolation.

25.186 VCD Import

Loads digital waveform data from a Value Change Dump (VCD) file.

25.187 Vector Frequency

Calculates the instantaneous frequency (rotational velocity) of a complex I/Q signal.

25.188 Vector Phase

Calculates the instantaneous phase of a complex I/Q signal.

25.189 Vertical Bathtub

25.190 VICP

Decodes the Teledyne LeCroy Virtual Instrument Control Protocol (VICP)

25.191 Waterfall

25.192 WAV Import

Loads waveform data from a Microsoft WAV audio file.

25.193 WFM Import

Loads waveform data from a Tektronix .wfm file.

25.194 Windowed Autocorrelation

Calculates the cross-correlation between a fixed size block of the input signal and another block of the same size.

This will produce maximal response for a signal which has periodicity with the specified period and block size.

For example, period 4 and block size 2 will match aa**aa**.

This can be used to identify OFDM symbols.

25.195 Window

Selects a temporal subset of an input waveform. Useful for running intensive analyses only on a region of interest. Start and end times are rounded to the sample that starts at or nearest after the given time.

25.195.1 Inputs

Signal name

Type

Description

din

Analog or Digital

Input waveform

25.195.2 Parameters

Parameter name

Type

Description

Start Time

Float

Start of selected window

Duration

Float

Length of selected window

25.195.3 Output Signal

This filter outputs a subset of the input signal. If the input is sparse, so is the output and vice versa. No samples are added.

25.196 X-Y Sweep

This filter converts a sweeping X scalar value and a corresponding Y scalar value into a waveform plotting X against Y.

Note that this filter assumes that the X value is sweeping in an upwards ramp, and is not intended for use with arbitrary X-Y data. In particular, the output is a standard sparse waveform type rather than an X-Y density map.