story
I see that you mention an adaptive filter, and that might be a good solution, however, you are limited by CPU power of the system and other constraints (like having to work continuously)
Bonus points if you tell me what are the poles and zeros of that system to avoid feedback.