nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
windows.hpp
Go to the documentation of this file.
1
3// toolboxes/signal/include/nk/signal/windows/windows.hpp
4#pragma once
5
6#include <memory_resource>
7#include <nk/value/value.hpp>
8
9namespace nk::signal {
10
13
14
15// ─────────────────────────────────────────────────────────────────────
16// Window generators — every function returns an N×1 DOUBLE column.
17//
18// Shapes and values are bit-identical for the documented forms.
19// ─────────────────────────────────────────────────────────────────────
20
31Value hamming(size_t N, std::pmr::memory_resource *mr = nullptr);
32
41Value hann(size_t N, std::pmr::memory_resource *mr = nullptr);
42
51Value blackman(size_t N, std::pmr::memory_resource *mr = nullptr);
52
68Value kaiser(size_t N, double beta, std::pmr::memory_resource *mr = nullptr);
69
75Value rectwin(size_t N, std::pmr::memory_resource *mr = nullptr);
76
85Value bartlett(size_t N, std::pmr::memory_resource *mr = nullptr);
86
97Value triang(size_t N, std::pmr::memory_resource *mr = nullptr);
98
108Value tukeywin(size_t N, double r = 0.5,
109 std::pmr::memory_resource *mr = nullptr);
110
121Value flattopwin(size_t N, std::pmr::memory_resource *mr = nullptr);
122
134Value gausswin(size_t N, double alpha = 2.5,
135 std::pmr::memory_resource *mr = nullptr);
136
149Value chebwin(size_t N, double at = 100.0,
150 std::pmr::memory_resource *mr = nullptr);
151
160Value parzenwin(size_t N, std::pmr::memory_resource *mr = nullptr);
161
170Value nuttallwin(size_t N, std::pmr::memory_resource *mr = nullptr);
171
184Value taylorwin(size_t N, int nbar = 4, double sll = -30.0,
185 std::pmr::memory_resource *mr = nullptr);
186
195Value blackmanharris(size_t N, std::pmr::memory_resource *mr = nullptr);
196
204Value bohmanwin(size_t N, std::pmr::memory_resource *mr = nullptr);
205
214Value barthannwin(size_t N, std::pmr::memory_resource *mr = nullptr);
215
216
218} // namespace nk::signal
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value bohmanwin(size_t N, std::pmr::memory_resource *mr=nullptr)
Bohman window of length N — convolution of two half-cosine pulses.
Value kaiser(size_t N, double beta, std::pmr::memory_resource *mr=nullptr)
Kaiser window of length N with shape parameter β.
Value chebwin(size_t N, double at=100.0, std::pmr::memory_resource *mr=nullptr)
Dolph-Chebyshev window of length N — equiripple sidelobes at given attenuation.
Value blackmanharris(size_t N, std::pmr::memory_resource *mr=nullptr)
Blackman-Harris window of length N — 4-term, minimum-sidelobe.
Value hamming(size_t N, std::pmr::memory_resource *mr=nullptr)
Hamming window of length N.
Value nuttallwin(size_t N, std::pmr::memory_resource *mr=nullptr)
Nuttall window of length N — 4-term, continuous-first-derivative.
Value blackman(size_t N, std::pmr::memory_resource *mr=nullptr)
Blackman window of length N — classic 3-term cosine sum.
Value bartlett(size_t N, std::pmr::memory_resource *mr=nullptr)
Bartlett window of length N — triangular with zero endpoints.
Value flattopwin(size_t N, std::pmr::memory_resource *mr=nullptr)
Flat-top window of length N — 5-term cosine sum, optimised for amplitude accuracy (not frequency reso...
Value barthannwin(size_t N, std::pmr::memory_resource *mr=nullptr)
Modified Bartlett-Hann window of length N.
Value hann(size_t N, std::pmr::memory_resource *mr=nullptr)
Hann (Hanning) window of length N.
Value rectwin(size_t N, std::pmr::memory_resource *mr=nullptr)
Rectangular window of length N — all ones.
Value tukeywin(size_t N, double r=0.5, std::pmr::memory_resource *mr=nullptr)
Tukey (cosine-tapered) window of length N.
Value gausswin(size_t N, double alpha=2.5, std::pmr::memory_resource *mr=nullptr)
Gaussian window of length N.
Value parzenwin(size_t N, std::pmr::memory_resource *mr=nullptr)
Parzen (de la Vallée Poussin) window of length N — piecewise cubic.
Value triang(size_t N, std::pmr::memory_resource *mr=nullptr)
Triangular window of length N — non-zero endpoints variant of Bartlett.
Value taylorwin(size_t N, int nbar=4, double sll=-30.0, std::pmr::memory_resource *mr=nullptr)
Taylor window of length N — radar / antenna design.