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

◆ overlapping_windows()

std::vector< double > MayaFlux::Kinesis::Discrete::overlapping_windows ( std::span< const double >  data,
uint32_t  window_size,
double  overlap 
)

Extract overlapping windows as a flat concatenated vector.

Parameters
dataSource span
window_sizeSamples per window
overlapOverlap ratio in [0, 1)
Returns
Concatenated window data; empty if window_size == 0 or overlap >= 1

Definition at line 83 of file Extract.cpp.

87{
88 if (window_size == 0 || overlap < 0.0 || overlap >= 1.0 || data.size() < window_size)
89 return {};
90
91 const auto hop = std::max(1U, static_cast<uint32_t>(window_size * (1.0 - overlap)));
92 std::vector<double> out;
93 out.reserve(((data.size() - window_size) / hop + 1) * window_size);
94
95 for (size_t start = 0; start + window_size <= data.size(); start += hop)
96 out.insert(out.end(), data.begin() + start, data.begin() + start + window_size);
97
98 return out;
99}
Eigen::Index overlap

References overlap.

Referenced by MayaFlux::Yantra::extract_overlapping_windows().

+ Here is the caller graph for this function: