A state-space approach to adaptive filtering