# Data processing

The Multi Channel oscilloscope software has a modular structure, with Sources, I/Os and Sinks.

## Sources

Sources are modules that only generate data. The channels of instruments that are connected to the computer can be used as source, they generate the data that is measured by the hardware. The other source that is available is the software generator, which can create various signals from software that can be used in combination with measured signals.

## Sinks

Sinks are modules that only accept data. Typical sinks are e.g. graphs and meters, they accept data and display it. Other sinks are the disk writer, to store data to disk and the sound sink, to make data audible through the sound system of the computer.

## I/Os

I/Os are modules that accept data (Input), process this data in a specific way and then generate the processed data (Output). Data that is generated by an I/O can be used as input for a Sink or for another I/O. Multiple different I/Os can be chained to each other to perform a complex operation on the data. The Multi Channel oscilloscope software has many different I/Os to process data in a specific way. There are I/Os in several categories:

### Basic math

These I/Os perform a basic mathematical operation on one or more signals:

I/O Function
Gain / Offset Apply gain and/or offset to a signal
Multiply / Divide Multiply or divide up to 32 signals
SQRT Calculate the square root of a signal
ABS Determine the absolute value of a signal
Differentiate Differentiate a signal
Integrate Integrate a signal
Log Calculate the logarithm of a signal

### Filtering I/Os

These I/Os perform a filtering operation on a signal or consecutive signals:

I/O Function
Filter Fully configurable filter
Ideal Filter Fully configurable Ideal filter
Signal cleaner Remove noise and other distortions from periodical signals
Average Outputs the average of n measurements

These I/Os perform an adjusting operation on a signal or consecutive signals:

I/O Function
Deskew Shift the input signal horizontally, in time
Slice Ouputs a selectable slice of its input signal.
Limiter Clip the input signal between a minimum and maximum limit
Comparator Compare the input signal with a selectable reference level
Resampler Changes record length and sampling frequency of an input
Window Applies a window function to its input signal

### Miscellaneous I/Os

These I/Os perform an other operation on a signal or consecutive signals:

I/O Function
Min / Max detector Peak detection with optional fall-off
Data collector Appends small chunks of data to one big record
Reference Holds a copy of a signal

### Analyzing I/Os

These I/Os analyze the input data and extract specific information from it.

I/O Function
Duty cycle Determines duty cycle percentage
RMS Determines RMS value(s) of the input signal
Maximum Determines Maximum value(s) of the input signal
Maximum-Minimum Determines Maximum - Minimum value(s) of the input signal
Minimum Determines Minimum value(s) of the input signal
PhaseDifference Determines phase difference between two input signals
FFT Perform a Fast Fourier Transform (Spectrum analyzer)
EMI Creates an environment that can be used for EMI pre-compliance testing.

### Automotive I/Os

These I/Os perform automotive specific operations on the data.

I/O Function
RPM Converts a crankshaft sensor signal into Revolutions Per Minute
Crankshaft angle Converts a crankshaft sensor signal into the crankshaft angle

### Decoding I/Os

These I/Os decode serial communication data from the input data and present the decoded messages.

I/O Function
Pulse decoder Decodes the A and B signal from a quadrature encoder to position
I2C decoder Decodes analog data on an I2C bus to I2C data.
UART / Serial Decoder Decodes analog data on a serial bus (UART, RS232, RS458, Midi, DMX, LIN) to serial data.
CAN decoder Decodes data on a CAN bus
J1939 decoder Extracts SAE J1939 SPN values from CAN messages
SPI decoder Decodes data on a SPI bus

## Using sources, sinks and I/Os

All measurement setups in the Multi Channel oscilloscope software are built from one or more sources, I/Os and sinks. These are simply connected to each other by dragging and dropping. Multiple I/Os can be used to form complex mathematical operations.

In the image above, three I/Os are used to determine the area that is enclosed by two signals in XY mode.