nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
signal/include/nk/signal/transforms/extras.hpp
Go to the documentation of this file.
1
3// toolboxes/signal/include/nk/signal/transforms/extras.hpp
4//
5// Transform extras (E2): dftmtx, bitrevorder, dst, idst, rceps, cceps, icceps.
6
7#pragma once
8
9#include <memory_resource>
10#include <nk/value/value.hpp>
11
12#include <tuple>
13#include <utility>
14
15namespace nk::signal {
16
19
20
32Value dftmtx(size_t N, std::pmr::memory_resource *mr = nullptr);
33
46 std::pmr::memory_resource * mr = nullptr);
47
59Value dst(const Value &x, std::pmr::memory_resource *mr = nullptr);
60
71Value idst(const Value &y, std::pmr::memory_resource *mr = nullptr);
72
83Value rceps(const Value &x, std::pmr::memory_resource *mr = nullptr);
84
97std::pair<Value, Value> rcepsMinPhase(const Value &x,
98 std::pmr::memory_resource *mr = nullptr);
99
113Value cceps(const Value &x, std::pmr::memory_resource *mr = nullptr,
114 double *ndOut = nullptr);
115
126Value icceps(const Value &c, std::pmr::memory_resource *mr = nullptr);
127
128
130} // namespace nk::signal
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value dst(const Value &x, std::pmr::memory_resource *mr=nullptr)
Type-II Discrete Sine Transform.
Value idst(const Value &y, std::pmr::memory_resource *mr=nullptr)
Inverse Type-II DST.
std::pair< Value, Value > rcepsMinPhase(const Value &x, std::pmr::memory_resource *mr=nullptr)
Real cepstrum and its minimum-phase reconstruction ([y, ym] = rceps(x)).
Value bitrevorder(const Value &x, std::pmr::memory_resource *mr=nullptr)
Re-order a sequence by bit-reversed indices.
Value dftmtx(size_t N, std::pmr::memory_resource *mr=nullptr)
N×N complex DFT matrix.
Value rceps(const Value &x, std::pmr::memory_resource *mr=nullptr)
Real cepstrum: real(ifft(log(abs(fft(x))))).
Value icceps(const Value &c, std::pmr::memory_resource *mr=nullptr)
Inverse complex cepstrum: real(ifft(exp(fft(c)))).
Value cceps(const Value &x, std::pmr::memory_resource *mr=nullptr, double *ndOut=nullptr)
Complex cepstrum: ifft(log(fft(x))) with phase unwrapping.