{"nbformat_minor": 0, "worksheets": [{"cells": [{"source": ["Signal Denoising with Wavelets\n", "==============================\n", "\n*Important:* Please read the [installation page](http://gpeyre.github.io/numerical-tours/installation_matlab/) for details about how to install the toolboxes.\n", "$\\newcommand{\\dotp}[2]{\\langle #1, #2 \\rangle}$\n", "$\\newcommand{\\enscond}[2]{\\lbrace #1, #2 \\rbrace}$\n", "$\\newcommand{\\pd}[2]{ \\frac{ \\partial #1}{\\partial #2} }$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\umax}[1]{\\underset{#1}{\\max}\\;}$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\uargmin}[1]{\\underset{#1}{argmin}\\;}$\n", "$\\newcommand{\\norm}[1]{\\|#1\\|}$\n", "$\\newcommand{\\abs}[1]{\\left|#1\\right|}$\n", "$\\newcommand{\\choice}[1]{ \\left\\{ \\begin{array}{l} #1 \\end{array} \\right. }$\n", "$\\newcommand{\\pa}[1]{\\left(#1\\right)}$\n", "$\\newcommand{\\diag}[1]{{diag}\\left( #1 \\right)}$\n", "$\\newcommand{\\qandq}{\\quad\\text{and}\\quad}$\n", "$\\newcommand{\\qwhereq}{\\quad\\text{where}\\quad}$\n", "$\\newcommand{\\qifq}{ \\quad \\text{if} \\quad }$\n", "$\\newcommand{\\qarrq}{ \\quad \\Longrightarrow \\quad }$\n", "$\\newcommand{\\ZZ}{\\mathbb{Z}}$\n", "$\\newcommand{\\CC}{\\mathbb{C}}$\n", "$\\newcommand{\\RR}{\\mathbb{R}}$\n", "$\\newcommand{\\EE}{\\mathbb{E}}$\n", "$\\newcommand{\\Zz}{\\mathcal{Z}}$\n", "$\\newcommand{\\Ww}{\\mathcal{W}}$\n", "$\\newcommand{\\Vv}{\\mathcal{V}}$\n", "$\\newcommand{\\Nn}{\\mathcal{N}}$\n", "$\\newcommand{\\NN}{\\mathcal{N}}$\n", "$\\newcommand{\\Hh}{\\mathcal{H}}$\n", "$\\newcommand{\\Bb}{\\mathcal{B}}$\n", "$\\newcommand{\\Ee}{\\mathcal{E}}$\n", "$\\newcommand{\\Cc}{\\mathcal{C}}$\n", "$\\newcommand{\\Gg}{\\mathcal{G}}$\n", "$\\newcommand{\\Ss}{\\mathcal{S}}$\n", "$\\newcommand{\\Pp}{\\mathcal{P}}$\n", "$\\newcommand{\\Ff}{\\mathcal{F}}$\n", "$\\newcommand{\\Xx}{\\mathcal{X}}$\n", "$\\newcommand{\\Mm}{\\mathcal{M}}$\n", "$\\newcommand{\\Ii}{\\mathcal{I}}$\n", "$\\newcommand{\\Dd}{\\mathcal{D}}$\n", "$\\newcommand{\\Ll}{\\mathcal{L}}$\n", "$\\newcommand{\\Tt}{\\mathcal{T}}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\al}{\\alpha}$\n", "$\\newcommand{\\la}{\\lambda}$\n", "$\\newcommand{\\ga}{\\gamma}$\n", "$\\newcommand{\\Ga}{\\Gamma}$\n", "$\\newcommand{\\La}{\\Lambda}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\Si}{\\Sigma}$\n", "$\\newcommand{\\be}{\\beta}$\n", "$\\newcommand{\\de}{\\delta}$\n", "$\\newcommand{\\De}{\\Delta}$\n", "$\\newcommand{\\phi}{\\varphi}$\n", "$\\newcommand{\\th}{\\theta}$\n", "$\\newcommand{\\om}{\\omega}$\n", "$\\newcommand{\\Om}{\\Omega}$\n"], "metadata": {}, "cell_type": "markdown"}, {"source": ["This tour uses wavelets to perform signal denoising using\n", "thresholding estimators. Wavelet thresholding properites were\n", "investigated in a series of papers by Donoho and\n", "Johnstone, see for instance [DonJohn94](#biblio) and [DoJoKePi95](#bibli)."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 2, "cell_type": "code", "language": "python", "metadata": {}, "input": ["warning off\n", "addpath('toolbox_signal')\n", "addpath('toolbox_general')\n", "addpath('solutions/denoisingwav_1_wavelet_1d')\n", "warning on"]}, {"source": ["Loading a Signal and Making Noise\n", "---------------------------------\n", "Here we consider a simple additive Gaussian white noise.\n", "\n", "\n", "Size $N$ of the signal."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 3, "cell_type": "code", "language": "python", "metadata": {}, "input": ["N = 2048*2;"]}, {"source": ["First we load the 1-D signal."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 4, "cell_type": "code", "language": "python", "metadata": {}, "input": ["name = 'piece-regular';\n", "f0 = load_signal(name, N);\n", "f0 = rescale(f0,.05,.95);"]}, {"source": ["Variance $\\si^2$ of the noise."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 5, "cell_type": "code", "language": "python", "metadata": {}, "input": ["sigma = 0.05;"]}, {"source": ["Generate a noisy signal $f = f_0 + w$ where $w \\sim \\Nn(0,\\si^2 \\text{Id})$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 6, "cell_type": "code", "language": "python", "metadata": {}, "input": ["f = f0 + randn(size(f0))*sigma;"]}, {"source": ["Display."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nRK5CYII=\n", "output_type": "display_data"}], "prompt_number": 7, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "subplot(2,1,1);\n", "plot(f0); axis([1 N 0 1]);\n", "title('Clean signal');\n", "subplot(2,1,2);\n", "plot(f); axis([1 N 0 1]);\n", "title('Noisy signal');"]}, {"source": ["Hard Thresholding vs. Soft Thresholding\n", "---------------------------------------\n", "A thresholding $\\Theta : \\RR^N \\rightarrow \\RR^N$\n", "is a non-linear function that operates diagonaly, i.e.\n", "$$ \\forall i, \\quad \\Theta(x)_i = \\th(x_i) $$\n", "where $\\th : \\RR \\rightarrow \\RR$ is the 1-D thresholding function.\n", "\n", "\n", "The most important thresholding are the hard thresholding\n", "(related to $\\ell^0$ minimization) and the soft thresholding (related\n", "to $\\ell^1$ minimization).\n", "\n", "\n", "The hard thresholding reads\n", "$$ \\Theta^0_T(x)_i = \\choice{\n", " x_i \\qifq \\abs{x_i}>T, \\\\\n", " 0 \\quad \\text{otherwise}.\n", " }$\n", "$$"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 8, "cell_type": "code", "language": "python", "metadata": {}, "input": ["Theta0 = @(x,T)x .* (abs(x)>T);"]}, {"source": ["The soft thresholding reads\n", "$$ \\Theta^1_T(x)_i = \\max\\pa{ 0, 1-\\frac{T}{\\abs{x}} } x\n", "$$"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 9, "cell_type": "code", "language": "python", "metadata": {}, "input": ["Theta1 = @(x,T)max(0, 1-T./max(abs(x),1e-9)) .* x;"]}, {"source": ["Display the thresholding."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nJAEDINL/AXcnaDKnoto9AAAAAElFTkSuQmCC\n", "output_type": "display_data"}], "prompt_number": 10, "cell_type": "code", "language": "python", "metadata": {}, "input": ["t = linspace(-3,3,1024)'; T = 1;\n", "clf;\n", "plot( t, [Theta0(t,T), Theta1(t,T)], 'LineWidth', 2 );\n", "axis('equal'); axis('tight');\n", "legend('\\Theta^0', '\\Theta^1');"]}, {"source": ["Wavelet Thresholding\n", "--------------------\n", "It is possible to perform non linear denoising by thresholding the\n", "wavelet coefficients of $f$.\n", "\n", "\n", "Shortcut for the foward orthogonal wavelet transform $W$ and the inverse\n", "wavelet transform $W^{-1}=W^*$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 11, "cell_type": "code", "language": "python", "metadata": {}, "input": ["options.ti = 0; Jmin = 4;\n", "W = @(f) perform_wavelet_transf(f,Jmin,+1,options);\n", "Wi = @(fw)perform_wavelet_transf(fw,Jmin,-1,options);"]}, {"source": ["Compute the wavelet coefficients $x=W(f)$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 12, "cell_type": "code", "language": "python", "metadata": {}, "input": ["x = W(f);"]}, {"source": ["Threshold the wavelet coefficients $\\tilde x=\\Theta_0(x)$.\n", "Here we use $T=3\\si$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 13, "cell_type": "code", "language": "python", "metadata": {}, "input": ["x1 = Theta0(x, 3*sigma);"]}, {"source": ["Display the wavelet coefficients $W(f)$ and the hard thresholded\n", "coefficients $\\Theta_0(W(f))$. Note how the wavelet\n", "coefficients are contaminated by a small amplitude Gaussian white noise, most of which are removew by thresholding."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\n", "output_type": "display_data"}], "prompt_number": 14, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "subplot(2,1,1);\n", "plot_wavelet(x,Jmin); axis([1 N -1 1]);\n", "title('W(f)');\n", "subplot(2,1,2);\n", "plot_wavelet(Theta0(W(f),T),Jmin); axis([1 N -1 1]);\n", "title('\\Theta_0(W(f))');"]}, {"source": ["Reconstruct from the thresholded coefficients the final estimator $\\tilde f = W^*(\\tilde x)$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 15, "cell_type": "code", "language": "python", "metadata": {}, "input": ["f1 = Wi(x1);"]}, {"source": ["Display noisy and denoised signal."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nIKX/D5h7FgS0a1IDAAAAAElFTkSuQmCC\n", "output_type": "display_data"}], "prompt_number": 16, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "subplot(2,1,1);\n", "plot(f); axis([1 N 0 1]);\n", "title('f');\n", "subplot(2,1,2);\n", "plot(f1); axis([1 N 0 1]);\n", "title('f_1');"]}, {"source": ["Given a thresholding $\\Theta$ (for instance $\\Theta^0$ or $\\Theta^1$), one\n", "thus defines a wavelet thresholding estimator as\n", "$$ \\Theta_W(f) = W^* \\circ \\Theta \\circ W. $$\n", "\n", "\n", "Operator to re-inject the coarse scale noisy coefficients.\n", "Improves a little bit the result of soft thresholding denoising (because\n", "of the bias)."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 17, "cell_type": "code", "language": "python", "metadata": {}, "input": ["x = W(f); \n", "reinject = @(x1)assign(x1, 1:2^Jmin, x(1:2^Jmin));"]}, {"source": ["Define the soft and hard thresholding estimators."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 18, "cell_type": "code", "language": "python", "metadata": {}, "input": ["Theta0W = @(f,T)Wi(Theta0(W(f),T));\n", "Theta1W = @(f,T)Wi(reinject(Theta1(W(f),T)));"]}, {"source": ["The denoising performance of an estimator $\\tilde f = \\Theta_W(f)$ is\n", "measured using the $L^2$ error to the (unknown) ground trust $f_0$.\n", "One usually expresses it in dB using the SNR\n", "$$ SNR = -10\\log_{10}\\pa{ \\frac{\\norm{f_0-\\tilde f}^2}{\\norm{f_0}^2} }. $$"], "metadata": {}, "cell_type": "markdown"}, {"source": ["__Exercise 1__\n", "\n", "Display the evolution of the denoising SNR\n", "when $T$ varies.\n", "Store in |fBest0| and |fBest1| the optimal denoising results.\n", "etrieve best"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nTkSuQmCC\n", "output_type": "display_data"}], "prompt_number": 19, "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo1()"]}, {"collapsed": false, "outputs": [], "prompt_number": 20, "cell_type": "code", "language": "python", "metadata": {}, "input": ["%% Insert your code here."]}, {"source": ["Display the results.\n", "For 1-D signals, hard thresholding seems to outperform soft thresholding.\n", "For natural images, on contrary, soft thresholding seems to be better."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\n", "output_type": "display_data"}], "prompt_number": 21, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "subplot(2,1,1);\n", "plot(fBest0); axis([1 N 0 1]); e = snr(fBest0,f0);\n", "title(['Hard, SNR=' num2str(e,3) 'dB']);\n", "subplot(2,1,2);\n", "plot(fBest1); axis([1 N 0 1]); e = snr(fBest1,f0);\n", "title(['Soft, SNR=' num2str(e,3) 'dB']);"]}, {"source": ["Translation Invariant Wavelet Transform\n", "---------------------------------------\n", "Orthogonal wavelet transforms are not translation invariant.\n", "It means that the processing of an image and of a translated version of\n", "the image give different results. A translation invariant wavelet\n", "transform is implemented by ommitting the sub-sampling at each stage of\n", "the transform. This correspond to the decomposition of the image in a\n", "redundant familly of $N (J+1)$ atoms where $N$ is the number of\n", "samples and $J$ is the number of scales of the transforms.\n", "\n", "\n", "The foward and backward transform algorithm is the so-called \"a trou\"\n", "algorithm, that was introduced in [Holsch87](#biblio). See also [Fowler05](#biblio) for a\n", "review. This algorithm runs in $O(J N)$ operations.\n", "\n", "\n", "The invariant transform is obtained using the same function, by\n", "activating the switch |options.ti=1|."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 22, "cell_type": "code", "language": "python", "metadata": {}, "input": ["options.ti = 1;\n", "W = @(f) perform_wavelet_transf(f,Jmin,+1,options);\n", "Wi = @(fw)perform_wavelet_transf(fw,Jmin,-1,options);"]}, {"source": ["Compute the invariant transform."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 23, "cell_type": "code", "language": "python", "metadata": {}, "input": ["fw = W(f);"]}, {"source": ["|fw(:,:,1)| corresponds to the low scale residual.\n", "Each |fw(:,1,j)| corresponds to a scale of wavelet coefficient, and has\n", "the same size as the original signal."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nRK5CYII=\n", "output_type": "display_data"}], "prompt_number": 24, "cell_type": "code", "language": "python", "metadata": {}, "input": ["nJ = size(fw,3)-4;\n", "clf;\n", "subplot(5,1, 1);\n", "plot(f0); axis('tight');\n", "title('Signal');\n", "i = 0;\n", "for j=1:3\n", " i = i+1;\n", " subplot(5,1,i+1);\n", " plot(fw(:,1,nJ-i+1)); axis('tight');\n", " title(strcat(['Scale=' num2str(j)]));\n", "end\n", "subplot(5,1, 5);\n", "plot(fw(:,1,1)); axis('tight');\n", "title('Low scale');"]}, {"source": ["Translation Invariant Wavelet Denoising\n", "---------------------------------------\n", "Orthogonal wavelet denoising does not performs very well because of its\n", "lack of translation invariance. A much better result is obtained by not sub-sampling the wavelet\n", "transform, which leads to a redundant tight-frame.\n", "\n", "\n", "Translation invariant denoising using cycle spinning is introduced in\n", "[CoifDon95](#biblio). We uwe here the a trou algorithm which is faster.\n", "\n", "\n", "Operator to re-inject the coarse scales."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 25, "cell_type": "code", "language": "python", "metadata": {}, "input": ["x = W(f); \n", "reinject = @(x1)assign(x1, 1:N, x(1:N));"]}, {"source": ["Define the soft and hard thresholding estimators."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 26, "cell_type": "code", "language": "python", "metadata": {}, "input": ["Theta0W = @(f,T)Wi(Theta0(W(f),T));\n", "Theta1W = @(f,T)Wi(reinject(Theta1(W(f),T)));"]}, {"source": ["__Exercise 2__\n", "\n", "Display the evolution of the denoising SNR\n", "when $T$ varies.\n", "Store in |fBest0| and |fBest1| the optimal denoising results.\n", "etrieve best"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nMAAAAABJRU5ErkJggg==\n", "output_type": "display_data"}], "prompt_number": 27, "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo2()"]}, {"collapsed": false, "outputs": [], "prompt_number": 28, "cell_type": "code", "language": "python", "metadata": {}, "input": ["%% Insert your code here."]}, {"source": ["Display the results."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\n", "output_type": "display_data"}], "prompt_number": 29, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "subplot(2,1,1);\n", "plot(fBest0); axis([1 N 0 1]); e = snr(fBest0,f0);\n", "title(['Hard TI, SNR=' num2str(e,3) 'dB']);\n", "subplot(2,1,2);\n", "plot(fBest1); axis([1 N 0 1]); e = snr(fBest1,f0);\n", "title(['Soft TI, SNR=' num2str(e,3) 'dB']);"]}, {"source": ["Bibliography\n", "------------\n", "\n", "\n", "\n", "* [DonJohn94] D. L. Donoho and I. M. Johnstone, [Ideal spatial adaptation via wavelet shrinkage][1], Biometrika, vol. 81, pp. 425-455, 1994.\n", "* [DoJoKePi95] Donoho, D.L., I.M. Johnstone, G. Kerkyacharian and D. Picard, [Wavelet Shrinkage: Asymptopia][2], J. Roy. Statist. Soc. B 57 2, 301-369,1995.\n", "* [CoifDon95] R.R. Coifman and D.L. Donoho, _Translation-Invariant De-Noising_, in Wavelets and Statistics, A. Antoniadis and G. Oppenheim, Eds. San Diego, CA: Springer-Verlag, Lecture notes 1995.\n", "* [Fowler05] J. E. Fowler, [The redundant discrete wavelet transform and additive noise][3], IEEE Signal Processing Letters, vol. 12, issue 9, pp. 629-632, 2005.\n", "* [Holsch87] M. Holschneider, R. Kronland-Martinet, J. Morlet, and P. Tchamitchian, _A real-time algorithm for signal analysis with the help of the wavelet transform_, in Wavelets: Time-Frequency Methods and Phase Space, Springer-Verlag, 1989, pp. 286 297, 1987\n", "\n", "[1]:http://dx.doi.org/10.1093/biomet/81.3.425\n", "[2]:http://www.jstor.org/stable/2345967\n", "[3]:http://dx.doi.org/10.1109/LSP.2005.853048"], "metadata": {}, "cell_type": "markdown"}], "metadata": {}}], "nbformat": 3, "metadata": {"kernelspec": {"name": "matlab_kernel", "language": "matlab", "display_name": "Matlab"}, "language_info": {"mimetype": "text/x-matlab", "name": "matlab", "file_extension": ".m", "help_links": [{"url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md", "text": "MetaKernel Magics"}]}}}