Digital filter description:
The filter's input are sensor data and output will be provided to a PID controller.
Sampling rate: 64kHz
Noises spectrum: from DC to 10kHz
Filter target: to get DC component only and reduce noises as much as possible.
Characteristic of DC: it varies very slowly, say at 0.000001Hz.
More about the system
The system input (ref or reference is zero). And actually the goal of the controller is to maintain the output of the system at zero.
In this system, there are also disturbance and noises. The disturbance has the shape of roughly a ramp, however by nature more like random events at very low frequency
The controller is a simple PI controller. It strives to compensate the influence from disturbance while get rid of noises.
The noises are from sensors and the filter between controller and sensor is what I am looking for help about here.
My current way of filter design:
The data will go into a decimator for decimation firstly. The decimator is an 320 tap average filter, which average every 320 data and exports one averaged result. The results will be at 200Hz.
The averaged data will then further go into a 20 tap averaging decimator. The results will be at 10Hz.
At last, the data at 10Hz will go into an IIR or again, a moving average filter. The final result shall ranges from 1Hz to 0.2Hz.
My concerns: Insufficient desgin
The averaging decimator may not be sharp enough, since they are basically FIR with same coefficients of 1/320. Since the filters are not sharp enough, decimation(downsampling) may introduce high frequency noises mapping into the filtered results.
May not be bad
Since the several stages of decimation is basically averaging the signals. The results shall be DC component, since that is how DC is defined.
How to improve my current design?