{"nbformat_minor": 0, "worksheets": [{"cells": [{"source": ["1-D Daubechies 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 numerical tour explores 1-D multiresolution analysis\n", "with Daubechies wavelets with a varying number of vanishing moments\n", "(varying order)."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 2, "cell_type": "code", "language": "python", "metadata": {}, "input": ["addpath('toolbox_signal')\n", "addpath('toolbox_general')\n", "addpath('solutions/wavelet_3_daubechies1d')"]}, {"source": ["Wavelets Filters\n", "----------------\n", "The 2-D wavelet transform of a continuous signal $f(x)$ computes the set\n", "of inner products\n", "$$ d_j[n] = \\dotp{f}{\\psi_{j,n}} $$\n", "for scales $ j \\in \\ZZ\n", "$ and position $ n \\in \\ZZ $.\n", "\n", "\n", "The wavelet atoms are defined by scaling and translating a mother\n", "atom $ \\psi(x) $:\n", "$$ \\psi_{j,n}(x) = \\frac{1}{2^j}\\psi\\pa{\\frac{x-2^j n}{2^j}}. $$\n", "\n", "\n", "Associated to this oscillating (high pass) wavelet function $\\psi$\n", "is a non-oscillating (low pass) scaling function $\\phi$.\n", "\n", "\n", "The fast wavelet transform algorithm does not make use of the wavelet and scaling functions,\n", "but of the filters $h$ and $g$ that caracterize their interaction:\n", "$$ g[n] = \\frac{1}{\\sqrt{2}}\\dotp{\\psi(x/2)}{\\phi(x-n)}$\n", "\\qandq h[n] = \\frac{1}{\\sqrt{2}}\\dotp{\\phi(x/2)}{\\phi(x-n)}. $$\n", "\n", "\n", "The simplest filters are the Haar filters\n", "$$ h = [1, 1]/\\sqrt{2} \\qandq g = [-1, 1]/\\sqrt{2}. $$\n", "\n", "\n", "Daubechies wavelets extends the haar wavelets by using longer\n", "filters, that produce smoother scaling functions and wavelets.\n", "Furthermore, the larger the size $p=2k$ of the filter, the higher is the number\n", "$k$ of vanishing moment.\n", "\n", "\n", "A high number of vanishing moments allows to better compress regular\n", "parts of the signal. However, increasing the number of vanishing moments\n", "also inceases the size of the support of the wavelets, wich can be\n", "problematic in part where the signal is singular (for instance\n", "discontinuous).\n", "\n", "\n", "Choosing the _best_ wavelet, and thus choosing $k$, that is adapted to a\n", "given class of signals, thus corresponds to\n", "a tradeoff between efficiency in regular and singular parts.\n", "\n", "\n", "* The filter with $k=1$ vanishing moments corresponds to the Haar filter.\n", "* The filter with $k=2$ vanishing moments corresponds to the famous |D4| wavelet, which compresses perfectly linear signals.\n", "* The filter with $k=3$ vanishing moments compresses perfectly quadratic signals.\n", "\n", "\n", "Set the support size.\n", "To begin, we select the D4 filter."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 3, "cell_type": "code", "language": "python", "metadata": {}, "input": ["p = 4;"]}, {"source": ["Create the low pass filter $h$ and the high pass $g$. We add a zero to ensure that it has a odd\n", "length. Note that the central value of $h$ corresponds to the 0 position."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 4, "cell_type": "code", "language": "python", "metadata": {}, "input": ["[h,g] = compute_wavelet_filter('Daubechies',p);"]}, {"source": ["Note that the high pass filter $g$ is computed directly from the low\n", "pass filter as:\n", "$$g[n] = (-1)^{1-n}h[1-n]$$\n", "\n", "\n", "Display."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "text": ["h filter = [0 0.48296 0.83652 0.22414 -0.12941]\n", "g filter = [0 -0.12941 -0.22414 0.83652 -0.48296]\n"], "output_type": "display_data"}], "prompt_number": 5, "cell_type": "code", "language": "python", "metadata": {}, "input": ["disp(['h filter = [' num2str(h) ']']);\n", "disp(['g filter = [' num2str(g) ']']);"]}, {"source": ["Up and Down Filtering\n", "---------------------\n", "The basic wavelet operation is low/high filtering, followed by down\n", "sampling.\n", "\n", "\n", "Starting from some 1-D signal $f \\in \\RR^N$, one thus computes the\n", "low pass signal $a \\in \\RR^{N/2}$ and the high pass\n", "signal $d \\in \\RR^{N/2}$ as\n", "$$ a = (f \\star h) \\downarrow 2 \\qandq\n", "d = (f \\star g) \\downarrow 2$$\n", "where the sub-sampling is defined as\n", "$$ (u \\downarrow 2)[k] = u[2k]. $$\n", "\n", "\n", "Create a random signal $f \\in \\RR^N$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 6, "cell_type": "code", "language": "python", "metadata": {}, "input": ["N = 256;\n", "f = rand(N,1);"]}, {"source": ["Low/High pass filtering followed by sub-sampling."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 7, "cell_type": "code", "language": "python", "metadata": {}, "input": ["a = subsampling( cconvol(f,h) );\n", "d = subsampling( cconvol(f,g) );"]}, {"source": ["For orthogonal filters, the reverse of this process is its dual\n", "(aka its transpose), which is upsampling followed by low/high pass\n", "filtering with the reversed filters and summing:\n", "$$ (a \\uparrow h) \\star \\tilde h + (d \\uparrow g) \\star \\tilde g = f $$\n", "where $\\tilde h[n]=h[-n]$ (computed modulo $N$) and\n", "$ (u \\uparrow 2)[2n]=u[n] $ and $ (u \\uparrow 2)[2n+1]=0 $.\n", "\n", "\n", "Up-sampling followed by filtering."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 8, "cell_type": "code", "language": "python", "metadata": {}, "input": ["f1 = cconvol(upsampling(a),reverse(h)) + cconvol(upsampling(d),reverse(g));"]}, {"source": ["Check that we really recover the same signal."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "text": ["Error |f-f1|/|f| = 5.4439e-13\n"], "output_type": "display_data"}], "prompt_number": 9, "cell_type": "code", "language": "python", "metadata": {}, "input": ["disp(strcat((['Error |f-f1|/|f| = ' num2str(norm(f-f1)/norm(f))])));"]}, {"source": ["Forward Wavelet Transform\n", "-------------------------\n", "The set of wavelet coefficients are computed with a fast algorithm that\n", "exploit the embedding of the approximation spaces $V_j$ spanned by the\n", "scaling function $ \\{ \\phi_{j,n} \\}_n $.\n", "\n", "\n", "First we load a 1-D signal."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 10, "cell_type": "code", "language": "python", "metadata": {}, "input": ["name = 'piece-regular';\n", "N = 512;\n", "f = rescale( load_signal(name, N) );"]}, {"source": ["Display it."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nAABJRU5ErkJggg==\n", "output_type": "display_data"}], "prompt_number": 11, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "plot(f);\n", "axis('tight');"]}, {"source": ["We will store all the transformed coefficients $d_j$ in a single vector\n", "|fw|. This vector is initialized as |f| and the left sub-part\n", "|fw(1:1^j)| of |fw| will be retransformed at each iteration for a decreasing scale\n", "index |j|.\n", "\n", "\n", "Initialize the result vector."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 12, "cell_type": "code", "language": "python", "metadata": {}, "input": ["fw = f;"]}, {"source": ["Initialize the scale index $j$ as $ j = J = \\log_2(N)-1 $."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 13, "cell_type": "code", "language": "python", "metadata": {}, "input": ["j = log2(N)-1;"]}, {"source": ["The wavelet transform of $f$ is computed by using intermediate discretized low\n", "resolution images obtained by projection on the spaces $V_j$:\n", "$$ a_j[n] = \\dotp{f}{\\phi_{j,n}}. $$\n", "\n", "\n", "The algorithm processes by moving from scale $j$ to the coarser scale\n", "$j-1$ using the filtering+sub-sampling:\n", "$$ a_{j-1} = (a_j \\star h) \\downarrow 2 \\qandq\n", "d_{j-1} = (a_j \\star g) \\downarrow 2$$\n", "\n", "\n", "Retrieve the coefficients $a_j$ from the variable |fw| and\n", "store them in the variable |a1|"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 14, "cell_type": "code", "language": "python", "metadata": {}, "input": ["a1 = fw(1:2^(j+1));"]}, {"source": ["Apply high and low filtering+subsampling\n", "to obtain $a_{j-1}$ and $d_{j-1}$ (stored in |a| and |d|)."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 15, "cell_type": "code", "language": "python", "metadata": {}, "input": ["a = subsampling(cconvol(a1,h));\n", "d = subsampling(cconvol(a1,g));"]}, {"source": ["_Note:_ |subsampling(A)| is equivalent to |A(1:2:end)|.\n", "\n", "\n", "Concatenate them to get the result and store it in |fw|."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 16, "cell_type": "code", "language": "python", "metadata": {}, "input": ["fw(1:2^(j+1)) = cat(1, a, d );"]}, {"source": ["Display the result of the first step of the transform."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\n", "output_type": "display_data"}], "prompt_number": 17, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "subplot(2,1,1);\n", "plot(f); axis('tight'); title('Signal');\n", "subplot(2,1,2);\n", "plot(fw); axis('tight'); title('Transformed');"]}, {"source": ["Display the signal and its coarse coefficients."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nRU5ErkJggg==\n", "output_type": "display_data"}], "prompt_number": 18, "cell_type": "code", "language": "python", "metadata": {}, "input": ["s = 400; t = 40; \n", "clf;\n", "subplot(2,1,1);\n", "plot(f,'.-'); axis([s-t s+t 0 1]); title('Signal (zoom)');\n", "subplot(2,1,2);\n", "plot(a,'.-'); axis([(s-t)/2 (s+t)/2 min(a) max(a)]); title('Averages (zoom)');"]}, {"source": ["__Exercise 1__\n", "\n", "Implement a full wavelet transform that extract iteratively wavelet\n", "coefficients, by repeating these steps. Take care of choosing the\n", "correct number of steps."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\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": ["Check that the transform is\n", "orthogonal, which means that the energy of the coefficient is the same\n", "as the energy of the signal."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "text": ["Energy of the signal = 88.6\n", "Energy of the coefficients = 88.6\n"], "output_type": "display_data"}], "prompt_number": 21, "cell_type": "code", "language": "python", "metadata": {}, "input": ["disp(strcat(['Energy of the signal = ' num2str(norm(f).^2,3)]));\n", "disp(strcat(['Energy of the coefficients = ' num2str(norm(fw).^2,3)]));"]}, {"source": ["We display the whole set of coefficients |fw|, with red vertical\n", "separator between the scales.\n", "Can you recognize where are the low frequencies and the high frequencies\n", "? You can use the function |plot_wavelet| to help you."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAASo0lEQVR4nO3d25aq\nOBQFUNKj/v+X0w+UHkpQUa4rzPlQbaPiNgLLBMwptdYOANL8d3QBAPANAQZAJAEGQCQBBkAkAQZA\nJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAk\nAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkCkBgOslHJ0CQBs7ufoAtYkugCuo6ke\nWK211np0FQDsoake2FgppXZd6WrtSun6bOuX3NXbf+Z23/4+fQWrr3AjKXWm0J6c3Pn7A40H2Fit\ntSvl/sEMU2vupzV4+vOHdP1DyowHz1nhErNqmLeir9ezWg3fOryAiRqOKOnwdji8ADXMrCHijExT\nQ4gAXIcAAyBSgwF2eMccgB0cPw67qVLK/TKN3sPb/XsObMXXXXNtADs7w1m6txrsgQFwBQIMgEgC\nDIBIAgyASO0HWO3K/e+vqR/o1fmzIqz++76EHwx2XU6dKbQnLNN+gAHQJAEGQCQBBkAkAQZAJAEG\nQCQBBkCk9gOs/3csy3BGxKkJvko3e9av1ecHO/2EY79S6kyhPWGZ9gMMgCYJMAAiCTAAIgkwACK1\nH2BnmAvxzTNS5sRLqTOF9oRl2g8wAJokwACIJMAAiCTAAIgkwACIJMAAiNR+gJkLcTUpdabQnrBM\n+wEGQJMEGACRfo4u4GPlNn9BnRwJLOXZXQC0JCzASin3cBreflgyvguAxrQ/hHiGuRD3XuFGUupM\noT1hmbAe2FuGEAG+U9K+VLUTYK9HFwF4bXjYjAiz9ocQAWhSWA+s1jq+CrHvb03eBUCrwgKsmwqn\n+xK5BXAdhhABiNR+gJkLcTUpdabQnrBM+wEGQJMEGACRBBgAkQTY+hJ+/wcQr/0AMxfialLqTKE9\nYZn2AwyAJgkwACIJsLmM9wCcigADIJIAAyCSAAMgUvsBZi7E1aTUmUJ7wjLtBxgATRJgAEQSYABE\nulaA1ernXACNaD/AzIW4mpQ6U2hPWKb9AAOgSQIMgEgCDIBIAgyASAJsBaU4Hw+wNwEGQKT2A8xc\n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\n", "output_type": "display_data"}], "prompt_number": 22, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf; \n", "plot_wavelet(fw);\n", "axis([1 N -1 1]);"]}, {"source": ["Backward Wavelet Transform\n", "--------------------------\n", "The backward wavelet transform reconstructs a signal $ f $ from a set of\n", "wavelet coeffcients $ \\{ d_j[n] \\}_{j,n} $. For continuous functions,\n", "it corresponds to the following reconstruction formula:\n", "$$ f(x) = \\sum_{j,n} d_j[n] \\psi_{j,n}(x). $$\n", "\n", "\n", "For discrete signal, it reconstructs a signal $ f \\in \\RR^N $ by\n", "inverting the wavelet filtering/sub-sampling steps.\n", "\n", "\n", "It starts from the coarsest scale $ j=0 $, where $ a_0 \\in \\RR $ is\n", "the single remaining coefficient.\n", "\n", "\n", "The algorithm processes by moving from scale $j$ to the finer scale\n", "$j+1$ using the up-sampling/filtering:\n", "$$ a_{j+1} = (a_j \\uparrow 2) \\star \\tilde h\n", " + (d_j \\uparrow 2) \\star \\tilde g $$\n", "\n", "\n", "Initialize the signal to recover |f1| as the transformed coefficient, and\n", "select the smallezt possible scale."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 23, "cell_type": "code", "language": "python", "metadata": {}, "input": ["f1 = fw;\n", "j = 0;"]}, {"source": ["Retrieve coarse and detail coefficients in the vertical direction."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 24, "cell_type": "code", "language": "python", "metadata": {}, "input": ["a = f1(1:2^j);\n", "d = f1(2^j+1:2^(j+1));"]}, {"source": ["Perform the up-sampling/filtering and summation:"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 25, "cell_type": "code", "language": "python", "metadata": {}, "input": ["a = cconvol(upsampling(a,1),reverse(h),1) + cconvol(upsampling(d,1),reverse(g),1);"]}, {"source": ["Replace the coefficients at the correct locations."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 26, "cell_type": "code", "language": "python", "metadata": {}, "input": ["f1(1:2^(j+1)) = a;"]}, {"source": ["__Exercise 2__\n", "\n", "Write the inverse wavelet transform that computes |f1| from the\n", "coefficients |fw|."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\ngWUXXxlKXi9JK6GlOlkcllXeHg86sd6/BRRPk1wy21rsbJ9tE644AvtbGOLnYlB2KSm70IjO7PU8\n/VfpnX4UD995nixT6e2LJSI9gBkfgf3NfdmFgBpdZZen9in9uo5ruOLhO8+T6aoDfZWZbzyAAQBu\nwodTHexMIR5dqxABAEqZCmAAAD+4kRkAoBLXwKaIb2i/rmv93GayJjP+9pWJiZaD/pMha5Lx88DX\np+HYVDcEZsWWKhFSsr11FNOwMhk/66GKKzIEsFlKd1X/8/MkyWYweTtZk5h8T5r4u5blSdwdJN+4\nPg3hK7bUDYFZsaVKxDWT1vH0jYt7rW5MIc5ynueWjcWu65JQ2/JkrM8QIfmQv0hW3Nbng4S+uJiG\nLd3Frj5qIEZgs+TzJM7lA5E1whnlyi8tpiH8c0vdkFAVkzTsqhICbckKA30UI7ApaJCJLRlyn2Du\nLYs8DbvSI2FoHqdhfWLunjr+73rFNGwpl+2VYQgC2Hiqz2hm2JghElppcnljfQIkVMj80uz6NFx/\nHbtPI+I0uK0SQzB4n2Ljwr+QgO3rrOJkrF/jlM9WSUhD/qWsQly/7E1C66ikYU0y5BTHFwQwAIBK\nTCECAFQigAEAVCKAAQBUIoABAFQigAEAVCKAAQBUIoABAFQigAEAVCKAAQBUIoABAFQigAEAVCKA\nAQBUIoABAFQigAEAVCKAAQBUIoABAFQigAEAVCKAAQBUIoABAFQigAEAVCKAAQBUIoABAFQigAEA\nVCKAAQBUIoABAFQigAEAVCKAAQBUIoABAFQigAEAVCKAAQBUIoABAFQigAEAVCKAAQBUIoABAFT6\nf5b6eBcVAJ7cAAAAAElFTkSuQmCC\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": ["Check that we have correctly recovered the signal."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "text": ["Error |f-f1|/|f| = 4.0189e-12\n"], "output_type": "display_data"}], "prompt_number": 29, "cell_type": "code", "language": "python", "metadata": {}, "input": ["disp(strcat((['Error |f-f1|/|f| = ' num2str(norm(f-f1)/norm(f))])));"]}, {"source": ["Daubechies Wavelets Approximation\n", "---------------------------------\n", "Non-linear approximation is obtained by thresholding low amplitude\n", "wavelet coefficients.\n", "\n", "\n", "This defines the best $M$-terms approximation $f_M$ of $f$:\n", "\n", "\n", "$$ f_M = \\sum_{ \\abs{\\dotp{f}{\\psi_{j,n}}}>T } \\dotp{f}{\\psi_{j,n}}\\psi_{j,n}. $$\n", "\n", "\n", "Set the threshold value."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 30, "cell_type": "code", "language": "python", "metadata": {}, "input": ["T = .5;"]}, {"source": ["Coefficients |fw(i)| smaller in magnitude than |T| are set to zero."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 31, "cell_type": "code", "language": "python", "metadata": {}, "input": ["fwT = fw .* (abs(fw)>T);"]}, {"source": ["Display the coefficients before and after thresholding."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nLfk4eMEAAAAASUVORK5CYII=\n", "output_type": "display_data"}], "prompt_number": 32, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "subplot(2,1,1);\n", "plot_wavelet(fw); axis([1 N -1 1]); title('Original coefficients');\n", "subplot(2,1,2);\n", "plot_wavelet(fwT); axis([1 N -1 1]); title('Thresholded coefficients');"]}, {"source": ["__Exercise 3__\n", "\n", "Find the threshold $T$ to obtained a given number $M$ of\n", "non thresholded coefficients.\n", "Try for an increasing number $M$ of coeffiients.\n", "ompute the threshold T"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nQmCC\n", "output_type": "display_data"}], "prompt_number": 33, "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo3()"]}, {"collapsed": false, "outputs": [], "prompt_number": 34, "cell_type": "code", "language": "python", "metadata": {}, "input": ["%% Insert your code here."]}, {"source": ["__Exercise 4__\n", "\n", "Try with\n", "Different kind of wavelets, with an increasing number of vanishing\n", "moments.\n", "ompute the threshold T"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\n", "output_type": "display_data"}], "prompt_number": 35, "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo4()"]}, {"collapsed": false, "outputs": [], "prompt_number": 36, "cell_type": "code", "language": "python", "metadata": {}, "input": ["%% Insert your code here."]}, {"source": ["The Shape of a Wavelet\n", "----------------------\n", "A wavelet coefficient is an inner product\n", "$ d_j[n] = \\dotp{f}{\\psi_{j,n}} $ with a wavelet atom $\\psi_{j,n}$.\n", "\n", "\n", "A wavelet atom $\\psi_{j_0,n_0}$ can be computed by\n", "applying the inverse wavele transform to coefficients $ \\{d_j[n]\\}_{j,n} $\n", "such that\n", "$$ d_{j}[n]=\\choice{ 1 \\qifq j=j_0 \\qandq n=n_0, \\\\ 0 \\quad\\text{otherwise.} } $$"], "metadata": {}, "cell_type": "markdown"}, {"source": ["__Exercise 5__\n", "\n", "Compute wavelets at several positions and scales."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nRU5ErkJggg==\n", "output_type": "display_data"}], "prompt_number": 37, "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo5()"]}, {"collapsed": false, "outputs": [], "prompt_number": 38, "cell_type": "code", "language": "python", "metadata": {}, "input": ["%% Insert your code here."]}, {"source": ["__Exercise 6__\n", "\n", "Display Daubechies wavelets with an increasing number of vanishing\n", "moments."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\n", "output_type": "display_data"}], "prompt_number": 39, "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo6()"]}, {"collapsed": false, "outputs": [], "prompt_number": 40, "cell_type": "code", "language": "python", "metadata": {}, "input": ["%% Insert your code here."]}], "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"}]}}}