{"nbformat_minor": 0, "worksheets": [{"cells": [{"source": ["1-D Haar 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 with Haar\n", "transform. It was introduced in 1910 by Haar [Haar1910](#biblio)\n", "and is arguably the first example of wavelet basis."], "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_1_haar1d')"]}, {"source": ["Forward Haar Transform\n", "----------------------\n", "The Haar transform is the simplest orthogonal wavelet transform. It is\n", "computed by iterating difference and averaging between odd and even\n", "samples of the signal.\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 = 512;"]}, {"source": ["First we load a 1-D signal $f \\in \\RR^N$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 4, "cell_type": "code", "language": "python", "metadata": {}, "input": ["name = 'piece-regular';\n", "f = rescale( load_signal(name, N) );"]}, {"source": ["The Haar transform operates over $J = \\log_2(N)-1$ scales.\n", "It computes a series of coarse scale and fine scale coefficients\n", "$a_j, d_j \\in \\RR^{N_j}$ where $N_j=2^j$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 5, "cell_type": "code", "language": "python", "metadata": {}, "input": ["J = log2(N)-1;"]}, {"source": ["The forward Haar transform computed $ \\Hh(f) = (d_j)_{j=0}^J \\cup \\{a_0\\} $.\n", "Note that the set of coarse scale coefficients $(a_j)_{j>0}$ are not\n", "stored.\n", "\n", "\n", "This transform is orthogonal, meaning $ \\Hh \\circ \\Hh^* = \\text{Id} $,\n", "and that there is the following conservation of energy\n", "$$ \\sum_i \\abs{f_i}^2 = \\norm{f}^2 = \\norm{\\Hh f}^2 = \\sum_j \\norm{d_j}^2 + \\abs{a_0}^2. $$\n", "\n", "\n", "One initilizes the algorithm with $a_{J+1}=f$. The set of coefficients\n", "$d_{j},a_j$ are computed from $a_{j+1}$ as\n", "$$ \\forall k=0,\\ldots,2^j-1, \\quad\n", " a_j[k] = \\frac{a_{j+1}[2k] + a_{j+1}[2k+1]}{\\sqrt{2}}$\n", " \\qandq\n", " d_j[k] = \\frac{a_{j+1}[2k] - a_{j+1}[2k+1]}{\\sqrt{2}}. $$\n", "\n", "\n", "\n", "Shortcut to compute $a_j, d_j$ from $a_{j+1}$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 6, "cell_type": "code", "language": "python", "metadata": {}, "input": ["haar = @(a)[ a(1:2:length(a)) + a(2:2:length(a));\n", " a(1:2:length(a)) - a(2:2:length(a)) ]/sqrt(2);"]}, {"source": ["Display the result of the one step of the transform."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\n", "output_type": "display_data"}], "prompt_number": 7, "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(haar(f)); axis('tight'); title('Transformed');"]}, {"source": ["The output of the forward transform is stored in the variable |fw|.\n", "At a given iteration indexed by a scale |j|, it will store in |fw(1:2^(j+1))|\n", "the variable $a_{j+1}$, and in the remaining entries the variable\n", "$d_{j+1},d_{j+2},\\ldots,d_J$.\n", "\n", "\n", "Initializes the algorithm at scale $j=J$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 8, "cell_type": "code", "language": "python", "metadata": {}, "input": ["j = J;"]}, {"source": ["Initialize |fw| to the full signal."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 9, "cell_type": "code", "language": "python", "metadata": {}, "input": ["fw = f;"]}, {"source": ["At iteration indexed by $j$,\n", "select the sub-part of the signal containing $a_{j+1}$,\n", "and apply it the Haar operator."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 10, "cell_type": "code", "language": "python", "metadata": {}, "input": ["fw(1:2^(j+1)) = haar(fw(1:2^(j+1)));"]}, {"source": ["Display the signal and its coarse coefficients."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAAQpElEQVR4nO3d0XKi\nzAKFUTg17//KnAsq/KRBQIPQu1nrYipBk/Sg8qVbov0wDB0ApPnf3QMAgE8IGACRBAyASAIGQCQB\nAyCSgAEQScAAiCRgAEQSMAAiCRgAkQQMgEgCBkAkAQMgkoABEEnAAIgkYABEEjAAIgkY7Ot/zLd8\n/K12t/zFud8Navbv7gFA7fq+H4ah+HjacpcpVMMwzD8eP719eHABAYM3FCWbT3fGi4otyysUptjM\nI7T8dHXLdM3ll2gYTyBgsKOY4kzbi5nZ/PrTltUrvPop09WWc77VWSA8nIDBvo/j8dYzUsoEb3ES\nB+z4y/kaw4+DV/7sB8EzmYHBvtUlxOIpru0vPHK1V+dlrG4B/NIHJ/h4/vSNiZfJHA9hBgaf+/us\nyBmD8DGPHAAiOYkDgEgNBsxL6QA8QVPPgUkXwHM0NQM7+Ac3ADSgqRnYkjkZwGfqnw80HrAu4Tbo\ncv5wxzjPZZwnihhkFzXOu4ewr6klRACeQ8AAiNRgwCKm5wD8UcZq7MdSlpsBqhJx8GxwBgbAEwgY\nAJEEDIBIAgZAJAEDIJKAARBJwACIJGAARBIwACIJGACRBAyASAIGQCQBAyCSgAEQScAAiPTv7gEA\nT9f369vnb0c1XmfaUnz6akv1b2jFnwgYUIuiT8uwFVs+uMLuDxXFIAIG3GwYyjB8EIniO+zWaGrb\nKVEcv+100XYUJfAsAga0oKjCMhK7V1g6HsXtyO0m0LTvMwIGsO54FF8F5uBE8INp33bzHkLAAL7l\ng4ngwWnfbvO6B6xk5gWs/7mVhrXdP166ehFA/d5dC+1eN+/gSuZ0zd/fOeAo2mcd6/v+vwHPPy62\nLD8AqtXGbCDIq/NZliq/XfJmYO/qf984egY83KtJ3u+jZcDBsrWALZcQA24EgArMj5Z939e/ithO\nwLZXFwFojNdCBCBS2AxsGIblWYjjfGv1IgBaFRawbi1O0xbdAngOS4gARBIwACIJGACRBAyASAIG\nQCQBA+7khRD5mIABEEnAAIgkYABEEjAAIgkYAJEEDIBIAgZAJAEDIJKAARBJwACIJGAARBIw4DZe\nCJG/EDAAIgkYAJEEDIBI/+4ewNv6vh8/GBZr5xsXAdCYsID1fT/Faf5x91OvcUtxEQDtCQvYrnnG\nAGhYUwFbnZxN64rFdQCYK46W9WsqYKsUC+CI5ZMylXMWIgCRwmZgwzAsTzUcFwxXLwKgVWEB69bi\nNG3RLYDnsIQI3MMLIfJHAgZAJAEDIJKAARBJwACIJGAARBIwACIJGACRBAyASAIGQCQBAyCSgAEQ\nScCAG3ghRP5OwACIJGAARBIwACIJGACRBAyASAIGQCQBAyCSgAEQScAAiJQXsP7HxhWuHA8At/h3\n9wDe0/f98PP6M/OP51e4fFAA3CAsYNvGpBUNKz5dNu/PP3T8ti+3TD+/2LL7JX/5nrf8UP8R/5G3\nfii1iZsArExiarY9A5sCtj1LO3tIX/320KyoY8/jXHDw/Lt2ZmDj7w7Tv5ft+mHwutoAN2gnYFfO\nugC4XVjA5k9xKRbAk4UFrFs7C6PYcnHMrB8C3CLv78AAoBMwAEIJGACRBAyASAIGQCQBAyCSgAEQ\nScAAiCRgAEQSsD/xMhwAdxEwACIJGACRBAyASAIGQCQBAyCSgAEQScAAiCRgAEQSMAAiCRgAkQTs\nc15HCuBG/+4ewNv6vh8/GBb12LgIgMaEBazv+ylO848n45bViwBoSVNLiKIF8BxhM7AjiunXtK44\nEjmAVcXRsn5NBWzc+0WiFAvgiI1f/evU1BJiJ1cAjxE2AxuGYXmq4bhmOG53IiLAQ4QFrFsr07hF\nsQAepbUlRAAeQsA+5GU4AO4lYABEEjAAIgkYAJEEDIBIAgZAJAEDIJKAARBJwACIJGAARBIwACIJ\n2Ce8jhTA7QQMgEgCBkAkAQMgkoABEEnAAIgkYABEEjAAIglYFfq+v3sIhxjnuYzzRBGD7HLGGUHA\nAIj07+4BnGn61Wb45utkeBkOgBq0E7C+76duzT8GoEntHOhXA/bN1WYL2UDL6q9DOzOwVcX+n3o2\nbR+3FJ9uXGG2pfabFqBtjQessIxOsWX3CqtbALiesxABiNTOc2DdVWchAlCDpgIGwHM09RxYMQNb\nTshqmKK9GuS0sYZBdi/21bjx1e69xe6tXMk4R7PzY2u8c06KP0QpTvEdP6hqnDXvz429V88gu7W/\nPtrYvZVoKmDdi7vFeDPU84di81EVh4l6Btn9Hme3uDfXOc7lwaKecU53y+WtXNXtPv+lqvgFq9px\ndrU+2JcvHFXng2g5zo2766Uj29TUSRzLPVskoQavBpMyztqkjLO22/eVYpzF71j1WI7zxsG8srzR\nU8aZcndtbQY2/z2i2t8aUl7N89UvZfN1zhqsDqaqEXKN2h7pq9wzT9TUDKyr+BfGueUg63zgzcc5\nLXjWVq/u9zjH4dW2P8c9Nv+3TrnjDLrRaztGre7MLuFu0LUUsMp39ChikF3yOJfPLNZgan9X6yLS\nKHqctQ14Ocg6H1bLcabcDbrGTqNPPAuxWzvjq7jCLVLO7ksZ5yjirLku7SzEV2dzzD+9kbMQv6ep\ngAHwHO0sIQLwKAIGQCQBAyCSgAEQScAAiCRgAEQSMAAiCRgAkQQMgEgCBkAkAQMgkoABEEnAAIgk\nYABEEjAAIgkYAJEEDIBIAgZAJAEDIJKAARBJwACIJGAARBIwACIJGACRBAyASAIGQCQBAyCSgAEQ\nScAAiCRgsKLv+7uHcOYYavjvwOn+3T0AqE7f98MwjP/ePZa3Ta0a/wvzjxP/O7BBwGDL/Lg/hW38\ndL69+x2M6dJiS/G1y+svf+6rL1n9tLhofh0Noz0CBr8UR/npuD+vV1GIaUuRtCJ+q1+7W5R5hIpv\nWPxEceJpBAxK07TmVRVePaV05Kmm7TnZqy8RJ1gSMCgVs5yDly6nR7tfu1yfXH6JesErAgb/Wa3F\n/Nmj7TlT0a3ls2LF1xZXWB1P9/uJriPPgcFD+OUOrvDuROr0iZeZHO0xA4Mv+niG5KRB2OURAkAk\nr8QBQCQBAyCSgAEQScAAiCRgAERq/DR67yIB8Jn6z1FvPGBdwm3Q5fyRqXGeyzhPFDHILmqcdw9h\nnyVEACIJGACRBAyASBmrsR9LWW4GqErEwdMMDIBIAgZAJAEDIJKAARBJwACIJGAARBIwACIJGACR\nBAyASAIGQKTUgK2+1H//4/rxAHCxvPcD2+7T+OJdEa/iBRw3Pu43Hta7V6A9eQGbEvXqokJxTWGD\nONODeHd55eD6y+ph4EgC+77lRsYtX+UFbFcx/VIsSDcM++V4a4q2caB+t5HznzhdtD2Mao9J86Nl\nRMyaCti4xxULGnPkoP/WFT47SKw2cvU4v33wn1+6HIm10OOaClinXsDXrB5d3j3kFH16lbrd+Y9D\nXddGwMY1w3H6NU17lQyoUHFkWp2BHVks/WPhal7JPK7xs/Wcjgjp2jjUXumtZ69e7duI3d7CDAyA\nyW54jp/PUnnDBAzgWXbPZ0k4A7Hrcl+JA3iC+icBTRr/2rb+PS9gAEQSMAAiCRhQKeuHbBMwACIJ\nGACRBAyASAIG1MgTYOwSMAAiCRgAkQQMqI71Q45oMGARbyQKwB819WK+0gXwHE3NwIZh8O5fkM76\nIQc1NQNbVUzLFA5gVdwiVvsBUyyAI+ZHy4iYNbWECKSzfshxAgZApAYDZs0Q4AkaDBgQyvohbxEw\nACIJGACRBAyogvVD3iVgAEQSMAAiCRhwP+uHfEDAgJuNL1qU8NJF1EXAgJuNcy8zMN4lYMDNrB/y\nGQEDIJKAARBJwIA7WT/kYwIGQKS8d2Se3id09W1Txku9owpA88IC1vf9FKf5x8WW5UVAhawf8hdh\nAftA//vPI4UNYFWf9sfkrQVsuYSoWABHzI+WETFrJ2Dbq4tAbawf8kfOQgQgUtgMbBiG5VmI43xr\n9SIAWhUWsG4tTtMW3QJ4DkuIwA08AcbfCRgAkQQMgEgCBlzN+iGnEDAAIgkYAJEEDLiU9UPOImAA\nRBIwACIJGHAd64ecSMAAiCRgAEQSMOAi1g85V96r0W+8Z4q3UwF4jrCAbbzt8livcYt3ZAZoXljA\nds0zBtTD+iGnaypgq5OzaV2xuA4Ac8XRsn5NBWyVYgEcsXxSpnLOQgS+zvoh3xA2AxuGYXmq4bhg\nuHpRDabfYzYGNV4n4gqVDMN/pEv7j8DpGj9br4bTET16YXT3Y5E31HDw3BU2A0s0DNZPAM7nObCv\nUy+AbxAwACIJ2HeZfgF8iYABEEnAAIgkYF9k/RDgewQMgEgCBkAkAfsW64cAXyVgAEQSsK8w/QL4\nNgEDIJKAARApL2D9j40rXDmetQFYPwT4urC3U5m/Rc3q29XcXi8ArhEWsG1j0oqGFZ/W/xZtALeI\nmwA0FbBVFxfL+iEQan60jIhZ3nNgr4y7e/4vAA1rZwa2/dwYAI0JC9j8Ka4Ki2X9EOAyYQHr1p7T\nKrZUEjMAvqqd58BuZ/oFcCUBAyCSgAEQScDOYf0Q4GICBkAkAQMgUt5p9LUZ/yzN+iHAxczAzuG1\nqwAuJmDnMAMDuJiAnUC9AK4nYABEErA/8edfAHcRMAAi5Z1Gv3w7lSMXAdCYsIDN3/pr9W3Axi3X\nvEOY9UOAGzW1hGjiBfAcYTOwI4rpV//7b4xFDmBVn/aKDE0FbNz717xBs/VDoDEbv/rXqaklxM4E\nC+AxwmZgwzAsTzUc1wzH7deciGj6BXC7sIB1a2Uat5h7ATxKa0uIADyEgL3N+iFADQQMgEgCBkAk\nAXuP9UOASggYAJEE7A2mXwD1EDAAIgkYAJEE7CjrhwBVETAAIgkYAJEE7JBvrx9GvPVOZ5xnM84T\nRQyyyxlnBAEDIFLe26lsuObNwACoQTsBG9/WcvnxGd/Z+YcA1TnzQH+v1YCdt9ps2Rp4lvrr0M4M\nbNXu/h8Lt3G1nyvUfkMCPE3jAdu1GyblAqiTsxABiNTOc2CdsxABnqSpgAHwHA0+B1acjtjNJmT1\nTNGKE/3n45z/oX5V4yz2Xj07szs2zu7Woe7uvUr25/FxdjXtz2ljVfvz1Rhmp0lXujNrfrDPNRWw\n4jVa5veSYRi+94dib1m+kEwxzq6Oe8mrndn9zm13687s9sZZz/7sfh8LikFWcuccbYxzfoXbFY/u\n+UX17M/iob18+Fe4M4stXTUP9qWmTuIYhqGqnbvqyCD7vr/9BdMidmYXtT/vHcBBR8ZZ4f6s8+66\nHNJynBXuzNUtdWoqYEvjnaP+G6MY53gvv/1uvarOUS0VizOV7M+Ie2O3N0778y25O7P+3dvUEuJc\nPWsI25bjrHOo02OskgfbK8txVrI/qxrMht1xVvJfiNifuTszYvd2zc/A4lTbhprjOleMs6r9Wf/e\nG22M0/58V+7OjNi99U5NPrZ8vvTVqTU3aunsPuPcVRyq5rPYqu6cueOcttczzleD7DaPUdfbuNGX\nW2p4sM81GDAAnsASIgCRBAyASAIGQCQBAyCSgAEQScAAiCRgAEQSMAAiCRgAkQQMgEgCBkAkAQMg\nkoABEEnAAIgkYABEEjAAIgkYAJEEDIBIAgZAJAEDIJKAARBJwACIJGAARBIwACIJGACRBAyASAIG\nQCQBAyCSgAEQScAAiCRgAEQSMAAiCRgAkQQMgEj/B0JTksnTSslmAAAAAElFTkSuQmCC\n", "output_type": "display_data"}], "prompt_number": 11, "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(fw(1:2^j),'.-'); axis([(s-t)/2 (s+t)/2 min(fw(1:2^j)) max(fw(1:2^j))]); title('Averages (zoom)');"]}, {"source": ["__Exercise 1__\n", "\n", "Implement a full wavelet Haar 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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\nqgAAAABJRU5ErkJggg==\n", "output_type": "display_data"}], "prompt_number": 12, "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo1()"]}, {"collapsed": false, "outputs": [], "prompt_number": 13, "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": ["Should be 0: 0.000.\n"], "output_type": "display_data"}], "prompt_number": 14, "cell_type": "code", "language": "python", "metadata": {}, "input": ["fprintf('Should be 0: %.3f.\\n', (norm(f)-norm(fw))/norm(f));"]}, {"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?"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nAAAAAElFTkSuQmCC\n", "output_type": "display_data"}], "prompt_number": 15, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf; \n", "plot_wavelet(fw);\n", "axis([1 N -2 2]);"]}, {"source": ["Backward Haar Transform\n", "-----------------------\n", "The backward transform computes a signal $f_1 = \\Hh^*(h)$ from a set of\n", "coefficients $ h = (d_j)_{j=0}^J \\cup \\{a_0\\} $\n", "\n", "\n", "If $h = \\Hh(f)$ are the coefficients of a signal $f$, one recovers\n", "$ f_1 = f $.\n", "\n", "\n", "The inverse transform starts from $j=0$, and computes $a_{j+1}$\n", "from the knowledge of $a_j,d_j$ as\n", "$$\n", " \\forall k = 0,\\ldots,2^j-1, \\quad\n", " a_{j+1}[2k] = \\frac{ a_j[k] + d_j[k] }{\\sqrt{2}}$\n", " a_{j+1}[2k+1] = \\frac{ a_j[k] - d_j[k] }{\\sqrt{2}}$\n", "$$\n", "\n", "\n", "One step of inverse transform"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 16, "cell_type": "code", "language": "python", "metadata": {}, "input": ["ihaar = @(a,d)assign( zeros(2*length(a),1), ...\n", " [1:2:2*length(a), 2:2:2*length(a)], [a+d; a-d]/sqrt(2) );"]}, {"source": ["Initialize the signal to recover $f_1$ as the transformed coefficient, and\n", "select the smallest possible scale $j=0$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 17, "cell_type": "code", "language": "python", "metadata": {}, "input": ["f1 = fw;\n", "j = 0;"]}, {"source": ["Apply one step of inverse transform."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 18, "cell_type": "code", "language": "python", "metadata": {}, "input": ["f1(1:2^(j+1)) = ihaar(f1(1:2^j), f1(2^j+1:2^(j+1)));"]}, {"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": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAAgAElEQVR4nO3d6Za0\nKLaAYT2r7/+WPT+opChAApVhD++zelXHlxkZgUwbUPG8rusAAECb/9udAAAA3iCAAQBUIoABAFQi\ngAEAVCKAAQBUIoABAFQigAEAVCKAAQBUIoABAFQigAEAVCKAAQBUIoABAFQigAEAVCKAAQBUIoAB\nAFQigAEAVCKAAQBUIoABAFQigAEAVCKAAQBUIoABAFQigAEAVCKAAQBUIoABAFQigMGmM9Hz5uzF\n3Rtme/pFP1P+5Rs7cw/Y5X+7EwDMcl1XeHGeZ3zd+SfqvE753R/GTOvPPWAxAhi8SCcTsWtOf3td\nV/xv9s7qR6XvzD6w+s8yDdV/lh+Svkh/G99fpvzuG6vHQnyCUgQwmJX15o0+PevEq+/MxGiRxqrs\nD6tTwLvYFj8z/rd6RNlnlj/5+Y3Vj80OrXoUgDQEMJiV9bz9p3MenfipvjmbXd2pzpk6DYwr5Ufd\nxUJAFAIYXMh65CHvPO7nap0h8EucGBhX7mZggHAEMHgxMG4FL86BNT6hkc7yvNdRW5/smc9Vw171\nJ6+nhsAyLA4AjpQBjBVC6MV9YIAjr88LAgIx+AIAqMQMDACgEgEMAKASAQwAoBIBDACgEgFMrvM8\nuEYMAO4Yv5FZ81XCz26qBYCx5F+jbjyAHbvL4N1dojFmhQ0WtqRhrO1p2J4A0iAkAaShMw0qhs4s\nIcId1mYBGwhg4tC3AkAPApgs/108BADc2r8OO5WEheZ+WfQ6T8LYFCGfyVugQUXnyQxMrutiOREA\nbtm/ClGL2YuHTDs8S0dC1AGYQQDzhWVJ5yj9fj3rH+TnXvoCWPtBseG38pduM1y7galYjn6hJ9PK\nN9CEV1IWwLLnvt89W1bF6cfSmiQ7n4T57MdDofs89o+yxvI0pHluawsoC2AmLetWYhfmPIZ5RtF/\ndJd7d62Ys49TWQtg5RJitiGK2JmZ1HRZ43AiEkctmKdsv2WGyz9ToGL7qJSdAHa3uig2YgWLKwyT\nMIccxmwJ0vaV5b/YS4IbQ3+ZuA9MBIFV2aoYuTU0z5Gui2q2Tcj88nQa23J+pGwGdl1XeRVimG9V\nfyXcloEYkzBvKGg5YkGkcUvshEw+ZQHsqAUnLauFGUZeWCaNYcQzCcplAMrlBZYQPaKdkAOQIFtX\nZEXxKQLYHtuvR/J5HsitWM2I3AKVYQydCGA7SehNaC2ABEzFXiCAbSCkakoIn5itWtmE1EBkmIo9\npS+AnX8e/UogOfFDSYYNwC29kI8Y1k9ZAItXzKcXzcdfHcdR/ZUoopImJ4iuEY7X51Hf/RMCEcM6\nKQtgP4UZmPzr6aUlkEZiEsWqFzGsh777wBqqW0mJ2gtRYEX0fF+zw0OOPB+7FukeYGvKS/LaVZWp\nAFYlcDYmL0Ve0GtDl8UxTN1eiPYDmBzfN4z5WaPefbjPSZiTLW6rBerk2D8S0hzWz8MUURbA9O6F\n+KW/6P9bNlVD1Kg2DscrqjHguKMsgB3K90J8kcDOZ5Z/3BvU5yTMLTpEdWihVdauQpTpXWdRPpu8\n8USM8rdPb+Y33yoc3gTWKFPzxW1PdSd75whg073e9jDdv67/b7/fzG+1ebi6CexnIToM57CHACba\n64cQvothTjr3lNse3GFZG8AkLEMAm2vjrvNp8Hsaw2geqnWeBCWGaUSppfQFsJ8bHqq4fWGZ19Xd\nXi6WZ7/7M0fj099ZRbSKUWakLIA19kKMb1ifqjvbH/r17tsND/Fe1w6NedI5A9N4aAgk9XZ76LuM\nviGEN1Ex7JDRQbxLg6ULdodUChW58fRIxZayhHYsNnO4ESIwFcCqdu2FqLp62bvpJBzR3S10No4R\nroQqPbb2Shv9/2QngIWsj//de3ezkMXDIQz372YmK6XOdM7oBC1RkS0Di4+9ELepbkW/l4xUvORh\njaIxLVPKWJFZKhrMoOwijnCKK3vol7SRgrDkvGfpppO7QzAZp5/uInaYKGKHLLXQd/TNwBp7Id69\nYSVLi4coSZ6xue3F4JayGZhw9qKXpSFeYxNkA0cXvah7TML0stRCXyCA4QcDLaSR8qf3QpkZmgAG\nEMCGsTf9igzEsIae02CSVw6Dj4+CYxKml+3m2UYAG8Nw9AoMNxIDq4gDE686H5yz2vk06Atgjb0Q\nf26TOC1J/7xwUoF09XHfd7ZN7+mWfOxOqh9KbifQygLYz70QG7+alqT41cu+c4+PjxkT62fjF16y\no8rC8CQbVikLYG3rL6D3E70CJ4dZJfPYx9ZAYphePidh+u4D+ynbiWPeXoje6kqga5vE/vXDnh2V\npJW4t/ETZpO2KcRPpgJYyP019zWnBe2t+9AVw4azfdTOC1e17ztbqtsL0dQS4rFqFdFz9ArStSax\n9fxRwhorMNlER0iJz5t+sZAILZQFsMZeiPG/sy9EJHoFwq/peN2/CzyW0uzFQ2KYUt56JCkbt08y\ndmf6rDGbzrleYsP5uy6+/KvyLNretbWVGb63cFnDfOfjLe3J5yiIDspmYBtljVl8yS6SZoWc5cTv\nE5S7u5v3HuDiiCJ8kg0QwH7L+mVCVynr6YT08q+3tc0+R4JdlVBshuCOq+vpTV2FOBxrhv2yXSpG\nrWM8MqSLL7fbSD9q/SOMt1fCNEO4cB+iMAOrCD3UkDVDCZeiLktDmUsxG2en4ecE5VECwoHE/919\n41NPM6Gcyw45sfHirxoluyYBY5lPQ2c9kZAPH5magcXyeHHu8a4oGWk+Va5ghNvzZszJqqU2u8jS\nO6WGf53kenhTsv/5LSTwcyefnQCWXVjfjmE9Iw/zZT/V3XXYZc735/PPUlt5ZqhcVXuRADlH1G9G\nyWIs4btOD2QngN24nhYkrW6sv2H7eRz1nP3e0rYUWbWP+HUsvbVRRSX8ea/Yzc8fN0m8EE/Wtt/V\nfIOCWqjgSv9O1RlYX1OhPW3xseKJKrXvjUjU4Xw0sEuxlC2LjSkF4fHB/AyspwBkF5FLHaeXNJVa\nx5ktTYfTY8g0y8zwer1B+T/gQ6YyHsDkFwCqjBWcscPp4fCQRXGS/3aWEI9vVyECAHQxFcAAAH5w\nIzMAQCXj58C2SO9v/7sYcunaZvmsmfUpSS4EXZ0b5ef3/GRZGo6/pwJNTUCZhvWZ0EhDI1WTkuG5\nRZRfuqUyzEAAmyJ7sGn/HdYfZXvDlO12QUrK/WnW50bsF0Jbzb5xfRrSnxwLq0TaP27JhKPIh/WV\nIa2QW1rEUTSKLf1Do/qt7KPGYglxitkP1bxzXdf2ylemYXFubM+BuzSQD8fyTJDQHZdp2NI/7OqU\npmIGNkU5+vZsS25IyPwsDeUK0oIELPuuzjTQNI5NmbC++i3ADGw8zy2ztD43wkhzbymUadiSHmkz\n8sWJCZ11+t/1yjTsqgnrv3QBAthgxgY4H+3KDQnNNTvPsfjbJdTD8ozs4gRcf459VSJLw5ZykVAZ\nJnE9kZ9k+xU+Mq+5WpMbdwtW0tLg/CrExU3Dc4uofsX2PmoUAhgAQCWWEAEAKhHAAAAqEcAAACoR\nwAAAKhHAAAAqEcAAACoRwGDTmeh5c/bi7g2zPf2inyl/943nf737ZGA29kKEWS822NZ7W+TrlFf/\ncO82IkAnAhi8SDvicmPT9LkS5TurH3UVz1Xq3+8g+/P0n+WHpC/S38b3lym/+8bqsTSC3/ZdJYEG\nAhjMynrzRp9+t/FuY/IRo0Uaq7I/rE4BGzsYpXHoZ7Ap33n3+uc25NW9rwD5CGAwq3wIU+cfPlo0\nq765c9vW6pyp08Awc/dRTL8gHAEMLlS3c/34zuN+rtYZAu/mTE//9iNmYFCKAAYvBsat4MU5sMYn\nNNJZnvc6auuTPfO5ath7cW4MkIA6CjhShiUCFfTiPjDAkdfnBQGBGHwBAFRiBgYAUIkABgBQiQAG\nAFCJAAYAUMn4fWBqL7IKV9YoTTwAC+Rf4mc8gB27y+DdTTYh7A7cZ2F7RSQNEhJAGkhDfwJUjP7t\nBzBdNNQZABCBc2AAAJUIYBLtXtsAAAUIYIL8nfranQ4A0GD/mcyptp8m7RfPfoX0nieRDMA2KjpP\nLuKQJVaY6xocw5jeRdlYAWioXldFzRGCACYC0QVTpb0w1ew7opoQnAPzIq5MImQF3Q16xNrys8Kc\nZ/4/zMYMTIrZ/WlYkAztynnfTc+Cfml7aTScaqVisXo2AthmLB5iDabgU2VNOMtnlnAnIYD5EiZh\nAKZqxDOmZQNxDky0GcEmLiQCWKN6Co1m+J3BAKZiD8pgy/qhnuyZIua583zAeiGMlZMzquJrppYQ\nFYWuY18g8XwuxO1Rs1olStkGKaN3TM3AruuSf+t4ppHeBdcleqOtdozH1FOObELGVOwFUzOwqmxa\nJirCbU+Lz3Gfq0OmT5QvnZDtvSxZ1yLW4SGAiYpY0fZ6MnyrKkgWyzr2khR9j5UZJaGA0t5SRTAz\ntYSohZCKwWqSH9mtuEQv+WibPQhge/TsTLMG7cS8rKYxcJEsOyuGNoMBTOaaYUSlBFTY2FSJYZ0M\nBjD0C8M9GglwZ+PtLp7veOlEABNtWXRx0ki4eAH95JwvdNI8XyCALRU6UAlNAh4QsLVjHtZGAFtn\nYBVMbxnp+dh2R+azjzO/dtquHtw2qw7lVbJ/H5gZ1Qc0ZJ3U61AUe3OfwcwnyrpNzvw1Nk85SRKC\nGdhS7ypf/2D59bDa4eDO/CE3TuHQCapDkVUxA1vhdV9Z/mHPM2FfzKVYZ7fn57oxw3ld0gchUXAB\nM7B1XtS5dAOFn1d/ZG94NxvzE8PoAgDtCGCLfDk79XQulYWxp/zEMEAXLkrMEMCm21LV3sUw25MS\nV22+/6QpoBcBzKx3UzHGdwC0IIDNtf3OZduTqqdcbWv7s+ipG0rFHeAM195OXIU4kZDq9bSfst2t\nAz24RFMFAhgquK9Ztf7OV/jF9HsHUpJzBoG+ABafE1o+NiV9hOj2h6pQ+43REtHfXXcq/7iQiaer\nPZedsgB2nmeMTOnraHvcCliCAzAb+0spC2A/hUmYkDCmWno5ooHsbDRye+3/6Y2DYsdbwlc4t5Nc\ndmtYC2AhdGUTtfIN85jp8Q/mkdiN6PXT2Bh2amvzpgJYNThtmY3ZaHhxEmbjcMx7PXjimh3tRrXQ\ntLdUEczs3AcmKrvtdQSScvexRuIpqXd/Aml8FqKyGdh1XeVViGHBsPqrlb4/lAv47ssMDBp53j1H\nWQA7asEp/mTvtRtWewEbC4lOHizy/YmmgCL6AphMnEKwLUQ4sV38qIRRjVUzMw7rZ+ccGKYyv/2a\n6uMa2G156wGhGjOwrxi0CvdzWProcTMCB7mjaqC0O/8EZrVkklcI5mEGhgfUzcPiVgUN9JKwwWEM\nI4C9F/txekDtRk3RMErPyANVrjKNJcSXXNWSTDoJkx+8bezLXjWjCKQtJAINzMDeSG/5ct7IzQTy\n9pDfeSmvFzKcbEcbAewxM132Fyoi96SSklAB4m15k0ohvfkPishvlWMRwJ5h7lWy0c3FApV/LItT\nKD9D4BYB7AE2i8qkUVxUGBs4QclOjG0v+mWVMCvcxdSdj5RD13XCHxHAuqQVgnaVSTNEe7NJl85i\nocs5qI0pkZMJaHNVUlyF+ENaGwhdd9LFt70XsH1vveXNNBLKfVc9lFOy6OTqbjBmYLeyafi7divh\nIS/L0pBNxdKvXZOG9hnK/jSkf14t93dLNC8yIZ0IHiPOvL4riHKt+Et5umoUW9LQWUkkZMJHzMBy\nZZky5OyXXQexrIHMmKDsLXeBs8BsaM+EDNuZCmCvnwfG3T9j1U7+X8NPIlZLbUGRTXq+TCPYy6mH\n5YWaAgMt/LATwMJjLcvXxdt+fxSNcJTqhen9w4X+h5gIOeX2dDsPpZs0Nu434JyxHB6myHYC2I2r\ncxXLdjHvdV3/DCnaZfGzQ7z78C0asfk+zV21UUtV/Hn16cd8wBDNrG4XxCX/ZobbmYo61RlYs3ho\nQxI8qn7Ci+xFUxJ+RF9871gMZ84yX0tBeHwwPgNr5r7skkGFvSKzd0T/KleA4xJrzw9tZ84yH/Jf\nAeMzMACAVaY6+tdXIQIA1DEVwAAAfrATBwBAJeMXcWyRbtDydzHk0rXN7HTglpRU0xC+d0Eafh71\nxjQ0UjU1AY0kLcuEY0dliN+7sTLcpeHYURbHTc5rPAVDAJsirQErry7JNjcro8iClFQ3WKt+79Tc\nSPuF7BvXpyG8WF8r0gRsqQxHkQl33zs1DbFOlt+4Pg3Bli6ikfNKL4JjCXGK8zy3bJR5Xdf2mldN\nw+IM2Z4J1TSQCcHifJDQHZdp2NJF7OqX5mEGNkU56nSuXDlZIA4tV35pNQ3h9fpaIaG3KtOwpTJI\ns6WLsJfzBLDxCFqZ9RmSLZFtkaVhS2IkdFhbTgNH4XvT/66XpWHXMonJfoklxMEsjW6G2JUhEppr\n9cqFNSTUwzIN61N1/Tn2VYksDVuKRkJ9mIE1rvG2X94j9irExVffxW9ZXyKi0iDzKsRdFVLUVYgr\n0/Az5zVehUgAAwCoxBIiAEAlAhgAQCUCGABAJQIYAEAlAhgAQCUCGABAJQIYbDoTPW/OXty9Yban\nX/Qz5a+/sT/3gF3YSgpmvdhdW+9tka9Tfrff7pHc8ao3W2AbAQxepJOJcpPA9KES5TurH1Xur9G/\n2UH25+k/yw/JnopSvr9M+d03Vo/lLj5J2FISaCCAwaysN2/06Vkn3rOHYYwWaazK/rA6BWxsoZTG\noZ/Bpnzn3eufW/qWG1/dJR4QhQAGs8onMHX+4aMTP9U3d+7ZWp0zdRoYVIhPUIoABheqmwt/fOdx\nP1frDIF3c6anf/tRdQYGyEcAgxcD41bw4hxY4xMa6SzPex21Jb6e+Vw17FV/onFvcnjD6jbgSBnA\nOMUFvbgPDHDk9XlBQCAGXwAAlZiBAQBUIoABAFQigAEAVCKAicNpdQDoYfw+MIUXWYX7h47jUJdy\nAKbIv8TPeAA7dpfBi5tsQswdmGwJN/qQBtJAGnSlQcXonyVEWc7z2F2fAUAHApggRC8A6EcAAwCo\nRAAT4TyZfgFyaTgf5NH+U4hTSThH2uPvwo1//6kh1YALZfQKzTNrtsao6DyZgQEuhFk+XojdeDrE\njJkZXmf/xBr2L6OXr5xvXReTMECW0B7TVhkbaYhYadyKr2nFUxHAAOCNcmZ2JOuKZVQjmA2nNYBV\n12fTO+/kr94Gi2datlftgRkeNdLqemP2ggY4ir4A1r4/XEvc2ov1SZ9Ymt6inJ+FUqAsvtMXwEKI\nugtj4ecqwtiuM71xcQN+0FcKkU3LKJeP9AWwthjeYgzLQp2c2EYgAdwqT5JJ6JlU7H+YMhXAqsFJ\nTsTKtAdfM1YY4geyfAFsV54k2y7tLVUEMzv3ganIbmAv5v0CxWvxuYfsKQsBLJ73Ov+InXVF6ydA\n2Tc678hc9RTMtuW7LokTMvm0BrA0RMXX159NidKHpgK0rQz/xLCnTJ0DU2HLnVi0B0CFLIYxGm/T\nOgNzYkjgufsQt23D+ZKa89VjWEIAs6/cwy39FX2ZYdVTfeUWRxAonBWjmNoIYBt0Dv89zxLmcT79\ngi4hhhHG7hDAlnraew4ZgvXccOZB1hF4OPDq5LsxI4dY5uvqOwQwHIeP5uGwy74bu3gI3kNImK9v\nT4BkBLB13jWGsq8pN7cewkmPRncAdTgfdofL6Bf5UvnSnZ+yM/A/nzbUHzXp2QHJ2AGuZHAGJnBP\nqY8pikEr3fez8dihpxjfOUSJK8U1HSlTMzCBoSv6Mm6KfU31bPyRDM1E7WwtjbfRq7fjHU5sd0Kx\nRqZmYIb3kUqnXHdvOIrZ2NMnyYptsQAOFksKpmZgVdufB7Z4IPxlRZFFdkC+ee1U8iJWlf0AZnVO\nNo+fGGY4YPccl+HDH8Vb5qh7Hpj9ALbR3u04vbU9YCDhof3uvLg3ps6B4Tvn7QGAIgYDGGuGH5k8\nSyx8QD3Wo+KzV9bfqagt8lO4gMEAJkRoA1QyYIjqzfvtH1b//N0PZTI51nyEc2Co4PS+dv3br6jo\nARsb0MyIYdCCGdgUNnp/7vnXaMsTD9aobkDT/8PsDdUfqmu2iopvBmZg41mqT+ra81PMNbWoRqnG\nb9/98NBZ593WYWZgg5mJXtzz74fwgnbbOz8iuQTnIYCNp3Eh4o7wrq2Tnx7Qz5Ei47PcCWAj0X0A\nY9GmfvK8WEIAww+hbdhuHgaO7mMZySxlaemBNPou4og7dJU3LKebdy2+nZltXZSiiwzIB+18Xo6k\nLICd5xkjU/o6YhuOGeLDoDXmbrtrTp9z3flRkjPhddrErkFJzm1sZ20J8TzP9Zsos+kGJPhYA6nA\nUEfZDOynMAPLJmrlG/ACG2CLNWpy7HMZyozvxafiESopUwGsGpymRiyfHbq6Pm7Ik7HCG7Q18MeI\nYdp9KT51zwOzs4S4ZeXQG3X9mvm+OFw6OPwYJdRt82WH75TNwK7rKq9CDAuG1V8tSdKyrxJB9QUd\nDe2Zh73jhUkeFglSygLYUQtO8Scr45bzHs3t+TBRK2yTUmJ1jAJ77CwhLjNp0QbDvSimcvTqtri9\njeXNcFVw+mZgEEL4ON1wG46HtiDnfc6zoQUBrNfKXkMRmWuJ76JX3E4pHks1PItaRbSKHEYPlhC7\nEL1+sjHjifuiil05XFkVw1e4WpKywU+RMQP7zUlVeC2dr2Q/2UJm4Pluy0w3i2EmMxZ6EcBaaLSP\nbB/3jSqv7QdSEpIeq4MDkzwUFkuIFaGzGNJlSLibfcst3vF/u9JQepSG9uaWryPc03xIFzNH7bf5\nrixiArKSXZmGsTykoefjJeTDa8zA/hFHKzF6mR+8zFAuJ8aby+d9abp0uaYxzq4kkruUmMnzVoxp\nfaOYz0ZTAezFThzZJWcH15gNkmZgOaP9nr1lFx/P1qw0cJH57ogEyprM2JLFEMLvchnFTgC7eVRY\n/Mlx3Dz8qWx+tot8l3R6VJ0zZVcKZHPi6uxqV0ll4bmsQtUDqZJzUC80himKjsIw88NxOwHsTtpB\nVDsaw6UrxHWFyfGVNqdy8F6Gt+y3kq+FKxfWjvqBXNXlQYFH9FR7WlaMIK+jNqwUePmMdmnm3wwW\nr5vMv+R3j5WHGitVnYH9lUf4v+vvBaS5kjI6aq/ViYmvHpHqQ3vkS/fiIX/WeFoKsYpKD2DGZ2Bx\nm9/4g10pwS9Xx2t1qhWP2tiJ/NlFTc5zGT0AQCU7S4jHq6sQAQBKmQpgAAA/jJ8D2yK9s/3vWpLV\nU8PkMpbKA6zXJKZMw7EwQ7KvWJ8PjW9spGpZGuTkw/oKWaZqbxqOVfnwswaqW8QigE2RFv/NDWqz\npHW0/Oo1iSk3p9mSIWmb3JIPMQHVh4avT8Ou+tDIh2WVodEu7tIzNQ3B+nxo1MC79EjGRRxTnOe5\na4ex67q217wyDeszREImlD9cnA/bM+EuDYvzQUJ3XE3D+naxsWuagRnYFOWQ07ldGRLnGSu/tExA\n/Of6fJDQW93NPCSkba/1+WCsa2IGNp6NmjHQlgwJI82NZVEmYEtiBM7I1w9isv+uV03D+nLZXhOG\nI4ANxqAyszFDtjfX7HzD4m+XUBXLNKxP1fXn2FclyjT4rA/DGZlIirLxwr80DbuuvpOQhqytVi/x\nmpqGMgHVb3R+FaKEKwBdpUFOWYxCAAMAqMQSIgBAJQIYAEAlAhgAQCUCGABAJQIYAEAlAhgAQCUC\nGGw6Ez1vzl7cvWG2p1/0M+Wvv/FRBgJbsBcizHqxtbbe2yJfp7zxh3pzA04QwOBFOpMot/M5k8eL\nlO+sflS5wcfPfQ2yT67+s/yQ9EX62/j+MuV331g9lrtAFQ+z+ltgOwIYzMp680affrfrbmP1LEaL\nNFb1PF2psWdPGod+BpvynXevf26+V9346rjJHEAOAhjMyrrd/nM5j876VN/c+QyX6pyp08CgUv0o\nghbkI4DBheomqh/fedzP1TpD4N2c6enfflTd+5gABvkIYPBiYNwKXpwDa3xCI53lea+jtj7ZM5+r\nRqbqT9RtTA6HGGcBjpQBjMkW9OI+MMCR1+cFAYEYfAEAVGIGBgBQiQAGAFCJAAYAUIkABgBQiQAm\nxXkeXBEGAP2M38is5yrhZ7fQAsBs8q9RNx7ADgFl0HOjaAhbYTuFXWmYTUIahCSDNIhKBmmoJkPF\nYJolRCmuiyVEAHiAALbfeR4Cxl4AfggnqsuBJkPPXewvIQLAWNUYxjB0PRELr/MIWVluyOo9zQCQ\nrNpCGzMwvc1Zfud5MAMDgE5348vqD0NUS67PwngEsJ3K9hAu5aC6A9plKyt3v8IXXMQBAHNd1z//\nC7joYxRmYNsw0wIUGdJgyxhGJ/CFqQBm4yHorCIC5hHJhrC2hHhd13Vd8u8h3xii2HTRM0pfGtYV\nvzA1A9My8aKmAojSGKakD5PCVAALstsXstnY9iDXE73mrSKGjyWCAo+sCS2xbe5bnlHWNZgKYCH3\nsxC1PWIJxGk2nxi+yBda5a4TY42hv0wGz4HtTsJv6QW1KxG0cLBttAa00052AlgYL5x/difnq+G9\nTBa93PZibq9iYPgCe+wsIaqYe9GJAOpsabZxLZEeo8HODAwN1WbgdhLmEPNvpSipNgLYOk8HU6Pq\nLoM4QC9iWAMBTLqpdZe24QEjGO1op3cIYIu86ERilX1dd8MFC3ReGboD9BPSgqi0VQSwFd61gfAn\n4Zr79FnmY+uxq4YhpDNaqfEIKz/lbkPsBxDZuQrRpNj1ZBumtW/Xp4oD8IAANt3YUX+62cxdoHr6\ndWzMYRLPAv5OWrvg2voMAUyfclp2jOitXLUKYvZBJkA/zoHNtayD2LU9lSJ01rCB85cRAWyiGddc\nTBIvFYElBGyraK0BAWw6OhGsx3TzO/JQPgLYXLoagKthnauDvUMm3JGfLZTdQQCbh+EboJ3wCEEM\n4ypE/IfVK9NMHtQdVwc7HLcfKMIMbAp6EGjBKD6KW68palUs8Q0AAAVKSURBVLzOi48ANp726OWn\nSfg5UjOqeykN+aG60JVyW40NLiGe56ni4ZaSWV1I9MBDwVX7648/hEamAtgpoGJ66D7UoVB+UpRF\nWtK5jOeFBFNLiNd1MfcaxXOr0EtRHHrB9tF94ba1mpqBVWXTsqkRzl4Ds3dEGRZLgUjCItYj9gPY\nmjkZl95CL/Y4N2DIUCztLVUEM1NLiNtpKPEHbGyQ6Kdftn2kto8O7xDARqKBQS8DgxV4YzCArb+O\nQ/UdJD+Z79fMH6ABTL96OKzJBgPYYh6alsOGoc6QekhBQxcCGLoo7do8DC+OoSdfBRa0k0IcQmDx\nTUUA+8RV0/LWNgAIRwB7z1X0Mk9vbB5+CpaRCrQggL3kM3qFro3eDcv4bGhfuBp/EMAeixtXe6ai\nhfQnUu8db5OqotLcgDcEMOAf6uaXswdS27OCkeI7fsYf9reSGstJtWiIHYrwzuVd8n5uqiRnz7A1\n+S+8lOEcM7AH4tlymvQhe5T3sdutHpqoyZmHuCInt5XykIHMwHp56DKeih29vZwpY1h6jB4qg5ap\nNjwjgHWhDd+Ja26HmDA2trCqH7XxISzrs3rLwdLiPnLyhAECWEscg9uuBKNIaC0D07D9WEq7FoUW\nT7UlVCSowDmw32hL/fYuu6/s+NafAtx7CjbeaeDhzIoZkk9UD8EMrE7Umph82fmhY0fWrR+2L1tb\nk1Ybpx4106+xbD9znBnYv8LoMt6nPKrIJTzYdGUa0qF6OmCfmob+zx6bjHcj3M40zKiNT9OQCckY\nOBXLkrGlqzXfQvtrqYSseIQZ2D+kDXK1S9vMvF5JW3PrlR6XtDoZY9hR5L+0pMI8UwEsDh/az7SM\nscpq9ydEunZxnsdxXEP6ZWmd+5ALHJRGgiyMfRypGF7p2s7qQqKdAHaeZ4xbyesrFFv1vlR7xSlN\nzOHr+qdQ0s4ufVs1BjRGGALLLrtm9e4S1moOVN+pRTFSyX/bg/Y42/MYpqA8zvZkRZFqAEuaU9qw\nruIn2KtdCeWXVFajOtuU/OP64kXHYjtDJHhcKMLjg50ZWFWS+2U5yC4Z/EtLSeXprA54kx9qOa6R\nGlNtM4NpsZqZX/mhfMYDGLDR3S4enpEnG/VnvpYS4TJ6AIBKds6BHd1XIQIADDAVwAAAfnAObIr0\nhvbrutZPDbNrMtNvX5mY5HLQ/2TImmT8PPD1aTg21Q2BWbGlSsSUbG8d1TSsTMbPeqhiQYsANkvt\nprT/vJ6k2JsnbydrElPuSZN+17I8SbuD7BvXpyF+xZa6ITArtlSJtGbSOu6+cXGv9RoXccxynueW\njcWu65JQ28pkrM8QIflQ/pCsCNbng4S+uJqGLd3Frj5qIGZgs5TrJM6VE5E14ohy5ZdW0xD/uaVu\nSKiKWRp2VQmBtmSFgT6KGdgUNMjMlgwJA8y9ZVGmYVd6JEzN0zSsT0zoqdP/rldNw5Zy2V4ZhiCA\njad6RDPDxgyR0Eqz0xvrEyChQpanZten4fpz7B5GpGlwWyWGYPI+xcYL/2ICtl9nlSZj/TVO5WqV\nhDSUX8pViOsve5PQOhppWJMMOcXxBQEMAKASS4gAAJUIYAAAlQhgAACVCGAAAJUIYAAAlQhgAACV\nCGAAAJUIYAAAlQhgAACVCGAAAJUIYAAAlQhgAACVCGAAAJUIYAAAlQhgAACVCGAAAJUIYAAAlQhg\nAACVCGAAAJUIYAAAlQhgAACVCGAAAJUIYAAAlQhgAACVCGAAAJUIYAAAlQhgAACVCGAAAJUIYAAA\nlQhgAACVCGAAAJUIYAAAlQhgAACVCGAAAJX+H/9UfMSuqgYOAAAAAElFTkSuQmCC\n", "output_type": "display_data"}], "prompt_number": 19, "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo2()"]}, {"collapsed": false, "outputs": [], "prompt_number": 20, "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": ["Should be 0: 0.000.\n"], "output_type": "display_data"}], "prompt_number": 21, "cell_type": "code", "language": "python", "metadata": {}, "input": ["fprintf('Should be 0: %.3f.\\n', (norm(f-f1))/norm(f));"]}, {"source": ["Haar Linear Approximation\n", "-------------------------\n", "Linear approximation is obtained by setting to zeros the\n", "Haar coefficient coefficients above a certain scale $j$.\n", "\n", "\n", "Cut-off scale."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 22, "cell_type": "code", "language": "python", "metadata": {}, "input": ["j = J-1;"]}, {"source": ["Set to zero fine scale coefficients."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 23, "cell_type": "code", "language": "python", "metadata": {}, "input": ["fw1 = fw; fw1(2^j+1:end) = 0;"]}, {"source": ["Computing the signal $f_1$ corresponding to these coefficients |fw1|\n", "computes the orthogonal projection on the space of signal that are\n", "constant on disjoint intervals of length $N/2^j$."], "metadata": {}, "cell_type": "markdown"}, {"source": ["__Exercise 3__\n", "\n", "Display the reconstructed signal obtained from |fw1|, for a decreasing cut-off scale $j$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\n", "output_type": "display_data"}], "prompt_number": 24, "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo3()"]}, {"collapsed": false, "outputs": [], "prompt_number": 25, "cell_type": "code", "language": "python", "metadata": {}, "input": ["%% Insert your code here."]}, {"source": ["Haar Non-linear Approximation\n", "-----------------------------\n", "Non-linear approximation is obtained by thresholding low amplitude\n", "wavelet coefficients.\n", "It is defined as\n", "$$ f_T = \\Hh^* \\circ S_T \\circ \\Hh(f) $$\n", "where $S_T$ is the hard tresholding operator\n", "$$ S_T(x)_i = \\choice{\n", " x_i \\qifq \\abs{x_i}>T, \\\\\n", " 0 \\quad \\text{otherwise}.\n", " }. $$"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 26, "cell_type": "code", "language": "python", "metadata": {}, "input": ["S = @(x,T) x .* (abs(x)>T);"]}, {"source": ["Set the threshold value."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 27, "cell_type": "code", "language": "python", "metadata": {}, "input": ["T = .5;"]}, {"source": ["Threshold the coefficients."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 28, "cell_type": "code", "language": "python", "metadata": {}, "input": ["fwT = S(fw,T);"]}, {"source": ["Display the coefficients before and after thresholding."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAAVvUlEQVR4nO3d4ZKi\nPLcG0HDqu/9bzvlBty8DAbFBYO+sVVNT3bbCNiKPCRiGWmsBgGj+7+4CAOAvBBgAIQkwAEISYACE\nJMAACEmAARCSAAMgJAEGQEgCDICQBBgAIQkwAEISYACEJMAACEmAARCSAAMgJAEGQEgCDICQBBi9\nG36t/XXnjfsfvt/r4eMPHxV5ejHwNP+7uwC40zAMtdblzy/LW9ZuvMDaeu+qB+7VeMdCJ5aJNd4y\n9lTGP01vGY2/vv46u33663IVrzvMHr7969TaPadrf1vbbGkQlB4YNMxSZ9pLa95zmnnNuzWXs7z/\nNJBmSfkKoWavcRm6y9peC5Fb5CDA4DT7DzKtdYk+PUy17EF+tGpJRmgCjH7NuiMHuybbHbXlnZv1\n7Hx4c6U7H37iU4Z7CTC6tqc7stZbWtq+28ZhquavH9W8s1+1PKQHcfn8BR/QZYHn0AOD9xw0ggfy\ncRKAkMzEAUBIAgyAkAQYACEJMABCSn4W4jAMtZShlPH/0fTnsnlj0/577nT6Ar8kSp1RaE8e7vmn\n+CUPsFGttUy/vtP8Ks/+7/d88k2gXV8b+vJXi0776tKB5dz+9anbC2jUcEdJt7fD7QWoYWcNIb7t\nbggRgJAEGAAh5Q+wodRSSpn2lJu95v3d+dM7/nePJOwVpc4otCccc/847ImalxOMcCQS4FmecJTu\nrWwncTy/xQE4RbYhxGEYQpw8A8BBOXtgs87vcmgRgJlwn/5T9cCa4VTLUGutpdRaf+7QfJH2v3Kn\nv8ZRNpoodUahPXmYOnF3LbvkCbBwnx0AOCLPEOLOS6oDkEOeACtyC6AneYYQAeiKAAMgJAEGQEgB\nJgs5wlRSAH8QYiopPTAAQuoiwHxDDCCfLgIMgHwEGAAhpQ+wWstQyr/DiOZC/JsodUahPeGY9AEG\nQE7pA8yHXICc0gcYADklDDDXVQHoQbYAk14AnUh1OZVx7pO1DBtvf/7kKAC3CNcBSBVgbeOJ9NPg\nambY/mA7PQKjZGqUOqPQnjzMdDcZIszyDCGOzT39H4DE8vTAXp8dQkyiDMBBeXpgAHQlYYDpfgH0\nIGGAzQ3mQjxJlDqj0J5wTAcBBkBGAgyAkAQYACEJMABCEmAAhCTAAAipgwAbvxY2/XKYuRD/Jkqd\nUWhPOKaDAAMgIwEGQEgCDICQ8sxGXyZXUTEdIkB62Xpgtdb5RZnNhXiWKHVGoT3hmFQBpuMF0I9U\nQ4hl81rM45+EHEBTuGvZZwuwMZ+aL4PoAtgw3UmGCLM8Q4ghmhuAs+TpgU3P3dDZAkgvT4AVuQXQ\nkzxDiKvMhXiWKHVGoT3hmA4CDICMBBgAIQkwAEISYACE1EGAmQvxLFHqjEJ7wjEdBBgAGQkwAEIS\nYACEJMAACEmAleJoOkBAAgyAkFJN5tuejb7WMryfC3HYPzOduRA5hfaEY7L1wGqt0+uqAJBVqgBz\nORWAfqQaQhwNw7C4MLZrXQK8EW7sKlWAja0/i6ha6zDILYA3Fh/9ny7VEGJpdrD2zYVYi7kQ34lS\nZxTaE47J0wMbPy8YKgToRJ4Ak1gAXck2hAhAJ7oLMMcdAHLoLsAAyEGAARBSBwE2ntwx/X5Dac+F\n+NkCTxTl9JModUahPeGYDgIMgIwEGAAhCTAAQhJgAITUQYAt5kJsTntoLsT3otQZhfaEYzoIMAAy\nEmAAhJQwwEJcxgaAg/LMRl9EF0BPUgXYeEWVtRj7vf2z6Q+GwYQJQBfC9QFSBdi233j77xbhBPAy\nvapiiDBLeAxszlyIZ4lSZxTaE47pIMAAyEiAARBSwgCrRmYAOpAwwE4X4VgmQHc6CLDJXIjjaYc7\n50JczS1zIXIK7QnHdBBgH1rM/dv469qvAFym3wBrZs92IIkrgOfoN8AACE2AARBSpwG2MRhYq6FC\ngAA6DbBzDYODZzyRDY/cOgiwWmv9Z6rDR82FOAyfrPpej/mGeJL98pfbM0krwboOAmzFV/ceb/tk\nr7udXsbOLwAARNdvgL21djDsdWO4SPhzwdc/8FGrAJ4pVYANv763ilmHaf8ZH8eL2nOkbaP79eeu\n3vMT4vkVAt+QJ8CGYai/rr8U2x/OXdwTKstlXvzMHnvNzyPtIPAeaOeoO0zlCbBVw1D+nepw51yI\ny8X8XBrz3T13egXD9gJfU1vV+vOQ7ff5RpR+lLLjDuWf9PpwBzM+vJnBs39/WOzn5cyrumZ3ufVM\n7bAX1gbtv9pUf9sOeYL/3V3AFYZhqD9XyN7Vm/jbV8HGR631V6bLXN5z/NPaY6fFNPfdyweuLXD2\n1DZ+nT72p+CV/ctH/cjF9bE/2HcsS2quYk95OyNwe0vYuZ0sX+if28+IsOaz29kyt1sOyJeVbfvc\nb2c23xfLVR9fy8EF3v2d1EeOvfyriwCrtZZhqLWetTWsBdVrg3u9H5ZZ1dwop++fPYfZlvvEaXfn\n9de1Bb7+Oq2t0eWaPar117fxs7b7bt5hw7K87U8My5Wu7bb2r7G55I+GWP/t0Z4wPHukSW+39mlp\ndp/lh56DK90YojjLxlZ32RIO2v+J/0ZdBNgffHujedst2Ll3Lv8m3J/PMfn0ztNHXWNn13PtgeVP\nefN8oZ/O9KXZ+uT0nZV+1d2dp17kOQY2nrsxOvGizEeWtLYRby9zuaf+Rg23uLeY10HE/feHuzzq\nnftYqXpgJ+bWuxV9d9v69Hmc9bwv+3B65LGPelcLuVNkbcbjzytry5wlTw8st4M7ff5mT18ZuEsH\nAVZrKV+cC3H/Xmz1nt/fEZ6zhmfssJ9RxRnyPBMavLwX6CDA9tkYm3p7HuDGlrp2BuATPKoYYMY7\n9C0BBkBIXQfY2zMCtrtZOz8fPflj1PW1Pbk1gFi6DjAA4uogwPbNhfhztz39g9PP437UieEbotQZ\nhfaEYzoIsGsZIgO4hgADICQBBkBIAgyAkAQYACElDLDh8wsHAxBOqtno29H1Oxfi6/TA9rSHtX12\n/doCD/z9+ANuEqXOKLQnHJOqB1Zr/dIVVexqAJ4mVQ+s6bdbVt9eIVtKAT379PjL7aIG2KyhNzpe\n459+5tkQUQArprvIEGEWNcBkEUDnUh0Da/tkLsT9CzxThE86pcSpMwrtCcckDLA9nTP9N4DoEgYY\nAD0QYACE1HuAGUsECKr3AAMgKAEGQEgdBNjvXIivG1bnQvxkgWeKMo4Zpc4otCcc00GALcz2G3Yj\nABH1GGAAJCDAStEJAwhIgAEQUgcBtpgLsT0HnbkQ34pSZxTaE47pIMAAyChVgA2/7i7kP08oRg1P\nKEANDylADY+q4aBUAVZKqbXWWhO8MABsSxVgrnIJ0I+oV2TeMAzDLMmGYagrfwJgFG7sKuoOfdbQ\n47MYb5w+ozG6hlLG/3/uXBqXZG7e2LT/njudvsAviVJnFNqTh3t+OkQNsCYdLIB+5NnjN/tkAGSV\nJ8AA6EqqsxAB6IcAAyCkhKfR3256NG56emS56sjc9GSW2aovq+RVw/WtsVz+nlsuq2G88YIX4u1L\nf2MNG1V9qYye3xHLld6yMXyDAPuK+an8k63k22/U2a+zDfSCSpZfJbm+NV77hfG9Olvj9TVMbykX\nbhLNr5dc2Qhl0Q7XbwzTDfKWd0RZvClu2T9sbH5X7qPOZQjxK+6aknGcSev69W7XcHFr3N4CazVo\nh3J5Izxhd9ycWuH6/cPT5ok9hR7YVyw/fffsltZ4QuPPaliOIF1QwGXr2lmDt0a5qRGu3/wuoAd2\nvp7fmUvXt8b4SfPeV2FZwy31PK1HfnEx4856+v/1ljXctSVcv9ILCLCTJfuAc9BdrfGEt+vsOMfF\na3/Cdrg8IntxAfVXuW+TmNVwy+vyhI3hS7ruyH/J7Wf4PPOcq2taY23A6mk1dH4W4sVvjZ7fEc1V\n3L6POosAAyAkQ4gAhCTAAAhJgAEQkgADICQBBkBIAgyAkAQYACEJMABCEmAAhCTAAAhJgAEQkgAD\nICQBBkBIAgyAkAQYACEJMABCEmAAhCTAAAhJgAEQkgADICQBBkBIAgyAkAQYACEJMABCEmAAhCTA\nAAhJgAEQkgADICQBBkBIAoy0hoXxxiML/OgOn97/z/Usf/jbWg7WAxf7390FwLfUWscfhmF4/Zxb\n82l28tzpkACjO69+xrhnH3+ttTZvn94ye+zs/svlN1e3vMN2Ydtrn/a9xhubT6RZ7ewJLnuoko+H\nE2B0p5lPrxgrkx7bcg/+usO0V7fx83Kxszu8lry8fbbMjUW9Lab57MpKhMstohBg8J9mqpXD+/RP\njy1NV31kUdtdw7erlmQ8nACDH7MO0Fq35uBi91i756eLWna23j72rGcNFxBgUEqr57HRDWref3n7\nR4vdOAi3fOBGrjTv9lG/yrmIROETFgAh+R4YACEJMABCEmAAhCTAAAhJgAEQkgADICQBBkBIyb/I\nPAxDLWUoZfx/NP25bN7YtP+eO52+wC+JUmcU2pOHe/63hJMH2KjWWqaT4jQnyNk/a84n8+vsmozn\nyxP2nDYh0IHl3D4p0e0FNGq4o6Tb2+H2AtSws4YQE7IYQgQgJAEGQEj5A2wotZRSpj3lZq95f3f+\n9I7/3SMJe0WpMwrtCcfcPw57ouXFZIdhiHAkEuBZnnCU7q1sJ3E8v8UBOEW2IcTXRdwByC1nD2zW\n+V0OLQIwE+7Tf6oeWDOcahlqrbWUWuvPHZov0v5X7vTXOMpGE6XOKLQnD1Mn7q5llzwBFu6zAwBH\n5BlCrLW+MizKxwcA/ixPgBW5BdCTPEOIAHRFgAEQkgADIKQAk4UcYSopgD8IMZWUHhgAIXURYL4h\nBpBPFwEGQD4CDICQ0gdYrWUo5d9hRHMh/k2UOqPQnnBM+gADIKf0AeZDLkBO6QMMgJwSBpjrqgD0\nIFuASS+ATqS6nMo498laho23P39yFIBbhOsApAqwtvFE+mlwNTNsf7CdHoFRMjVKnVFoTx5mupsM\nEWZ5hhDH5p7+D0BieXpgr88OISZRBuCgPD0wALqSMMB0vwB6kDDA5gZzIZ4kSp1RaE84poMAAyAj\nAQZASAIMgJAEGAAhCTAAQhJgAITUQYCNXwubfjnMXIh/E6XOKLQnHNNBgAGQkQADICQBBkBIeWaj\nL5OrqJgOESC9bD2wWuv8oszmQjxLlDqj0J5wTKoA0/EC6EeqIcSyeS3m8U9CDqAp3LXsswXYmE/N\nl0F0AWyY7iRDhFmeIcQQzQ3AWfL0wKbnbuhsAaSXJ8CK3ALoSZ4hxFXmQjxLlDqj0J5wTAcBBkBG\nAgyAkAQYACEJMABC6iDAzIV4lih1RqE94ZgOAgyAjAQYACEJMABCEmAAhCTASnE0HSAgAQZASKkm\n823PRl9rGd7PhTjsn5nOXIicQnvCMdl6YLXW6XVVAMgqVYC5nApAP1INIY6GYVhcGNu1LgHeCDd2\nlSrAxtafRVStdRjkFsAbi4/+T5dqCLE0O1j75kKsxVyI70SpMwrtCcfk6YGNnxcMFQJ0Ik+ASSyA\nrmQbQgSgE90FmOMOADl0F2AA5CDAAAipgwAbT+6Yfr+htOdC/GyBJ4py+kmUOqPQnnBMBwEGQEYC\nDICQBBgAIQkwAELqIMAWcyE2pz00F+J7UeqMQnvCMR0EGAAZCTAAQkoYYCEuYwPAQXlmoy+iC6An\nqQJsvKLKWoz93v7Z9AfDYMIEoAvh+gCpAmzbb7z9d4twAniZXlUxRJglPAY2Zy7Es0SpMwrtCcd0\nEGAAZCTAAAgpYYBVIzMAHUgYYKeLcCwToDsdBNhkLsTxtMOdcyGu5pa5EDmF9oRjOgiwDy3m/m38\nde1XAC4jwP6xHUjiCuA5BBgAIQkwAELqN8CMBwKE1m+AHScCAW7UQYDVWus/Ux2aC/GPotQZhfaE\nYzoIMAAyEmBztRobBAggVYANv85b4JthHmkHcJc8F7QchuE1je/0ZwBSStUDaxuG8u9UhzvnQtxe\n4JmidOKi1BmF9oRj8vTANgzDUH+ukP3qor1/1Gx4cPy51lKGNzMifjquWIPsyqLUGYX25NkCDGJ1\nEWC11jIMtdbp/mIjZl6jj7NhyObts/u8lvnBEOa7I21PEaXOKLQnDzb9xP9YHQwhApBRnh5YrfV1\n/qEzOADSyxNg5XBunXVA4u3J9wAcZwgRgJA6CLBaS3k/F+IHnSZzIXIK7QnHdBBgAGQkwHZxWAvg\naboOsJ3fOBZdAA/UdYABEFcHAbZvLsSfu+3pbJkLkVNoTzimgwC7lvFGgGsIMABCEmAAhCTAAAhJ\ngAEQUsIAGz48ucu5YAARpZqNvh1dv3Mhvk4PXJ0LcWeSvTvR8OMTEaOcuRilzii0JxyTqgdWa/3S\nlcDsagCeJlUPrOm3W1bfXiFbSgE9+/T4y+2iBtisoTc6XuOffubZEFEAK6a7yBBhFjXAZBFA51Id\nA2v7ZC7E/Qs8U4RPOqXEqTMK7QnHJAwwnTOAHiQMsD1kHEB0nQYYANH1HmC6YgBB9R5gAAQlwAAI\nqYMA+50L8XXD6lyInyzwTFHGMaPUGYX2hGM6CLCF2X7DbgQgoh4DDIAEBFgpOmEAAQkwAELqIMAW\ncyG256AzF+JbUeqMQnvCMR0EGAAZpQqw4dfdhfznCcWo4QkFqOEhBajhUTUclCrASim11lprghcG\ngG1RL2jZtHYhlWEY6usHZxwCtIT76J8qwEbLlKq1/pzKIb0AVkz3kCHCLGqPZNa447MYFik19r2G\nUsb/f+5cGpdkbt7YtP+eO52+wC+JUmcU2pOHe346RA2wJiOEAP3Is8dv9skAyCpPgAHQlWyn0QPQ\nCQEGQEgJT6O/3fRo3PT0yHLVkbnpySyzVV9WyauG61tjufw9t1xWw3jjBS/E25f+xho2qvpSGT2/\nI5YrvWVj+AYB9hXzU/knW8m336izX2cb6AWVLL8+cn1rvPYL43t1tsbra5jeUi7cJJpfL7myEcqi\nHa7fGKYb5C3viLJ4U9yyf9jY/K7cR53LEOJX3DUl4ziT1vXr3a7h4ta4vQXWatAO5fJGeMLueFnD\nLfuHp80Tewo9sK9Yfvru2S2t8YTGn9WwHEG6oIDL1rWzBm+NclMjXL/5XUAP7Hw9vzOXrm+N8ZPm\nva/CsoZb6nlaj/ziYsad9fT/6y1ruGtLuH6lFxBgJ0v2Aeegu1rjCW/Xe6eVe8J2uDwie3EB9Ve5\nb5OY1XDL6/KEjeFLuu7If8ntZ/g885yra1pjbcDqaTV0fhbixW+Nnt8RzVXcvo86iwADICRDiACE\nJMAACEmAARCSAAMgJAEGQEgCDICQBBgAIQkwAEISYACEJMAACEmAARCSAAMgJAEGQEgCDICQBBgA\nIQkwAEISYACEJMAACEmAARCSAAMgJAEGQEgCDICQBBgAIQkwAEISYACEJMAACEmAARCSAAMgJAEG\nQEgCDICQBBgAIQkwAEISYACEJMAACOn/AS8o8IygL6ydAAAAAElFTkSuQmCC\n", "output_type": "display_data"}], "prompt_number": 29, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "subplot(2,1,1);\n", "plot_wavelet(fw); axis('tight'); title('Original coefficients');\n", "subplot(2,1,2);\n", "plot_wavelet(fwT); axis('tight'); title('Thresholded coefficients');"]}, {"source": ["__Exercise 4__\n", "\n", "Find the threshold $T$ so that the number of remaining coefficients in\n", "|fwT| is a fixed number $m$. Use this threshold to compute |fwT| and then display\n", "the corresponding approximation $f_1$ of $f$. 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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\n", "output_type": "display_data"}], "prompt_number": 30, "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo4()"]}, {"collapsed": false, "outputs": [], "prompt_number": 31, "cell_type": "code", "language": "python", "metadata": {}, "input": ["%% Insert your code here."]}, {"source": ["The Shape of a Wavelet\n", "----------------------\n", "A wavelet coefficient corresponds to an inner product of $f$ with a wavelet Haar atom\n", "$\\psi_{j,k}$\n", "$$ d_j[k] = \\dotp{f}{\\psi_{j,k}} $$\n", "\n", "\n", "The wavelet $\\psi_{j,k}$ can be computed by applying the inverse wavelet\n", "transform to |fw| where |fw[m]=1| and |fw[s]=0| for $s \\neq m$\n", "where $m = 2^j+k$."], "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": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAAQOklEQVR4nO3d3XKj\nOpgFUDR13rv95swFExcDNnESkLTFWhen0pxU+2tZsJH4UZnneQKANP/TugAA+A0BBkAkAQZAJAEG\nQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZA\nJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQKT/Whdw\nrVJK6xIAIs3z3LqEbwweYFPr76CU0rwTnFhDKdPv/qbm7dC8ADVUKKA8yvz4/i9v3ggRNUSc/bdv\nxEs17yXNCzixhuv6c4UWGumLiK7hugLK46oO+kko/lTzL+LbGnqo8FuugQEQafwpRE73i9Oyd2dz\nCbMUhPl2wPTh2OK6IR1nMQK7Vg9jcDX0UIAaOilADV3V8EcCDIBIAgyASHkBVr4c/ELNegBoIuwm\njvXV1/2VWNEFcB95I7AD8zwPcFkSgE+EjcB+YTMsk3AAL8VNYo0fYBIL4BPro2VEmA01hQjAfYSN\nwOZ5fp4XHNzNAcDwwgJsejUluNkizOC2rnjxLt0yhQhAJAEGQCQBBkAkAQZAJAEG8IL7QfonwACI\nJMAAiCTAAIgkwACIJMAAiBTwKqn9yw9fbl+/O9nbpACG13uAvVuC+eXPcqsCbQx0YqgpxFJKxBo2\nAPxd7yOwH3nOJR4sy2aUBvBS3ABgnAB7l0wSC+ATVmRuI6KtAThR7yOw/RLMywzhy+3rPwIwtt4D\nbHq/4LKFmAHubJApRADuRoABEEmAARBJgAEQSYABEEmAAfHKw5OgdyTAAIgkwACIJMAAiCTAAIgU\n8Cqpz3kdIsB9jBNg79ZrBmBI4wTYOxZauaGML/1fRJWcLOaO/3+tC/iAa2C0d27eZKQX8Gfjj8BM\nJd5W91997/VxqfnRdQcopUyP1kV8xwgMgEjjjMD2azQDMLBxAmySWwB3YgoRgEgCDIBIAgyASAIM\noLbO76FPIcAAiCTAAIgkwACIJMAAiCTAAIgkwACIFPAqqXdvONxsL6tVNLxTCmB4vQfYu3WWX/4s\n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\nQz/cX5GtXMD8ZWrXJTY1NPleeugMF7n1QP4ize/w6fOeqzqt8W7Cqrcabn4XYuVd4857xMuPaH6M\nOosAAyCSKUQAIgkwACIJMAAiCTAAIgkwACIJMAAiCTAAIgkwACIJMAAiCTAAIgkwACIJMAAiCTAA\nIgkwACIJMAAiCTAAIgkwACIJMAAiCTAAIgkwACIJMAAiCTAAIgkwACL917qAa5VSWpcAEGme59Yl\nfGPwAJtafwellOadQA09FKCGTgpQw4c1RJz9jx9gnOhdl269J8JUHm8PuPNDBx2Ta2B8KuGEDLgR\nIzB+bD3ekmr05jneOhiTMQYjMAAiCbBrNb9Oq4ZOClBDJwWooasa/kiAARAp7xrY8+bO/enDwf8C\nYDBhAbZ+cOHlQwzLlh6esQDgUkNNIQotgPsIG4F9YjP82jxPLuQAXop4+8baUAG2tP4moiQWwCcO\nTv37NNQU4iSuAG4jbAQ2z/P+VsNlznDZ7kZEgJsIC7DpVTItWyQW4L29tzLaFCIANyHAAIgkwACI\nJMCAMbkeNjwBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQKS8ACtfDn6hZj0ANBH2LsTjFZlFVwVeOQl0\nIm8EdmCeZ6/0BbiJsBHYL1iRGeATcZNY4weYxAL4hBWZAaCGsBHYwYrM7YoCoIGwAJver8h88AsA\njMcUIgCRBBgAkQQYAJEEGACRBBgAkQQYEK88Ap665XQCDIBIAgyASAIMgEgCjBMkvPYTGE3eq6QO\n7F+TCMCoxgmw48WaARjMOAH2jtmtJjT79/5pozbcc/+Rf60L+IBrYJxPegEVjD8CM5XYkMY/pHUa\nmx++grdKKdOjdRHfMQIDINI4I7CXizUDMKpxAmySWwB3YgoRgEgCDIBIAgyASAIMgEgCDLgjD4EN\nQIABEEmAARBJgAEQSYABEEmAARApL8DKl4NfqFkPAE2EvQvxeNll0QVwH2EBdmzJs02Mbf7ohb8A\nL8WNAYYKsJckFsAn1kfLiDDrOsAMngB4p+sAk1gAvBN2F+Ky7PJifTdH26qAnpWHQ8SYuh6BvbQf\nlm22GLcB3EHYCAwAFgKMqxgJA5cSYABEEmAARBJgAEQSYABEEmAARBJgAEQSYABEynsTx/PFUfs3\nbhz8LwAGExZgxwtaTqslwWQYwNiGmkIUWgD3ETYC+8Rm+GVRMYBPxK3s0XWA/TR7lt/3cnrgHUur\nHLAi85l+kT3iCuAmug6wvWVBy+fPyw/LnOGy3Y2IADcRFmDT+wUtJRbArQx1FyIA9yHAAIgkwK7V\nw508auihADV0UkAnemiHHmr4IwEGQKS8mzjoU/7JHCPz+NeQjMD4E/d+0rP5oYOObPCX3g4wyQvQ\nRP/pMHiAATAqU4gARBJgAEQSYABEEmAARPIc2PnWtz4u98hUfkf+eknPzUdXq+RZQ/3WeLlewbdb\nqtUwvVlU4eoa6jfCQQ0HVV1Uxp33iP2HNukMVxBgl9isC7dZ+eW6z908NrDfbytUsn90oX5rPI8L\ny766X3mncg3rLVPFLrE+PjZphGnXDvU7w7pDNtkjpt1O0eT4cND9ah6jzmUK8RKllCaPoM3z3Lzz\n7Wuo3BrNW+BdDdphqt4IPRyO9zU0OT60OihdygjsEvuz7ztr0ho9NP6mhv0MUoUCqn3WhzXYNaZG\njVC/+1VgBHa+O++Ze/VbYznTbPst7GtoUk9vI/LKxaxXaW914N7X0Kon1P/QCgTYyQY7wfmjVq3R\nw+66uc5R+dN76If7K7KVC5i/TO26xKaGJt9LD53hIrceyF+k+R0+fd5zVac13k1Y9VbDze9CrLxr\n3HmPePkRzY9RZxFgAEQyhQhAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEG\nQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZA\nJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZAJAEGQCQBBkAkAQZApP8Fs/oRtKXv7c4AAAAASUVORK5C\nYII=\n", "output_type": "display_data"}], "prompt_number": 32, "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo5()"]}, {"collapsed": false, "outputs": [], "prompt_number": 33, "cell_type": "code", "language": "python", "metadata": {}, "input": ["%% Insert your code here."]}, {"source": ["Bibliography\n", "------------\n", "\n", "\n", "\n", "* [Haar1910] Haar A. [Zur Theorie der orthogonalen Funktionensysteme][1], Mathematische Annalen, 69, pp 331-371, 1910.\n", "\n", "[1]:http://dx.doi.org/10.1007/BF01456927"], "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"}]}}}