22 #ifndef EDSP_WINDOWING_HPP 23 #define EDSP_WINDOWING_HPP 37 namespace edsp {
namespace windowing {
58 template <WindowType Type>
59 struct _build_window {};
62 struct _build_window<WindowType::
Bartlett> {
63 template <
typename OutputIt>
64 constexpr
void operator()(OutputIt first, OutputIt last) {
70 struct _build_window<WindowType::
Blackman> {
71 template <
typename OutputIt>
72 constexpr
void operator()(OutputIt first, OutputIt last) {
79 template <
typename OutputIt>
80 constexpr
void operator()(OutputIt first, OutputIt last) {
87 template <
typename OutputIt>
88 constexpr
void operator()(OutputIt first, OutputIt last) {
94 struct _build_window<WindowType::
Boxcar> {
95 template <
typename OutputIt>
96 constexpr
void operator()(OutputIt first, OutputIt last) {
102 struct _build_window<WindowType::
FlatTop> {
103 template <
typename OutputIt>
104 constexpr
void operator()(OutputIt first, OutputIt last) {
110 struct _build_window<WindowType::
Hamming> {
111 template <
typename OutputIt>
112 constexpr
void operator()(OutputIt first, OutputIt last) {
118 struct _build_window<WindowType::
Hanning> {
119 template <
typename OutputIt>
120 constexpr
void operator()(OutputIt first, OutputIt last) {
127 template <
typename OutputIt>
128 constexpr
void operator()(OutputIt first, OutputIt last) {
134 struct _build_window<WindowType::
Triangular> {
135 template <
typename OutputIt>
136 constexpr
void operator()(OutputIt first, OutputIt last) {
142 struct _build_window<WindowType::Welch> {
143 template <
typename OutputIt>
144 constexpr
void operator()(OutputIt first, OutputIt last) {
156 template <WindowType Type,
typename OutputIt>
158 return internal::_build_window<Type>{}(first, last);
163 #endif // EDSP_WINDOWING_HPP
constexpr void blackman_harris(OutputIt first, OutputIt last)
Computes a Blackman-Harris window of length N and stores the result in the range, beginning at d_firs...
Definition: blackman_harris.hpp:46
constexpr void flattop(OutputIt first, OutputIt last)
Computes a Flat top window of length N and stores the result in the range, beginning at d_first...
Definition: flat_top.hpp:46
constexpr void hanning(OutputIt first, OutputIt last)
Computes a Hann window of length N and stores the result in the range, beginning at d_first...
Definition: hanning.hpp:46
constexpr void boxcar(OutputIt first, OutputIt last)
Computes a boxcar (rectangular) window of length N and stores the result in the range, beginning at d_first.
Definition: boxcar.hpp:43
constexpr void blackman_nutall(OutputIt first, OutputIt last)
Computes a Blackman-Nuttall window of length N and stores the result in the range, beginning at d_first.
Definition: blackman_nuttall.hpp:45
constexpr void triangular(OutputIt first, OutputIt last)
Computes a triangular window of length N and stores the result in the range, beginning at d_first...
Definition: triangular.hpp:44
constexpr void rectangular(OutputIt first, OutputIt last)
Computes a rectangular window of length N and stores the result in the range, beginning at d_first...
Definition: rectangular.hpp:44
constexpr void make_window(OutputIt first, OutputIt last)
Computes a window of the given type and length N and stores the result in the range, beginning at d_first.
Definition: windowing.hpp:157
constexpr void welch(OutputIt first, OutputIt last)
Computes a Welch window of length N and stores the result in the range, beginning at d_first...
Definition: welch.hpp:44
WindowType
The WindowType enum represents the type of availables windows.
Definition: windowing.hpp:42
constexpr void hamming(OutputIt first, OutputIt last)
Computes a Hamming window of length N and stores the result in the range, beginning at d_first...
Definition: hamming.hpp:47
constexpr void bartlett(OutputIt first, OutputIt last)
Computes a Bartlett window of length N and stores the result in the range, beginning at d_first...
Definition: bartlett.hpp:36
constexpr void blackman(OutputIt first, OutputIt last)
Computes a Blackman window of length N and stores the result in the range, beginning at d_first...
Definition: blackman.hpp:47
Definition: amplifier.hpp:29