package org.spin.gaitlib.filter;
public class LowPassFilter implements IFilter {
private float alpha;
public LowPassFilter(float dt, float rc) {
this(rc / (rc + dt));
}
public LowPassFilter(float alpha) {
this.alpha = alpha;
}
public float[] getFilteredValues(float[] input) {
float[] result = new float[input.length];
result[0] = input[0];
for (int i = 1; i <= input.length; i++) {
result[i] = alpha * input[i] + (1 - alpha) * result[i - 1];
}
return result;
}
public float getFilteredValue(float[] input) {
// TODO Auto-generated method stub
return 0;
}
public float getAlpha() {
return alpha;
}
public void setAlpha(float alpha) {
this.alpha = alpha;
}
public void setAlpha(float dt, float rc) {
setAlpha(rc / (rc + dt));
}
}