nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
spectrogram.hpp
Go to the documentation of this file.
1
3// toolboxes/signal/include/nk/signal/time_frequency/spectrogram.hpp
4//
5// Short-time Fourier transform. periodogram / pwelch (which collapse the
6// time axis) live in spectral_analysis/periodogram_pwelch.hpp.
7
8#pragma once
9
10#include <memory_resource>
11#include <nk/value/value.hpp>
12
13#include <tuple>
14
15namespace nk::signal {
16
19
20
43std::tuple<Value, Value, Value>
45 const Value & window,
46 size_t noverlap,
47 size_t nfft,
48 std::pmr::memory_resource * mr = nullptr);
49
72Value stft(const Value & x,
73 const Value & window,
74 std::size_t overlap,
75 std::size_t fftLength,
76 const std::string & range,
77 std::pmr::memory_resource * mr = nullptr);
78
97Value istft(const Value & S,
98 const Value & window,
99 std::size_t overlap,
100 std::size_t fftLength,
101 const std::string & range,
102 std::pmr::memory_resource * mr = nullptr);
103
121std::tuple<Value, Value, Value>
122iscola(const Value & window,
123 std::size_t noverlap,
124 const std::string & method,
125 std::pmr::memory_resource * mr = nullptr);
126
127
129} // namespace nk::signal
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value istft(const Value &S, const Value &window, std::size_t overlap, std::size_t fftLength, const std::string &range, std::pmr::memory_resource *mr=nullptr)
Inverse STFT via overlap-add.
Value stft(const Value &x, const Value &window, std::size_t overlap, std::size_t fftLength, const std::string &range, std::pmr::memory_resource *mr=nullptr)
Full two-sided / centred / one-sided STFT.
std::tuple< Value, Value, Value > spectrogram(const Value &x, const Value &window, size_t noverlap, size_t nfft, std::pmr::memory_resource *mr=nullptr)
Short-time Fourier transform with explicit (S, F, T) outputs.
std::tuple< Value, Value, Value > iscola(const Value &window, std::size_t noverlap, const std::string &method, std::pmr::memory_resource *mr=nullptr)
Constant OverLap-Add (COLA) compliance check (tf = iscola(window, noverlap[, method])).