aboutsummaryrefslogtreecommitdiffstats
path: root/src/libfilter/fir_filter.h
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2020-02-27 18:47:54 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2020-12-21 08:38:44 +0100
commit5070bc70bd6308926e17eee78268da56ff8d7dd7 (patch)
treec5c90862e649f50f790d3739a460e5cadd76a786 /src/libfilter/fir_filter.h
parent55a5a4ea2b9060ef9488d61f48e87e50c03d929f (diff)
Added FIR filter to libfilter
Diffstat (limited to 'src/libfilter/fir_filter.h')
-rw-r--r--src/libfilter/fir_filter.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libfilter/fir_filter.h b/src/libfilter/fir_filter.h
new file mode 100644
index 0000000..7d94091
--- /dev/null
+++ b/src/libfilter/fir_filter.h
@@ -0,0 +1,21 @@
+#ifndef _FIR_FILTER_H
+#define _FIR_FILTER_H
+
+typedef struct fir_filter {
+ int ntaps;
+ int delay;
+ double *taps;
+ double *buffer;
+ int buffer_pos;
+} fir_filter_t;
+
+fir_filter_t *fir_lowpass_init(double samplerate, double cutoff, double transition_bandwidth);
+fir_filter_t *fir_highpass_init(double samplerate, double cutoff, double transition_bandwidth);
+fir_filter_t *fir_allpass_init(double samplerate, double transition_bandwidth);
+fir_filter_t *fir_twopass_init(double samplerate, double cutoff_low, double cutoff_high, double transition_bandwidth);
+void fir_exit(fir_filter_t *fir);
+void fir_process(fir_filter_t *fir, sample_t *samples, int num);
+int fir_get_delay(fir_filter_t *fir);
+
+#endif /* _FIR_FILTER_H */
+