Denoise using wavelet transform

213 Views Asked by At

My mathematical class task is to de-noise a function using wavelet transform. I am to select a function $f(x)$ and noise function with zero-mean $n(x)$. I am to add noise like this: $$f_{noise}(x) = f(x) + \epsilon n(x)$$ The thing is, I should perform de-noising process not just by using thresholding or a similar technique, but taking into account the available information about the noise function. If I were to do de-noising using Foruier transform, I would null frequencies corresponding to noise function, but wavelets are different since detailing coefficients aren't actually frequencies, so I fail to come up with a solution. So, my question is: how to denoise a function with wavelet transform relying on the fact that $n(x)$ is known?

1

There are 1 best solutions below

2
On

I assume the signal is being sampled on a discrete set $\{ x_i \}$, say evenly spaced on $[0,1]$. Fix a model space $X$ for the signal $f$, e.g. Sobolev, Besov, etc.

Typically, one would perform a discrete wavelet transform (where the filter is given by some chosen wavelet basis for $X$) and threshold the wavelet coefficients using some criterion involving $\epsilon$. For example, hard thresholding means setting any wavelet coefficients $ < \epsilon$ to $0$. Then you invert the thresholded coefficients. This gives the estimate for $f$.

The mathematical and statistical justification of this procedure lies in the fact that

  1. Wavelets can describe signals parsimoniously.
  2. Wavelets form an unconditional basis for $X$; so thresholding preserves smoothness.