I am attempting to effectively high-pass a signal sampled in real time at 10kHz, to remove frequency components <= 1 Hz with minimal distortion (due to phase/group delay) of the signal components >= 20Hz. An ideal filter would be one that gives me the results the filtfilt function does in MATLAB but in real time (it introduces no phase delay, but the signal over the entire time horizon of interest must be available, limiting it's use to offline scanrio). I have tried working with discrete time high-pass filter, but in the case if IIR filters there is too much distortion, while in the case of FIR the phase delays are too large and I find that the filtered signal "lags" way too much for it to be useful. I have also looked into methods for smoothing out the sampled signal, the idea being that I will then remove the smoothed out signal from my original to have only the higher frequency components intact. I haven't found anything that works well while being computationally inexpensive.
I am implementing this filter on an 80MHz micro-controller, which means that theoretically my computational limit is 8000 computations every sample period, but in reality, with other processes occurring on the controller, it is closer to ~500 computations.
If anybody is experienced with real time filter implementation that introduces low phase delays, please grant me some of your wisdom and point me in the right direction!
Edit, filter specs: in terms of filter specs, I would like 40dB attenuation <1Hz, and < 0.1dB ripple in the pass band, >20 Hz. I would like <0.1 rad phase deviation in the pass band.
Edit, signal type: the signal component that is <1Hz is highly predictable visually, but I've been having trouble applying tools such as machine learning based models to predict it. I don't think I have enough samples to make a robust model.
Edit, some additional thoughts. I believe the solution I am looking for is based on prediction/extrapolation. I don't think this problem can simply be solved by a well designed linear filter. Some online form of learning of the disturbance signal must be developed, and I am open to suggestions on this topic.