nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
conversions.hpp
Go to the documentation of this file.
1
3// toolboxes/signal/include/nk/signal/filter_implementation/conversions.hpp
4//
5// Convert between filter representations: zp2sos / tf2sos. The cascade
6// applicator sosfilt lives in digital_filtering/sosfilt.hpp.
7
8#pragma once
9
10#include <memory_resource>
11#include <nk/value/value.hpp>
12
13#include <tuple>
14
15namespace nk::signal {
16
19
20
45Value zp2sos(const Value & zeros,
46 const Value & poles,
47 double gain,
48 std::pmr::memory_resource * mr = nullptr);
49
67std::tuple<Value, double>
68zp2sosWithGain(const Value & zeros,
69 const Value & poles,
70 double gain,
71 std::pmr::memory_resource * mr = nullptr,
72 bool surplusAtOrigin = true);
73
85Value tf2sos(const Value & b,
86 const Value & a,
87 std::pmr::memory_resource * mr = nullptr);
88
101std::tuple<Value, double>
102tf2sosWithGain(const Value &b, const Value &a,
103 std::pmr::memory_resource *mr = nullptr);
104
105
107} // namespace nk::signal
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value tf2sos(const Value &b, const Value &a, std::pmr::memory_resource *mr=nullptr)
Convert a transfer-function pair (b, a) to an SOS matrix.
std::tuple< Value, double > tf2sosWithGain(const Value &b, const Value &a, std::pmr::memory_resource *mr=nullptr)
Two-output form of tf2sos: returns (sos, g).
Value zp2sos(const Value &zeros, const Value &poles, double gain, std::pmr::memory_resource *mr=nullptr)
Convert zeros / poles / gain to a second-order-sections (SOS) matrix.
std::tuple< Value, double > zp2sosWithGain(const Value &zeros, const Value &poles, double gain, std::pmr::memory_resource *mr=nullptr, bool surplusAtOrigin=true)
Convert zeros / poles / gain to (SOS, gain) — the two-output form.