3 #include "core/filters_common.h" 4 #include "core/schroeder.h" 6 #include "utilities/aligned/vector.h" 17 double& operator[](
size_t i);
18 const double& operator[](
size_t i)
const;
24 util::aligned::vector<double> data;
35 double filter(
double x);
38 double get_index(
size_t i)
const;
48 template <
int modules>
56 double filter(
double x) {
57 for (
auto& i : averages) {
64 for (
auto& i : averages) {
69 const moving_average& get_averager()
const {
return averages.front(); }
72 std::array<moving_average, modules> averages;
81 double filter(
double x);
83 template <
typename It>
84 util::aligned::vector<float> filter(It begin, It end) {
85 util::aligned::vector<float> ret(begin, end);
86 std::for_each(std::begin(ret), std::end(ret), [
this](
auto& i) {
105 double filter(
double x);
107 template <
typename It>
108 util::aligned::vector<float> filter(It begin, It end) {
109 util::aligned::vector<float> ret(begin, end);
110 std::for_each(std::begin(ret), std::end(ret), [
this](
auto& i) {
132 template <
typename It>
133 void block_dc(It begin, It end,
double sr) {
134 auto hipass = make_series_biquads(
135 compute_hipass_butterworth_coefficients<1>(10, sr));
136 run_two_pass(hipass, begin, end);
Definition: dc_blocker.h:77
Definition: capsule_base.h:9
Definition: dc_blocker.h:30
Definition: dc_blocker.h:49
Definition: dc_blocker.h:12