MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ zero_crossing_rate() [2/2]

MAYAFLUX_API double MayaFlux::zero_crossing_rate ( const std::vector< double > &  data,
size_t  window_size = 0 
)

Calculate zero crossing rate for single-channel data.

Parameters
dataInput signal data
window_sizeAnalysis window size (0 = whole signal)
Returns
Zero crossing rate (crossings per sample)

Definition at line 408 of file Yantra.cpp.

409{
410 auto a = std::make_shared<Yantra::StandardEnergyAnalyzer>();
411 a->set_energy_method(Yantra::EnergyMethod::ZERO_CROSSING);
412 if (window_size > 0)
413 a->set_window_parameters(window_size, window_size / 2);
414 auto result = a->analyze_energy({ Kakshya::DataVariant(data) });
415 return result.channels.empty() ? 0.0 : result.channels[0].mean_energy;
416}
size_t a
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.
Definition NDData.hpp:76

References a, and MayaFlux::Yantra::ZERO_CROSSING.

Referenced by MayaFlux::Kinesis::Discrete::zero_crossing_rate().

+ Here is the caller graph for this function: