Denoising by spectral substraction


Observations

$$ y = x + n $$ where

  • $x\in\mathbb{R}^N$ is the clean signal
  • $n\in\mathbb{R}^N$ is a stationnary noise with known (or estimated) power density spectrum $S_n(\nu)$
  • $y\in\mathbb{R}^N$ is the noisy observation

Denoising in the time-frequency domain

Taking the STFT of the equation, we have for all $\tau,\nu$: $Y(\tau,\nu) = X(\tau,\nu) + S_n(\nu)$. The goal is to estimate $X(\tau,\nu)$. The proposed estimators are:

Hard thresholding

$$ X(\tau,\nu) = \begin{cases}Y(\tau,\nu) &\ \mathrm{ if }\ |Y(\tau,\nu)| > \lambda |S_n(\nu)| \\ 0 &\ \mathrm{ if }\ |Y(\tau,\nu)| \leq \lambda |S_n(\nu)| \end{cases} $$

Spectral substraction

$$ X(\tau,\nu) = Y(\tau,\nu)\left( 1 - \frac{\lambda^2 |S_n(\nu)|^2}{|Y(\tau,\nu)|^2} \right)^+ $$ where $(x)^+ = \mathrm{max}(x,0)$

General Spectral substraction

$$ X(\tau,\nu) = \begin{cases} Y(\tau,\nu)\left( 1 - \frac{\lambda^\alpha |S_n(\nu)|^\alpha}{|Y(\tau,\nu)|^\alpha} \right)^{\beta} &\ \mathrm{ if }\ |Y(\tau,\nu)|^\alpha > \lambda^\alpha |S_n(\nu)|^\alpha \\ \gamma \frac{Y(\tau,\nu)}{|Y(\tau,\nu)|} |S_n(\nu)| &\ \mathrm{ if }\ |Y(\tau,\nu)|^\alpha \leq \lambda^\alpha |S_n(\nu)|^\alpha \end{cases} $$

where $\lambda,\alpha,\beta,\gamma> 0$, are some parameters. Usually, we chose $\alpha = 1\ \mathrm{ or }\ 2$, $\beta = \frac{1}{2}\ \mathrm{ or }\ 1$ and $\gamma « 1$.