nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
periodogram_pwelch.hpp
Go to the documentation of this file.
1
3// toolboxes/signal/include/nk/signal/spectral_analysis/periodogram_pwelch.hpp
4//
5// Power spectrum estimation: periodogram + Welch's method.
6// spectrogram (the time-frequency variant of pwelch that retains every
7// segment) lives in time_frequency/spectrogram.hpp.
8
9#pragma once
10
11#include <memory_resource>
12#include <nk/value/value.hpp>
13
14#include <tuple>
15
16namespace nk::signal {
17
20
21
40std::tuple<Value, Value>
42 const Value & window,
43 size_t nfft,
44 double fs = 2.0 * 3.14159265358979323846,
45 std::pmr::memory_resource * mr = nullptr);
46
71 double confidenceLevel,
72 bool realInput,
73 bool nfftEven,
74 std::pmr::memory_resource * mr = nullptr);
75
91std::tuple<Value, Value>
92pwelch(const Value & x,
93 const Value & window,
94 size_t noverlap,
95 size_t nfft,
96 double fs = 2.0 * 3.14159265358979323846,
97 std::pmr::memory_resource * mr = nullptr);
98
115std::tuple<Value, Value>
116cpsd(const Value & x,
117 const Value & y,
118 const Value & window,
119 size_t noverlap,
120 size_t nfft,
121 double fs = 2.0 * 3.14159265358979323846,
122 std::pmr::memory_resource * mr = nullptr);
123
140std::tuple<Value, Value>
141mscohere(const Value & x,
142 const Value & y,
143 const Value & window,
144 size_t noverlap,
145 size_t nfft,
146 double fs = 2.0 * 3.14159265358979323846,
147 std::pmr::memory_resource * mr = nullptr);
148
164std::tuple<Value, Value>
166 const Value & y,
167 const Value & window,
168 size_t noverlap,
169 size_t nfft,
170 double fs = 2.0 * 3.14159265358979323846,
171 std::pmr::memory_resource * mr = nullptr);
172
187std::tuple<Value, Value>
188pyulear(const Value & x,
189 int p,
190 size_t nfft,
191 std::pmr::memory_resource * mr = nullptr);
192
205std::tuple<Value, Value>
206pburg(const Value & x,
207 int p,
208 size_t nfft,
209 std::pmr::memory_resource * mr = nullptr);
210
211// `aryule` and `lpc` live in toolboxes/signal's signal_modeling header.
212
213
215} // namespace nk::signal
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value periodogramConf(const Value &Pxx, double confidenceLevel, bool realInput, bool nfftEven, std::pmr::memory_resource *mr=nullptr)
Chi-square confidence interval for a periodogram PSD estimate.
std::tuple< Value, Value > cpsd(const Value &x, const Value &y, const Value &window, size_t noverlap, size_t nfft, double fs=2.0 *3.14159265358979323846, std::pmr::memory_resource *mr=nullptr)
Cross-PSD via Welch's method.
std::tuple< Value, Value > pwelch(const Value &x, const Value &window, size_t noverlap, size_t nfft, double fs=2.0 *3.14159265358979323846, std::pmr::memory_resource *mr=nullptr)
Welch's averaged, modified periodogram PSD estimate.
std::tuple< Value, Value > mscohere(const Value &x, const Value &y, const Value &window, size_t noverlap, size_t nfft, double fs=2.0 *3.14159265358979323846, std::pmr::memory_resource *mr=nullptr)
Magnitude-squared coherence via Welch's method.
std::tuple< Value, Value > pburg(const Value &x, int p, size_t nfft, std::pmr::memory_resource *mr=nullptr)
Burg's AR PSD estimate ([Pxx, F] = pburg(x, p, nfft)).
std::tuple< Value, Value > periodogram(const Value &x, const Value &window, size_t nfft, double fs=2.0 *3.14159265358979323846, std::pmr::memory_resource *mr=nullptr)
Single-segment periodogram PSD estimate.
std::tuple< Value, Value > tfestimate(const Value &x, const Value &y, const Value &window, size_t noverlap, size_t nfft, double fs=2.0 *3.14159265358979323846, std::pmr::memory_resource *mr=nullptr)
Transfer-function estimate via Welch's method.
std::tuple< Value, Value > pyulear(const Value &x, int p, size_t nfft, std::pmr::memory_resource *mr=nullptr)
Yule-Walker autoregressive PSD estimate.