nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
signal_modeling.hpp File Reference
#include <memory_resource>
#include <nk/value/value.hpp>
#include <tuple>

Go to the source code of this file.

Functions

std::tuple< Value, Value, Value > nk::signal::levinson (const Value &r, int n=-1, std::pmr::memory_resource *mr=nullptr)
 Levinson-Durbin recursion: solve a Hermitian Toeplitz system.
std::tuple< Value, Value > nk::signal::rlevinson (const Value &a, double efinal, std::pmr::memory_resource *mr=nullptr)
 Inverse Levinson recursion: recover autocorrelation from AR poly.
std::tuple< Value, Value, Value > nk::signal::aryule (const Value &x, int p, std::pmr::memory_resource *mr=nullptr)
 Yule-Walker AR(p) parameter estimation.
std::tuple< Value, Value, Value > nk::signal::arburg (const Value &x, int p, std::pmr::memory_resource *mr=nullptr)
 Burg's AR(p) parameter estimation.
std::tuple< Value, Value > nk::signal::lpc (const Value &x, int p, std::pmr::memory_resource *mr=nullptr)
 Linear-prediction coefficients (aryule alias + sqrt-error gain).
std::tuple< Value, Value > nk::signal::ac2poly (const Value &R, std::pmr::memory_resource *mr=nullptr)
 Autocorrelation → AR poly (composes levinson).
Value nk::signal::poly2ac (const Value &a, double e, std::pmr::memory_resource *mr=nullptr)
 AR poly + prediction error → autocorrelation.
std::tuple< Value, Value > nk::signal::ac2rc (const Value &R, std::pmr::memory_resource *mr=nullptr)
 Autocorrelation → reflection coefficients.
Value nk::signal::schurrc (const Value &R, std::pmr::memory_resource *mr=nullptr)
 Schur reflection coefficients from autocorrelation.
Value nk::signal::rc2ac (const Value &k, double r0, std::pmr::memory_resource *mr=nullptr)
 Reflection coefficients + r[0] → autocorrelation.
std::tuple< Value, Value > nk::signal::poly2rc (const Value &a, double efinal=0.0, std::pmr::memory_resource *mr=nullptr)
 AR poly → reflection coefficients (step-down recursion).
std::tuple< Value, Value > nk::signal::rc2poly (const Value &k, double r0=1.0, std::pmr::memory_resource *mr=nullptr)
 Reflection coefficients → AR poly (step-up recursion).
Value nk::signal::is2rc (const Value &is, std::pmr::memory_resource *mr=nullptr)
 Inverse-sine parameterisation → reflection coefficients.
Value nk::signal::rc2is (const Value &k, std::pmr::memory_resource *mr=nullptr)
 Reflection coefficients → inverse-sine parameterisation.
Value nk::signal::lar2rc (const Value &g, std::pmr::memory_resource *mr=nullptr)
 Log-area-ratio → reflection coefficients.
Value nk::signal::rc2lar (const Value &k, std::pmr::memory_resource *mr=nullptr)
 Reflection coefficients → log-area-ratio.
std::tuple< Value, Value > nk::signal::arcov (const Value &x, int p, std::pmr::memory_resource *mr=nullptr)
 Covariance method AR estimation.
std::tuple< Value, Value > nk::signal::armcov (const Value &x, int p, std::pmr::memory_resource *mr=nullptr)
 Modified-covariance AR estimation.
std::tuple< Value, Value > nk::signal::prony (const Value &h, int nb, int na, std::pmr::memory_resource *mr=nullptr)
 Prony IIR identification from impulse response.
std::tuple< Value, Value > nk::signal::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)).
Value nk::signal::corrmtx (const Value &x, int m, std::pmr::memory_resource *mr=nullptr)
 Generate the autocorrelation data matrix.
std::tuple< Value, Value > nk::signal::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)).
std::tuple< Value, Value > nk::signal::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 nk::signal::poly2lsf (const Value &a, std::pmr::memory_resource *mr=nullptr)
 AR poly → line-spectral frequencies (radians).
Value nk::signal::lsf2poly (const Value &lsf, std::pmr::memory_resource *mr=nullptr)
 Line-spectral frequencies → AR poly.
std::tuple< Value, Value > nk::signal::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 > nk::signal::invfreqz (const Value &H, const Value &w, int nb, int na, std::pmr::memory_resource *mr=nullptr)
 Digital counterpart of invfreqs.