nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
fft.hpp
Go to the documentation of this file.
1
3// toolboxes/signal/include/nk/signal/transforms/fft.hpp
4#pragma once
5
6#include <memory_resource>
7#include <nk/value/span.hpp>
8#include <nk/value/value.hpp>
9
10namespace nk::signal {
11
14
15
49Value fft(const Value & x,
50 int n = -1,
51 int dim = 0,
52 std::pmr::memory_resource * mr = nullptr);
53
66Value ifft(const Value & X,
67 int n = -1,
68 int dim = 0,
69 std::pmr::memory_resource * mr = nullptr);
70
87 int n = -1,
88 int dim = 0,
89 std::pmr::memory_resource * mr = nullptr);
90
103Value fft2(const Value & X,
104 int m = -1,
105 int n = -1,
106 std::pmr::memory_resource * mr = nullptr);
107
119Value ifft2(const Value &X, int m = -1, int n = -1,
120 std::pmr::memory_resource *mr = nullptr);
121
132Value ifft2Symmetric(const Value &X, std::pmr::memory_resource *mr = nullptr);
133
151Value fftn(const Value & X,
153 std::pmr::memory_resource *mr = nullptr);
154
166Value ifftn(const Value & X,
168 std::pmr::memory_resource *mr = nullptr);
169
203Value czt(const Value & x,
204 int m,
205 Complex w,
206 Complex a,
207 std::pmr::memory_resource * mr = nullptr);
208
223 int n,
224 int dim = 0,
225 std::pmr::memory_resource * mr = nullptr);
226
227
229} // namespace nk::signal
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value ifft2(const Value &X, int m=-1, int n=-1, std::pmr::memory_resource *mr=nullptr)
2-D inverse FFT (Y = ifft2(X, m, n)).
Value czt(const Value &x, int m, Complex w, Complex a, std::pmr::memory_resource *mr=nullptr)
Chirp Z-transform (Bluestein).
Value fft2(const Value &X, int m=-1, int n=-1, std::pmr::memory_resource *mr=nullptr)
2-D forward FFT.
Value ifft(const Value &X, int n=-1, int dim=0, std::pmr::memory_resource *mr=nullptr)
1-D inverse discrete Fourier transform along a given dimension.
Value interpft(const Value &x, int n, int dim=0, std::pmr::memory_resource *mr=nullptr)
FFT-based band-limited interpolation of x to n equispaced samples.
Value ifftn(const Value &X, Span< const std::size_t > sz={}, std::pmr::memory_resource *mr=nullptr)
N-D inverse FFT (Y = ifftn(X, sz)).
Value fft(const Value &x, int n=-1, int dim=0, std::pmr::memory_resource *mr=nullptr)
1-D discrete Fourier transform along a given dimension.
Value ifftSymmetric(const Value &X, int n=-1, int dim=0, std::pmr::memory_resource *mr=nullptr)
Inverse DFT with conjugate-symmetric input (MATLAB's ifft(X,..., 'symmetric')).
Value ifft2Symmetric(const Value &X, std::pmr::memory_resource *mr=nullptr)
2-D inverse FFT with conjugate-symmetric input (MATLAB's ifft2(X,'symmetric')).
Value fftn(const Value &X, Span< const std::size_t > sz={}, std::pmr::memory_resource *mr=nullptr)
N-D forward FFT.