14

L1 norm minimization (compressed sensing) can do a relative better job than conventional Fourier denoising in terms of preserving edges. The procedure is to minimize an objective function $$ |x-y|^2 + b|f(y)| $$ where $x$ is the noisy signal, $y$ is the denoised signal, $b$ is the regularziation parameter, and $|f(y)|$ is some L1 norm penalty. ...


12

Intuition: The intuition is this: Your noise is some event or events that are rare, and that when compared to other events, look like outliers that shouldn't really be there. For example, if you are measuring the speeds of every car on the highway as they pass by you and plot them, you will see that they are usually in the range of say, $50$ mph to $70$ ...


11

There is another Wikipedia entry on Wiener filtering more applicable to image processing. To summarize (and convert to 2D), given a system: $$ y(n,m) = h(n,m) * x(n,m) + v(n,m) $$ where $*$ denotes convolution, $x$ is the (unknown) true image, $h$ is the impulse response of a linear, time-invariant filter, $v$ is additive unknown noise independent of $x$...


7

Use bilateral filter or anisotropic diffusion first. The effect of anisotropic diffusion is as the following: . The MATLAB code can be found here. Here is its effect on your image: Finally, non-local means is a also a good way to get rid of the noise. You might also want to take a look into that. I warn you though, it is slow.


7

Maximum likelihood (ML) estimator Here will be derived a maximum-likelihood estimator of the power of the clean signal, but it doesn't seem to be improving things in terms of root mean square error, for any SNR, compared to spectral power subtraction. Introduction Let's introduce the normalized clean amplitude $a$ and normalized noisy magnitude $m$ ...


6

You can consider anisotropic diffusion. There are many methods based on this technique. Generally spoken, it is for images. It is an adaptive denoising method which aims to smooth non-edge parts of an image, and preserve edges. Also, for Total variation minimization, you can use this tutorial. Authors provide MATLAB code also. They recognize the problem as ...


6

Chaohuang has a good answer, but I will also add that one other method that you can use would be via the Haar Wavelet Transform, followed by wavelet co-efficient shrinkage, and an Inverse Haar Transform back to the time-domain. The Haar wavelet transform decomposes your signal into co-efficients of square and difference functions, albeit at different ...


6

Boyd has A Matlab Solver for Large-Scale ℓ1-Regularized Least Squares Problems. The problem formulation in there is slightly different, but the method can be applied for the problem. Classical majorization-minimization approach also works well. This corresponds to iteratively perform soft-thresholding (for TV, clipping). The solutions can be seen from the ...


6

The fact that you are plotting the FFT of the whole audio clip makes me think that you are looking at the wrong class of solutions. From the waveforms of signal A and B, it is clear that your noise and signal are not stationary. If you want to use a frequency-domain noise reduction technique, this should be done, in your case, on shorter overlapping windows ...


6

Assuming independent random variables with normal distributions, the probability that a value will fall beyond, say, 2 standard deviations will be about 0.01. If you have a median filter of width 3, that triplet must contain two outliers on the same side of the mean in order for an outlier to come through. This event has a probability of $2 \cdot 0.005^2 =$ ...


6

Well, I would say the assumption that your noise is Gaussian is ill fitting. If the noise is due to machine interference, it probably has some tonal characteristics. Tones of the same frequency can reinforce or cancel each other out when added. To get a better idea of what might be going on, you should: 1) Make a histogram of the noise 2) Take an FFT of ...


5

The trick inside the paper is the following: What you want to compute is $\sum_{i \in W} |I(x+i)-I(y+i)|^2$, where $I$ is an image, $x$ and $y$ two noisy pixels and $i$ is a 2D offset used to define a patch. Expanding the expression yields: $\sum_i I^2(x+i) + \sum_i I^2(y+i) - 2 \sum_i I(x+i)I(y+i) = A + B - 2C$. $A$ and $B$ are computed using a squared ...


5

What you are looking for is information on empirical Weiner filtering [1,2]. The BM3D folks use the Weiner filter to optimize the parameters of the first step of denoising, specifically to choose the threshold at which to eliminate small coefficients of the their 3D transform. [1] Improved Wavelet Denoising via Empirical Wiener Filtering [2] http://dune....


5

You want a method that removes noise while preserving edges. This cannot be achieved well by linear filtering, as you noticed yourself. I know of two approaches that might work well for your problem. The first is median filtering, where samples inside a window are replaced by their median. The following plot shows the result of median filtering with a window ...


5

I will show how to calculate the SNR for the case of $N=2$ measurements; it is easy to extend the result to general $N$. Assume a signal $s(t)$ has power $S$, and the noise $n(t)$ has variance $\sigma^2$ and zero mean. Then, the signal $s(t)+n(t)$ has SNR equal to $S/\sigma^2$. Now assume you observe $s(t)$ twice, each time with different, uncorrelated ...


4

A simple method that often works is to apply a median filter.


4

The term super-resolution is used very loosely nowadays. But I think the following problem was the original idea, or at least, the one that made the term famous. Suppose you have a scene and several observations of that scene, i.e. several frames of a video with slight camera motion between them. Super-resolution algorithms combine those several observation ...


4

If the noise signal B is highly correlated with signal A (means related through linear filtering) than you can use an adaptive FIR filter to subtract out the noise from signal B and leave just C. If the noises are uncorrelated but just have the same spectrum and/or probability density function, spectral subtraction or Wiener filter (or a combination of both) ...


4

To solve optimization problems with TV penalty, we use a recently proposed algorithm called FISTA, which has better convergence rate than conventional iterative methods, such as ASD-POCS.


4

At the end what has proven to be the best solution was onset detection based on either high frequency or energy content. Before it could work I had to use high-pass filter to cut out first 1 kHz, since it contained too much noise. Once I had noise-only area I could use its profile to reduce noise from rest of the sample. One library I found particularly ...


4

First, a comment - before you denoise, you are basically going to be converting your data from the (time)-domain into the wavelet domain. This is nothing but a series of projections of your data unto user-picked basis functions. (The wavelets). When you denoise, you will be zeroing out, or shrinking, coefficients which (ostensibly) belong to the noise. ...


4

If the example images you've given are at all representative of your application, you may want to consider thinking about the problem a little differently. Instead of thinking of the image as "corrupted by Poisson noise", think of the observed data as a limited number of photons sampled at random from the latent image intensity map. The photon counts you get ...


4

Wavelets are not key to denoising. There are different ways to denoise an image, for example in the original signal domain or in the transform domain (i.e. Fourier or wavelet). Wavelets work best for additive noise, where the noise is random & not correlated in time. wavelet_denoise (float *fimg[3], unsigned int width, unsigned int height, float ...


4

Thresholding in the Fourier domain is an archaic method sometimes called spectral subtraction, used for background noise removal in speech. Bad results in image processing can be due to several factors: Misinterpretation: you say "The Fourier denoising hard threshold method just uses threshold value to keep high frequency coefficients". Not quite. You keep "...


4

There are plenty of sources of noise in an imaging system. In the domain of sonar systems (which I work in) there is a big problem of reverberation, which is a fancy way of saying "sound from something that we aren't interested in. When using a sonar at sea, you get reverb from the sea surface, sea bed and the water volume. Taking volume reverb as a simple ...


4

Update: I'm sorry to have to say that testing shows the following argument seems to break down under heavy noise. This is not what I expected, so I have definitely learned something new. My prior testing had all been in the high SNR range as my focus has been on finding exact solutions in the noiseless case. Olli, If your goal is to find the parameters ...


3

I think "Fast Anisotropic Smoothing of Multi-Valued Images using Curvature-Preserving PDE’s" by David Tschumperlé is really good. I started implementing it using MATLAB once, yet I didn't finish. If you do implement it, it will be great if you updated us. Update Have a look on my implementation at Fast Anisotropic Curvature Preserving Smoothing.


3

In the particular case where $f(y)=\|y\|_1$, the objective function can be written as $$ \|x-y\|^2 + b\|y\|_1 = \sum_i(x_i - y_i)^2 + b\sum_i |y_i|, $$ minimizing it requires to minimize each entry of the sum: $$ \hat{y_i} = argmin \{(x_i-y_i)^2 + b|y_i|\} $$ Using subdifferentials it is possible to show that the minimizer is the soft-thresholding ...


3

The problem with $\left|f\right|$ is that since is not analytic the standard definition of complex derivative does not apply. A solution is to use Wirtinger derivatives: http://en.wikipedia.org/wiki/Wirtinger_derivatives A detailed account of Wirtinger calculus for signal processing problems is http://arxiv.org/abs/0906.4835 Another (probably simpler) ...


3

Well, unless it is a more programming question (how to translate from MATLAB script to C code), you might find interesting the following implementation: click, proposed in this article: A direct algorithm for 1D total variation denoising. Good luck!


Only top voted, non community-wiki answers of a minimum length are eligible