Signal denoising is crucial to condition monitoring of mechanical systems as fault characteristics may be hidden by strong noise in some cases. In this paper, we focus on the denoising of nonstationary vibration signals which contain multiple complex components. To this end, we introduce a time-frequency filter called envelope-tracking filter (ETF). The basic idea of the ETF is to characterize the envelope of a signal using Fourier basis functions and estimate the envelope by solving a least-squares problem. We show that the ETF is similar to the Vold–Kalman filter, but it has several promising advantages, i.e., easier to determine the bandwidth expression, more flexible to handle signals at different noise levels, and less sensitive to errors of instantaneous frequency (IF) estimations. Our denoising method includes two steps: 1) extract IFs of each nonstationary component by optimizing a spectrum concentration index, and 2) recover each component by using the ETF. Our method works very well in heavy noise and is effective for signals with overlapped components. Some examples including simulated and real-life vibration signals are offered to show the validity of the method.