Control Library by altb
Dependents: My_Libraries IndNav_QK3_T265
Diff: IIR_filter.cpp
- Revision:
- 14:9184aa9fdac7
- Parent:
- 0:d49418189c5c
- Child:
- 15:c70cad2f4e64
--- a/IIR_filter.cpp Mon Oct 21 17:14:57 2019 +0000 +++ b/IIR_filter.cpp Mon Oct 28 07:53:02 2019 +0000 @@ -60,6 +60,29 @@ this->K = (double)K; } +void IIR_filter::setup(float T, float Ts, float K){ + + // filter orders + nb = 1; // Filter Order + na = 1; // Filter Order + + // filter coefficients + B = (double*)malloc((nb+1)*sizeof(double)); + A = (double*)malloc(na*sizeof(double)); + B[0] = (double)Ts/((double)Ts + 2.0*(double)T); + B[1] = B[0]; + A[0] = ((double)Ts - 2.0*(double)T)/((double)Ts + 2.0*(double)T); + + // signal arrays + uk = (double*)malloc((nb+1)*sizeof(double)); + yk = (double*)malloc(na*sizeof(double)); + uk[0]= uk[1] = 0.0; + yk[0] = 0.0; + + // dc-gain + this->K = (double)K; +} + // G(s) = K*w0^2/(s^2 + 2*D*w0*s + w0^2) IIR_filter::IIR_filter(float w0, float D, float Ts, float K){