diff --git a/app/src/main/java/xdsopl/robot36/Filter.java b/app/src/main/java/xdsopl/robot36/Filter.java new file mode 100644 index 0000000..9027534 --- /dev/null +++ b/app/src/main/java/xdsopl/robot36/Filter.java @@ -0,0 +1,22 @@ +/* +FIR Filter + +Copyright 2024 Ahmet Inan +*/ + +package xdsopl.robot36; + +public final class Filter { + public static double sinc(double x) { + if (x == 0) + return 1; + x *= Math.PI; + return Math.sin(x) / x; + } + + public static double lowPass(double cutoff, int n, int N) { + double f = 2 * cutoff; + double x = n - (N - 1) / 2.0; + return f * sinc(f * x); + } +}