10#include <memory_resource>
11#include <nk/value/value.hpp>
38 std::pmr::memory_resource *mr =
nullptr);
53 std::pmr::memory_resource *mr =
nullptr);
64 std::pmr::memory_resource *mr =
nullptr);
81 std::pmr::memory_resource *mr =
nullptr);
95 std::pmr::memory_resource *mr =
nullptr);
107 std::pmr::memory_resource *mr =
nullptr);
120 std::pmr::memory_resource *mr =
nullptr);
131std::tuple<Value, Value>
133 std::pmr::memory_resource *mr =
nullptr);
150 const std::string &in_type,
151 const std::string &out_type,
153 std::pmr::memory_resource *mr =
nullptr);
Core MATLAB-compatible multidimensional array and scalar value type.
Value convertSNR(const Value &snr_in, const std::string &in_type, const std::string &out_type, int bits_per_symbol, std::pmr::memory_resource *mr=nullptr)
Convert between Eb/No, Es/No, and SNR (snr_out = convertSNR(snr_in, in_type, out_type,...
Value bsc(::nk::ops::RngContext &rng, const Value &x, double p, std::pmr::memory_resource *mr=nullptr)
Binary symmetric channel — flip each bit with probability p (y = bsc(x, p)).
Value noisebw(const Value &num, const Value &den, int Nsamp, double fs, std::pmr::memory_resource *mr=nullptr)
Equivalent noise bandwidth of an LTI filter (bw = noisebw(num, den, Nsamp, fs)).
Value qfuncinv(const Value &p, std::pmr::memory_resource *mr=nullptr)
Inverse Q-function: Q⁻¹(p) = √2·erfc⁻¹(2p).
Value wgn(::nk::ops::RngContext &rng, int m, int n, double p, const std::string &type, bool complex_out, std::pmr::memory_resource *mr=nullptr)
Generate an m×n matrix of white Gaussian noise samples (y = wgn(m, n, p, type, complex)).
Value qfunc(const Value &x, std::pmr::memory_resource *mr=nullptr)
Gaussian Q-function: Q(x) = 0.5·erfc(x/√2).
Value berawgn(const Value &EbNo_dB, const std::string &mod, int M, std::pmr::memory_resource *mr=nullptr)
Analytical bit-error rate over AWGN (ber = berawgn(EbNo_dB, mod, M)).
Value awgn(::nk::ops::RngContext &rng, const Value &x, double snr_db, double sigpower_db, std::pmr::memory_resource *mr=nullptr)
Add white Gaussian noise so the resulting SNR is snr_db dB (y = awgn(x, snr_db, sigpower_db)).
std::tuple< Value, Value > berconfint(double numErrs, double numBits, double level, std::pmr::memory_resource *mr=nullptr)
Clopper–Pearson exact binomial confidence interval for a measured BER ([ber, ci] = berconfint(numErrs...
Value marcumq(const Value &a, const Value &b, int m, std::pmr::memory_resource *mr=nullptr)
Generalised Marcum Q-function (q = marcumq(a, b, m)).