We now present an algorithm for denoising signals adaptively using libraries of orthonormal waveforms (such as wavelet packets and local trigonometric libraries). The method extracts from a signal a coherent part which is well represented by the given waveforms and a noisy or incoherent part which cannot be ``well compressed'' by the waveforms.