<span></span><p dir="ltr"><span>Wavelets (</span><a href="http://en.wikipedia.org/wiki/Wavelet"><span>http://en.wikipedia.org/wiki/Wavelet</span></a><span>) have a large number of applications in science and engineering.</span></p><p dir="ltr"><span><b>The Problem</b></span></p><p dir="ltr"><span>Denoise a discrete 1D signal.</span></p><p dir="ltr"><span><b>The Interface</b></span></p><p dir="ltr"><span>Take the signal as a double[], along with other parameters to specify how noise is removed. This could be either a double that specifies the threshold below which coefficients are zeroed (see below) or an integer N specifying that the smallest N coefficients will be zeroed.</span></p><p dir="ltr"><span><b>The Algorithm</b></span></p><p dir="ltr"><span>We are specifically interested in coefficient thresholding to cleaning for 1D signals, as mentioned in the example in (</span><a href="http://gtwavelet.bme.gatech.edu/wp/kidsA.pdf"><span>http://gtwavelet.bme.gatech.edu/wp/kidsA.pdf</span></a><span>) about using well levels to predict earthquakes. Specifically, the algorithm should take a time series represented as a double[] as input, perform a wavelet transform, zero out weaker coefficients according to the selected criterion, and perform a reverse transform on the result to yield a clean time series, which is returned. A good starting point would be the wavelet transform in the jwave library (</span><span>https://github.com/cscheiblich/JWave</span><span>).</span></p><p dir="ltr"><span>We also posted a bounty for denoising, which should be easy to do in tandem with this bounty.</span></p><span>We encourage a brief description of submitted algorithms, including links to whatever testing data you used.</span>