I have an application in which I need to remove DC components from a sampled signal in real time (basically the same constraints of ECG, but it has nothing to do with the brain). My measured signal in in the single µV range and the undesired offset wanders around and can be as high as tens of mV.
In this application, fast electrical stimulation is introduced which can reach hundreds of volts and can introduce a measurement artifact of nearly a volt. This stimulus is basically an impulse from the point of view of the processing.
Currently I am using a 200Hz 1st order highpass, as this has an acceptable artifact (i.e., impulse response) after the stimulus. Higher orders are not needed, and these are undesirable as it would make the artifact worse.
My problem is that the actual application will require filters to go down to 1Hz or even lower (in some cases we use 0.05Hz, as this is above the frequency content of the "wandering"). A filter at these frequencies would have an unacceptably long impulse response.
Are there any other techniques that would remove the DC-wandering without having the impulse response artifact problem?
The way this problem is usually handled involves knowledge of the location and duration of the disturbance (whose description I simplified for this question). This enters the category of evoqued response and involves some non-linear processing. Some of the alternatives I have tried:
- Blanking the interference before it hits the filter. This requires precise synchronization that is not always available.
- Remove the real-time aspect and process the data non-causally. Long data records are still required due to filter transients, initial conditions are critical (and, of course it is not real time).
- Model the transients and remove them with data fits. Precise synchronization is no longer needed, but this might introducers own artifacts.