Re: Wavelet Denoising using Wavelet Explorer package
- To: mathgroup at smc.vnet.net
- Subject: [mg97870] Re: Wavelet Denoising using Wavelet Explorer package
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Tue, 24 Mar 2009 05:31:59 -0500 (EST)
On 3/23/09 at 4:04 AM, hayes.tyler at gmail.com wrote:
>Just wondering if anyone has experience out there with Wavelet
>Denoising using Mathematica. I have the Wavelet Explorer package,
>but the thresholding/shrinkage rules are the two simplest cases:
>hard and soft thresholding.
>I am hoping to do something more sophisticated, i.e., use Stein's
>Unbiased Risk Estimator, or the SURE method to denoise some signals.
>Any thoughts where I should start?
I've implemented several more sophisticated methods for
smoothing data using wavelets based on that package. The
following is how I have coded the SURE method:
Options[RemoveNoise] = {WaveletFilter -> DaubechiesFilter@5};
RemoveNoise[data_, opts___Rule] :=
Module[{wt =
WaveletTransform[data,
WaveletFilter /. {opts} /. Options[RemoveNoise],
Sequence @@
FilterRules[Flatten[{opts}], Options[WaveletTransform]]],
sigma}, sigma = (
MedianDeviation[Last[wt]] Sqrt[2 Log[Length[data]]])/0.6745`;
InverseWaveletTransform[
WaveletCompress[wt, sigma,
Sequence @@
FilterRules[Flatten[{Flatten[{opts, Threshold -> True}]}],
Options[WaveletCompress]]],
WaveletFilter /. {opts} /. Options[RemoveNoise],
Sequence @@
FilterRules[Flatten[{opts}], Options[InverseWaveletTransform]]]]