feat: Resampler: Normalizes incoming Android sensor sampling rate

This commit is contained in:
2026-05-19 21:57:27 +02:00
parent d08495a451
commit d4e0241590
7 changed files with 302 additions and 0 deletions

View File

@@ -6,6 +6,7 @@
#include <stdexcept>
#include <algorithm>
#include <iostream>
#include <numeric>
namespace pd_signal {
@@ -141,6 +142,25 @@ void mean(std::vector<double> &out, std::deque<std::vector<double> >& m) {
mean_tpl(out, m);
}
double mean(const std::vector<double> &in) {
if (in.empty()) {
throw std::invalid_argument("mean: input vector is empty");
}
double sum = std::accumulate(in.begin(), in.end(), 0.0);
return sum / static_cast<double>(in.size());
}
void diff(std::vector<double>& out, const std::vector<double>& in) {
if (in.size() < 2) {
out.clear();
return;
}
out.resize(in.size() - 1);
for (std::size_t i = 1; i < in.size(); ++i) {
out[i - 1] = in[i] - in[i - 1];
}
}
// Convolution of two polynomials in ascending power order.
void polymul(std::vector<cplx>& out,
const std::vector<cplx>& p, const std::vector<cplx>& q) {