Mathematical Functions#
Negation#
You can negate each signal sample with the '-' operator or by calling
the method neg().
A new Trace instance labeled with the performed transformation
'neg' is returned.
>>> # negate samples with operator
>>> -Trace('Signal', [-1, 0, 1])
Trace(label='Signal:neg', samples=[1, 0, -1])
>>> # negate samples with method call
>>> Trace('Signal', [-1, 0, 1]).neg()
Trace(label='Signal:neg', samples=[1, 0, -1])
(Source code, html)
Absolute#
You can compute the absolute value for each signal sample with the built-in
function abs() or by calling the method abs().
A new Trace instance labeled with the performed transformation
'abs' is returned.
>>> abs(Trace('Signal', [-1, 0, 1]))
Trace(label='Signal:abs', samples=[1, 0, 1])
>>> Trace('Signal', [-1, 0, 1]).abs()
Trace(label='Signal:abs', samples=[1, 0, 1])
(Source code, html)
Rounding#
You can round each signal sample with the built-in function round() or
by calling the method round().
A new Trace instance labeled with the performed transformation
'round' is returned.
>>> round(Trace('Signal', [-1.5, -0.5, 0, 0.5, 1.5]))
Trace(label='Signal:round', samples=[-2, 0, 0, 0, 2])
>>> Trace('Signal', [-1.5, -0.5, 0, 0.5, 1.5]).round()
Trace(label='Signal:round', samples=[-2, 0, 0, 0, 2])
(Source code, html)
Truncation#
You can truncate each signal sample with the function trunc()
from the math module or by calling the method trunc().
A new Trace instance labeled with the performed transformation
'trunc' is returned.
>>> import math
>>> math.trunc(Trace('Signal', [-1.5, -0.5, 0, 0.5, 1.5]))
Trace(label='Signal:trunc', samples=[-1, 0, 0, 0, 1])
>>> Trace('Signal', [-1.5, -0.5, 0, 0.5, 1.5]).trunc()
Trace(label='Signal:trunc', samples=[-1, 0, 0, 0, 1])
(Source code, html)
Round to the Floor#
You can round each signal sample to its floor integer with the function
floor() from the math module or by calling the method
floor().
A new Trace instance labeled with the performed transformation
'floor' is returned.
>>> import math
>>> math.floor(Trace('Signal', [-1.5, -0.5, 0, 0.5, 1.5]))
Trace(label='Signal:floor', samples=[-2, -1, 0, 0, 1])
>>> Trace('Signal', [-1.5, -0.5, 0, 0.5, 1.5]).floor()
Trace(label='Signal:floor', samples=[-2, -1, 0, 0, 1])
(Source code, html)
Round to the Ceil#
You can round each signal sample to its ceil integer with the function
ceil() from the math module or by calling the method
ceil().
A new Trace instance labeled with the performed transformation
'ceil' is returned.
>>> import math
>>> math.ceil(Trace('Signal', [-1.5, -0.5, 0, 0.5, 1.5]))
Trace(label='Signal:ceil', samples=[-1, 0, 0, 1, 2])
>>> Trace('Signal', [-1.5, -0.5, 0, 0.5, 1.5]).ceil()
Trace(label='Signal:ceil', samples=[-1, 0, 0, 1, 2])
(Source code, html)
Signum#
You can compute the signum value for each signal sample by calling the
method sign().
A new Trace instance labeled with the performed transformation
'sign' is returned.
>>> Trace('Signal', [-1.5, -0.5, 0 , 0.5, 1.5]).sign()
Trace(label='Signal:sign', samples=[-1.0, -1.0, 0, 1.0, 1.0])
(Source code, html)
Zeros#
You can check each signal sample is zero or not by calling the
method zero().
A new Trace instance labeled with the performed transformation
'zero' is returned.
>>> Trace('Signal', [-0.5, -0.0, 0, +0.0, 0.5]).zero()
Trace(label='Signal:zero', samples=[0, 1, 1, 1, 0])
(Source code, html)
Positives#
You can check each signal sample is positive or not by calling the
method positive().
A new Trace instance labeled with the performed transformation
'positive' is returned.
>>> Trace('Signal', [-0.5, -0.0, 0, +0.0, 0.5]).positive()
Trace(label='Signal:positive', samples=[0, 0, 0, 0, 1])
(Source code, html)
Negatives#
You can check each signal sample is negative or not by calling the
method negative().
A new Trace instance labeled with the performed transformation
'negative' is returned.
>>> Trace('Signal', [-0.5, -0.0, 0, +0.0, 0.5]).negative()
Trace(label='Signal:negative', samples=[1, 0, 0, 0, 0])
(Source code, html)
Min#
You can get the minimum of each signal sample and the corresponding element
in other Trace’s or Iterables, or an int or float
numbers by calling the method min().
A new Trace instance labeled with the performed transformation
'min' is returned.
>>> # minimum of samples
>>> Trace('Signal1', [1, -2, 3]).min(Trace('Signal2', [-1, 2, -3]))
Trace(label='Signal1:min', samples=[-1, -2, -3])
>>> # minimum of samples and iterables
>>> Trace('Signal', [1, -2, 3]).min([-1, 2, -3])
Trace(label='Signal:min', samples=[-1, -2, -3])
>>> # minimum of samples and numbers
>>> Trace('Signal', [1, 2, 3]).min(2)
Trace(label='Signal:min', samples=[1, 2, 2])
Note
An iterable should have at least the same length as the signal
samples, otherwise only a subset of the signal
samples is returned!
(Source code, html)
Max#
You can get the maximum of each signal sample and the corresponding element
in other Trace’s or Iterables, or an int or float
numbers by calling the method max().
A new Trace instance labeled with the performed transformation
'max' is returned.
>>> # maximum of samples
>>> Trace('Signal1', [1, -2, 3]).max(Trace('Signal2', [-1, 2, -3]))
Trace(label='Signal1:max', samples=[1, 2, 3])
>>> # maximum of samples and iterables
>>> Trace('Signal', [1, -2, 3]).max([-1, 2, -3])
Trace(label='Signal:max', samples=[1, 2, 3])
>>> # maximum of samples and numbers
>>> Trace('Signal', [1, 2, 3]).max(2)
Trace(label='Signal:max', samples=[2, 2, 3])
Note
An iterable should have at least the same length as the signal
samples, otherwise only a subset of the signal
samples is returned!
(Source code, html)
Average#
You can get the average of each signal sample and the corresponding element
in other Trace’s or Iterables, or an int or float
numbers by calling the method average().
A new Trace instance labeled with the performed transformation
'avg' is returned.
>>> # average of samples
>>> Trace('Signal1', [1, -2, 3]).average(Trace('Signal2', [-1, 2, -3]))
Trace(label='Signal1:avg', samples=[0.0, 0.0, 0.0])
>>> # average of samples and iterables
>>> Trace('Signal', [1, -2, 3]).average([-1, 2, -3])
Trace(label='Signal:avg', samples=[0.0, 0.0, 0.0])
>>> # average of samples and numbers
>>> Trace('Signal', [1, -2, 3]).average(2)
Trace(label='Signal:avg', samples=[1.5, 0.0, 2.5])
Note
An iterable should have at least the same length as the signal
samples, otherwise only a subset of the signal
samples is returned!
(Source code, html)
Interpolate#
You can piecewise linear interpolate the signal samples between
consecutive data points by calling the method interpolate().
A new Trace instance labeled with the performed transformation
'interpolate' is returned.
>>> # interpolate linear the samples within the sorted data points
>>> Trace('Signal', [-1.5, -1.0, -0.5, 0 , 0.5, 1.0, 1.5]).interpolate(
... x=[1, -0.5, -1, 0.5], y=[ -1, 0, 1, 0])
Trace(label='Signal:interpolate',
samples=[1.0, 1.0, 0.0, 0.0, 0.0, -1.0, -1.0])
Note
The data points are sorted internally by their x-coordinates to be in ascending order.
(Source code, html)