12#include <memory_resource>
13#include <nk/value/value.hpp>
43std::tuple<Value, Value, Value>
46 std::pmr::memory_resource * mr =
nullptr);
57std::tuple<Value, Value>
60 std::pmr::memory_resource * mr =
nullptr);
77std::tuple<Value, Value, Value>
80 std::pmr::memory_resource * mr =
nullptr);
94std::tuple<Value, Value, Value>
96 std::pmr::memory_resource *mr =
nullptr);
106std::tuple<Value, Value>
109 std::pmr::memory_resource * mr =
nullptr);
119std::tuple<Value, Value>
121 std::pmr::memory_resource * mr =
nullptr);
130 std::pmr::memory_resource * mr =
nullptr);
136std::tuple<Value, Value>
138 std::pmr::memory_resource * mr =
nullptr);
147 std::pmr::memory_resource * mr =
nullptr);
159 std::pmr::memory_resource *mr =
nullptr);
168std::tuple<Value, Value>
171 std::pmr::memory_resource * mr =
nullptr);
180std::tuple<Value, Value>
183 std::pmr::memory_resource * mr =
nullptr);
192 std::pmr::memory_resource * mr =
nullptr);
201 std::pmr::memory_resource * mr =
nullptr);
210 std::pmr::memory_resource * mr =
nullptr);
219 std::pmr::memory_resource * mr =
nullptr);
236std::tuple<Value, Value>
239 std::pmr::memory_resource * mr =
nullptr);
251std::tuple<Value, Value>
253 std::pmr::memory_resource *mr =
nullptr);
267std::tuple<Value, Value>
271 std::pmr::memory_resource * mr =
nullptr);
287std::tuple<Value, Value>
292 std::pmr::memory_resource * mr =
nullptr);
306 std::pmr::memory_resource * mr =
nullptr);
326std::tuple<Value, Value>
330 double fs = 2.0 * 3.14159265358979323846,
331 std::pmr::memory_resource * mr =
nullptr);
345std::tuple<Value, Value>
349 double fs = 2.0 * 3.14159265358979323846,
350 std::pmr::memory_resource * mr =
nullptr);
362 std::pmr::memory_resource * mr =
nullptr);
370 std::pmr::memory_resource * mr =
nullptr);
389std::tuple<Value, Value>
394 std::pmr::memory_resource * mr =
nullptr);
407std::tuple<Value, Value>
409 std::pmr::memory_resource *mr =
nullptr);
Core MATLAB-compatible multidimensional array and scalar value type.
Value lsf2poly(const Value &lsf, std::pmr::memory_resource *mr=nullptr)
Line-spectral frequencies → AR poly.
Value poly2lsf(const Value &a, std::pmr::memory_resource *mr=nullptr)
AR poly → line-spectral frequencies (radians).
std::tuple< Value, Value > rc2poly(const Value &k, double r0=1.0, std::pmr::memory_resource *mr=nullptr)
Reflection coefficients → AR poly (step-up recursion).
Value corrmtx(const Value &x, int m, std::pmr::memory_resource *mr=nullptr)
Generate the autocorrelation data matrix.
std::tuple< Value, Value, Value > levinson(const Value &r, int n=-1, std::pmr::memory_resource *mr=nullptr)
Levinson-Durbin recursion: solve a Hermitian Toeplitz system.
Value poly2ac(const Value &a, double e, std::pmr::memory_resource *mr=nullptr)
AR poly + prediction error → autocorrelation.
std::tuple< Value, Value, Value > arburg(const Value &x, int p, std::pmr::memory_resource *mr=nullptr)
Burg's AR(p) parameter estimation.
std::tuple< Value, Value > prony(const Value &h, int nb, int na, std::pmr::memory_resource *mr=nullptr)
Prony IIR identification from impulse response.
Value schurrc(const Value &R, std::pmr::memory_resource *mr=nullptr)
Schur reflection coefficients from autocorrelation.
Value rc2is(const Value &k, std::pmr::memory_resource *mr=nullptr)
Reflection coefficients → inverse-sine parameterisation.
std::tuple< Value, Value, Value > aryule(const Value &x, int p, std::pmr::memory_resource *mr=nullptr)
Yule-Walker AR(p) parameter estimation.
std::tuple< Value, Value > arcov(const Value &x, int p, std::pmr::memory_resource *mr=nullptr)
Covariance method AR estimation.
Value rc2lar(const Value &k, std::pmr::memory_resource *mr=nullptr)
Reflection coefficients → log-area-ratio.
std::tuple< Value, Value > rlevinson(const Value &a, double efinal, std::pmr::memory_resource *mr=nullptr)
Inverse Levinson recursion: recover autocorrelation from AR poly.
std::tuple< Value, Value > invfreqs(const Value &H, const Value &w, int nb, int na, std::pmr::memory_resource *mr=nullptr)
Fit analog filter to a frequency response (Levi equation-error LSQ).
std::tuple< Value, Value > ac2rc(const Value &R, std::pmr::memory_resource *mr=nullptr)
Autocorrelation → reflection coefficients.
std::tuple< Value, Value > stmcb(const Value &h, int nb, int na, int niter=5, std::pmr::memory_resource *mr=nullptr)
Steiglitz–McBride IIR identification ([b, a] = stmcb(h, nb, na, niter)).
std::tuple< Value, Value > armcov(const Value &x, int p, std::pmr::memory_resource *mr=nullptr)
Modified-covariance AR estimation.
std::tuple< Value, Value > invfreqz(const Value &H, const Value &w, int nb, int na, std::pmr::memory_resource *mr=nullptr)
Digital counterpart of invfreqs.
std::tuple< Value, Value > poly2rc(const Value &a, double efinal=0.0, std::pmr::memory_resource *mr=nullptr)
AR poly → reflection coefficients (step-down recursion).
Value is2rc(const Value &is, std::pmr::memory_resource *mr=nullptr)
Inverse-sine parameterisation → reflection coefficients.
std::tuple< Value, Value > lpc(const Value &x, int p, std::pmr::memory_resource *mr=nullptr)
Linear-prediction coefficients (aryule alias + sqrt-error gain).
Value rc2ac(const Value &k, double r0, std::pmr::memory_resource *mr=nullptr)
Reflection coefficients + r[0] → autocorrelation.
std::tuple< Value, Value > ac2poly(const Value &R, std::pmr::memory_resource *mr=nullptr)
Autocorrelation → AR poly (composes levinson).
std::tuple< Value, Value > peig(const Value &x, int p, int nfft=256, double fs=2.0 *3.14159265358979323846, std::pmr::memory_resource *mr=nullptr)
Eigenvector pseudospectrum ([P, F] = peig(x, p, nfft, fs)).
Value lar2rc(const Value &g, std::pmr::memory_resource *mr=nullptr)
Log-area-ratio → reflection coefficients.
std::tuple< Value, Value > pmusic(const Value &x, int p, int nfft=256, double fs=2.0 *3.14159265358979323846, std::pmr::memory_resource *mr=nullptr)
MUSIC pseudospectrum ([P, F] = pmusic(x, p, nfft, fs)).