+std::vector<float> do_rc_filter(const std::vector<float>& pcm, float freq, int sample_rate)
+{
+ std::vector<float> filtered_pcm;
+ filtered_pcm.resize(pcm.size());
+ Filter filter = Filter::hpf(M_PI * freq / sample_rate);
+ for (unsigned i = 0; i < pcm.size(); ++i) {
+ filtered_pcm[i] = filter.update(pcm[i]);
+ }
+
+ if (output_filtered) {
+ FILE *fp = fopen("filtered.raw", "wb");
+ fwrite(filtered_pcm.data(), filtered_pcm.size() * sizeof(filtered_pcm[0]), 1, fp);
+ fclose(fp);
+ }
+
+ return filtered_pcm;
+}
+