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

◆ zero_crossing_rate_per_channel()

MAYAFLUX_API std::vector< double > MayaFlux::zero_crossing_rate_per_channel ( const std::vector< Kakshya::DataVariant > &  channels,
size_t  window_size = 0 
)

Calculate zero crossing rate per channel for multi-channel data.

Parameters
channelsVector of channel data
window_sizeAnalysis window size (0 = whole signal)
Returns
Vector of zero crossing rates, one per channel

Definition at line 428 of file Yantra.cpp.

429{
430 auto a = std::make_shared<Yantra::StandardEnergyAnalyzer>();
431 a->set_energy_method(Yantra::EnergyMethod::ZERO_CROSSING);
432 if (window_size > 0)
433 a->set_window_parameters(window_size, window_size / 2);
434 auto result = a->analyze_energy(channels);
435 std::vector<double> rates;
436
437 rates.reserve(result.channels.size());
438 for (const auto& ch : result.channels)
439 rates.push_back(ch.mean_energy);
440 return rates;
441}
size_t a

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