12#include <memory_resource>
13#include <nk/value/value.hpp>
41std::tuple<Value, Value, Value>
42buttap(
int N, std::pmr::memory_resource *mr =
nullptr);
52std::tuple<Value, Value, Value>
53cheb1ap(
int N,
double Rp, std::pmr::memory_resource *mr =
nullptr);
64std::tuple<Value, Value, Value>
65cheb2ap(
int N,
double Rs, std::pmr::memory_resource *mr =
nullptr);
77std::tuple<Value, Value, Value>
78besselap(
int N, std::pmr::memory_resource *mr =
nullptr);
92std::tuple<Value, Value, Value>
93ellipap(
int N,
double Rp,
double Rs, std::pmr::memory_resource *mr =
nullptr);
110std::tuple<Value, Value, Value>
115 std::pmr::memory_resource * mr =
nullptr);
128std::tuple<Value, Value, Value>
133 std::pmr::memory_resource * mr =
nullptr);
146std::tuple<Value, Value, Value>
152 std::pmr::memory_resource * mr =
nullptr);
167std::tuple<Value, Value, Value>
169 double Wo,
double Bw,
170 std::pmr::memory_resource *mr =
nullptr);
190std::tuple<Value, Value>
195 std::pmr::memory_resource * mr =
nullptr);
212std::tuple<Value, Value>
217 std::pmr::memory_resource * mr =
nullptr);
233 std::pmr::memory_resource * mr =
nullptr);
Core MATLAB-compatible multidimensional array and scalar value type.
std::tuple< Value, Value > bilinear(const Value &b, const Value &a, double fs, double fp=0.0, std::pmr::memory_resource *mr=nullptr)
Bilinear (Tustin) transform of an analog filter (b, a) to digital.
std::tuple< Value, Value, Value > cheb2ap(int N, double Rs, std::pmr::memory_resource *mr=nullptr)
Chebyshev type-II analog lowpass prototype.
std::tuple< Value, Value, Value > lp2hp(const Value &z, const Value &p, double k, double Wo, std::pmr::memory_resource *mr=nullptr)
Lowpass → highpass frequency transformation.
std::tuple< Value, Value, Value > cheb1ap(int N, double Rp, std::pmr::memory_resource *mr=nullptr)
Chebyshev type-I analog lowpass prototype.
std::tuple< Value, Value, Value > lp2bp(const Value &z, const Value &p, double k, double Wo, double Bw, std::pmr::memory_resource *mr=nullptr)
Lowpass → bandpass frequency transformation.
std::tuple< Value, Value, Value > lp2lp(const Value &z, const Value &p, double k, double Wo, std::pmr::memory_resource *mr=nullptr)
Scale an analog lowpass prototype to cutoff Wo.
std::tuple< Value, Value, Value > lp2bs(const Value &z, const Value &p, double k, double Wo, double Bw, std::pmr::memory_resource *mr=nullptr)
Lowpass → bandstop frequency transformation ([z', p', k'] = lp2bs(z, p, k, Wo, Bw)).
Value freqs(const Value &b, const Value &a, const Value &w, std::pmr::memory_resource *mr=nullptr)
Frequency response of an analog filter b(s)/a(s).
std::tuple< Value, Value > impinvar(const Value &b, const Value &a, double fs, double tol=1e-3, std::pmr::memory_resource *mr=nullptr)
Impulse-invariance design: digital filter with the same impulse-response samples as the analog filter...
std::tuple< Value, Value, Value > buttap(int N, std::pmr::memory_resource *mr=nullptr)
Butterworth analog lowpass prototype.
std::tuple< Value, Value, Value > besselap(int N, std::pmr::memory_resource *mr=nullptr)
Bessel-Thompson analog lowpass prototype.
std::tuple< Value, Value, Value > ellipap(int N, double Rp, double Rs, std::pmr::memory_resource *mr=nullptr)
Elliptic (Cauer) analog lowpass prototype.