nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
sig_utils.hpp
Go to the documentation of this file.
1
3// toolboxes/signal/include/nk/signal/measurements/sig_utils.hpp
4#pragma once
5
6#include <memory_resource>
7#include <nk/value/value.hpp>
8
9#include <utility>
10
11namespace nk::signal {
12
15
16
32std::pair<Value, Value>
33seqperiod(const Value & x,
34 double tol = 0.0,
35 std::pmr::memory_resource * mr = nullptr);
36
50std::pair<Value, Value>
52 double level = 0.0,
53 std::pmr::memory_resource * mr = nullptr);
54
62
78CusumResult cusum(const Value &x, double climit = 5.0, double mshift = 1.0,
79 const Value &tmean = Value::Empty,
80 const Value &tdev = Value::Empty,
81 std::pmr::memory_resource *mr = nullptr);
82
83
85} // namespace nk::signal
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
static const Value Empty
MATLAB-style empty matrix sentinel — a 0×0 DOUBLE value.
Definition value.hpp:136
CusumResult cusum(const Value &x, double climit=5.0, double mshift=1.0, const Value &tmean=Value::Empty, const Value &tdev=Value::Empty, std::pmr::memory_resource *mr=nullptr)
CUSUM change detector ([iu, il, us, ls] = cusum(x, climit, mshift, tmean, tdev)).
std::pair< Value, Value > seqperiod(const Value &x, double tol=0.0, std::pmr::memory_resource *mr=nullptr)
Find the smallest repetition period of a signal.
std::pair< Value, Value > zerocrossrate(const Value &x, double level=0.0, std::pmr::memory_resource *mr=nullptr)
Zero-crossing rate of a signal.
Result of cusum — [iupper, ilower, uppersum, lowersum].
Definition sig_utils.hpp:56
Value uppersum
Length-N upper cumulative sum.
Definition sig_utils.hpp:59
Value lowersum
Length-N lower cumulative sum.
Definition sig_utils.hpp:60
Value ilower
First index where the lower sum exceeds climit (empty = none).
Definition sig_utils.hpp:58
Value iupper
First index where the upper sum exceeds climit (empty = none).
Definition sig_utils.hpp:57