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

Go to the source code of this file.

Enumerations

enum class  nk::signal::FilterType { FilterType::Lowpass , FilterType::Highpass , FilterType::Bandpass , FilterType::Bandstop }
 Filter response type for IIR designs. More...

Functions

std::tuple< Value, Value > nk::signal::cheby1 (int N, double Rp, const Value &Wn, FilterType ftype=FilterType::Lowpass, bool analog=false, std::pmr::memory_resource *mr=nullptr)
 Chebyshev type-I IIR filter design.
std::tuple< Value, Value > nk::signal::cheby2 (int N, double Rs, const Value &Wn, FilterType ftype=FilterType::Lowpass, bool analog=false, std::pmr::memory_resource *mr=nullptr)
 Chebyshev type-II (inverse Chebyshev) IIR filter design.
std::tuple< Value, Value > nk::signal::besself (int N, const Value &Wn, FilterType ftype=FilterType::Lowpass, bool analog=false, std::pmr::memory_resource *mr=nullptr)
 Bessel-Thompson IIR filter design.
std::tuple< Value, Value > nk::signal::butter (int N, const Value &Wn, FilterType ftype=FilterType::Lowpass, bool analog=false, std::pmr::memory_resource *mr=nullptr)
 Butterworth IIR filter — maximally flat passband, shared pipeline with cheby1/besself.
std::tuple< Value, Value > nk::signal::ellip (int N, double Rp, double Rs, const Value &Wn, FilterType ftype=FilterType::Lowpass, bool analog=false, std::pmr::memory_resource *mr=nullptr)
 Elliptic (Cauer) IIR filter design.
std::tuple< int, Value > nk::signal::buttord (const Value &Wp, const Value &Ws, double Rp, double Rs, bool analog=false, std::pmr::memory_resource *mr=nullptr)
 Butterworth filter order estimator.
std::tuple< int, Value > nk::signal::cheb1ord (const Value &Wp, const Value &Ws, double Rp, double Rs, bool analog=false, std::pmr::memory_resource *mr=nullptr)
 Chebyshev type-I order estimator ([N, Wn] = cheb1ord(Wp, Ws, Rp, Rs, analog)).
std::tuple< int, Value > nk::signal::cheb2ord (const Value &Wp, const Value &Ws, double Rp, double Rs, bool analog=false, std::pmr::memory_resource *mr=nullptr)
 Chebyshev type-II order estimator ([N, Wn] = cheb2ord(Wp, Ws, Rp, Rs, analog)).
std::tuple< int, Value > nk::signal::ellipord (const Value &Wp, const Value &Ws, double Rp, double Rs, bool analog=false, std::pmr::memory_resource *mr=nullptr)
 Elliptic (Cauer) order estimator ([N, Wn] = ellipord(Wp, Ws, Rp, Rs, analog)).
std::tuple< int, Value, Value, Value > nk::signal::firpmord (const Value &F, const Value &A, const Value &dev, double fs=2.0, std::pmr::memory_resource *mr=nullptr)
 Parks-McClellan FIR order estimator.
std::tuple< int, Value, double, std::string > nk::signal::kaiserord (const Value &F, const Value &A, const Value &dev, double fs=2.0, std::pmr::memory_resource *mr=nullptr)
 Kaiser-window FIR order estimator.