Class expression_parallel_goertzel¶
class expression_parallel_goertzel<T, width> dsp¶
template <typename T, size_t width>
struct expression_parallel_goertzel : expression_traits_defaults { … } Parallel (multi-bin) Goertzel algorithm expression.
| T | Sample and result type (floating point). |
| width | Number of parallel resonators (must match the SIMD vector width used to construct the expression). |
| result | Array of width complex values (filled on destruction). |
| omega | SIMD vector of width angular frequencies [rad/sample]. |
Note
Results are only valid after the expression object has been destroyed.
variable dims ¶
constexpr static size_t dims = 1 Fully qualified name: kfr::expression_parallel_goertzel<T, width>::dims
Declared at dsp/goertzel.hpp:127
typedef value_type ¶
using value_type = T Fully qualified name: kfr::expression_parallel_goertzel<T, width>::value_type
Declared at dsp/goertzel.hpp:129
function get_shape(const expression_parallel_goertzel<T, width> &) ¶
constexpr static shape<1> get_shape(const expression_parallel_goertzel&) { … } Fully qualified name: kfr::expression_parallel_goertzel<T, width>::get_shape(const expression_parallel_goertzel<T, width> &)
Declared at dsp/goertzel.hpp:131
function get_shape() ¶
constexpr static shape<1> get_shape() { … } Fully qualified name: kfr::expression_parallel_goertzel<T, width>::get_shape()
Declared at dsp/goertzel.hpp:135
constructor expression_parallel_goertzel<T, width>(complex<T> *, vec<T, width>) ¶
Construct width parallel Goertzel resonators.
| result | Output array of width complex bin values (filled on destruction). |
| omega | SIMD vector of width angular frequencies [rad/sample]. |
Fully qualified name: kfr::expression_parallel_goertzel<T, width>::expression_parallel_goertzel<T, width>(complex<T> *, vec<T, width>)
Declared at dsp/goertzel.hpp:142
destructor ~expression_parallel_goertzel<T, width>() ¶
~expression_parallel_goertzel() Destructor: rotates the final filter states into the width complex DFT bin values and stores them in result .
Fully qualified name: kfr::expression_parallel_goertzel<T, width>::~expression_parallel_goertzel<T, width>()
Declared at dsp/goertzel.hpp:150
function set_elements(expression_parallel_goertzel<T, width> &, shape<1>, axis_params<VecAxis, N>, const std::type_identity_t<vec<T, N>> &) ¶
template <size_t N, index_t VecAxis>
friend KFR_INTRINSIC void set_elements(expression_parallel_goertzel& self, shape<1>,
axis_params<VecAxis, N>, const std::type_identity_t<vec<T, N>>& x) Internal ADL-provided implementation for expression_parallel_goertzel expressions.
Fully qualified name: kfr::expression_parallel_goertzel<T, width>::set_elements(expression_parallel_goertzel<T, width> &, shape<1>, axis_params<VecAxis, N>, const std::type_identity_t<vec<T, N>> &)
Declared at dsp/goertzel.hpp:164
variable result ¶
complex<T>* result Output array of
width complex bin values.
Fully qualified name: kfr::expression_parallel_goertzel<T, width>::result
Declared at dsp/goertzel.hpp:176
variable omega ¶
const vec<T, width> omega SIMD vector of target angular frequencies.
Fully qualified name: kfr::expression_parallel_goertzel<T, width>::omega
Declared at dsp/goertzel.hpp:177
variable coeff ¶
const vec<T, width> coeff Precomputed coefficients
2*cos(omega) .
Fully qualified name: kfr::expression_parallel_goertzel<T, width>::coeff
Declared at dsp/goertzel.hpp:178
variable q0 ¶
mutable vec<T, width> q0 Current filter outputs (working state).
Fully qualified name: kfr::expression_parallel_goertzel<T, width>::q0
Declared at dsp/goertzel.hpp:179
variable q1 ¶
mutable vec<T, width> q1 Previous output samples (working state).
Fully qualified name: kfr::expression_parallel_goertzel<T, width>::q1
Declared at dsp/goertzel.hpp:180
variable q2 ¶
mutable vec<T, width> q2 Output samples two steps back (working state).
Fully qualified name: kfr::expression_parallel_goertzel<T, width>::q2
Declared at dsp/goertzel.hpp:181
Fully qualified name: kfr::expression_parallel_goertzel<T, width>
Declared at dsp/goertzel.hpp:125