From bcbeccf4071c4f4a148fdd06205daae1967f04f2 Mon Sep 17 00:00:00 2001 From: Gerald Schuller Date: Mon, 6 Jan 2025 21:18:52 +0100 Subject: [PATCH] Created using Colab --- ADSP_11_Complex_S_and_S.ipynb | 7501 ++++++++++++++++++++++++++++----- 1 file changed, 6347 insertions(+), 1154 deletions(-) diff --git a/ADSP_11_Complex_S_and_S.ipynb b/ADSP_11_Complex_S_and_S.ipynb index fc57df5..42f2876 100644 --- a/ADSP_11_Complex_S_and_S.ipynb +++ b/ADSP_11_Complex_S_and_S.ipynb @@ -3,7 +3,7 @@ { "cell_type": "markdown", "metadata": { - "id": "AsJyFbr_bhFU" + "id": "agHWGlSgRCEn" }, "source": [ "
\n", @@ -16,10 +16,14 @@ { "cell_type": "markdown", "metadata": { - "id": "1j2dnI2FbhFZ" + "id": "ajZOCnJlRCEt" }, "source": [ - "# Complex Signals and Filters, Hilbert Transform" + "# Complex Signals and Filters, Hilbert Transform\n", + "\n", + "## Lecture Video:\n", + "\n", + "https://youtu.be/bMx0S_3_HCo\n" ] }, { @@ -27,8 +31,8 @@ "execution_count": null, "metadata": { "hide_input": true, - "id": "24bp8R0vbhFa", - "outputId": "58cab6b6-8f3d-4334-9f1f-0682d934e8cb" + "id": "Hg-SSOfKRCEu", + "outputId": "06c01051-3428-475e-909d-392a2b1ba36b" }, "outputs": [ { @@ -52,7 +56,7 @@ { "cell_type": "markdown", "metadata": { - "id": "oM7WBqMjbhFd" + "id": "UF93uYJhRCEx" }, "source": [ "Imagine we would like to know the precise, **instantaneous, amplitude of a sinusoid**.\n", @@ -85,8 +89,8 @@ "execution_count": null, "metadata": { "hide_input": true, - "id": "wOPJroWxbhFd", - "outputId": "42501d28-d6b4-4114-e0fc-464933fba52c" + "id": "UfE8AyzNRCEx", + "outputId": "3fd59703-dc87-4ee4-cfaa-83346b36edb3" }, "outputs": [ { @@ -110,7 +114,7 @@ { "cell_type": "markdown", "metadata": { - "id": "vKoBmyJbbhFe" + "id": "sodIN-hwRCEy" }, "source": [ "For example, look at the sine function. It already consists of 2 complex exponentials,\n", @@ -134,8 +138,8 @@ "execution_count": null, "metadata": { "hide_input": true, - "id": "GZgdpK52bhFf", - "outputId": "95adbd3a-90d1-499b-a3ba-9e75dae089de" + "id": "rKmsyZ2pRCEz", + "outputId": "c046cc3a-6dfe-4fae-a4d9-de635f071ecf" }, "outputs": [ { @@ -159,7 +163,7 @@ { "cell_type": "markdown", "metadata": { - "id": "Wt7xiszfbhFf" + "id": "foo4ogKHRCE0" }, "source": [ "We could multiply our signal spectrum with this frequency domain formulation (which is often not practical), or in the time domain convolve with the **impulse response** of the resulting filter obtained with **inverse DTFT**,\n", @@ -203,7 +207,7 @@ { "cell_type": "markdown", "metadata": { - "id": "mkEjG8-AbhFg" + "id": "BiAkojrWRCE1" }, "source": [ "Here we can see that the first part with the **delta function** represents the **real part**, which is the signal itself (signal convolved with the delta impulse), except for a factor of 2. The second part represents the imaginary part of our one-sided signal (pos. frequencies). Multiplying both parts with this factor of 2 for simplicity, we obtain the following structure,\n", @@ -231,8 +235,8 @@ "execution_count": null, "metadata": { "hide_input": true, - "id": "EmcjlO0_bhFh", - "outputId": "cc2ee346-324c-4c7a-c568-5f353a0b20fe" + "id": "96x00xaLRCE2", + "outputId": "c339bcc1-e65f-4fb9-db9e-45e14cde866e" }, "outputs": [ { @@ -256,7 +260,7 @@ { "cell_type": "markdown", "metadata": { - "id": "P18JZUQubhFi" + "id": "krcUf4qtRCE3" }, "source": [ "#### **Python example**: Plot the Hilbert transformer for n= -10 ..10:\n" @@ -267,8 +271,8 @@ "execution_count": null, "metadata": { "hide_input": true, - "id": "0Bbaz6pFbhFi", - "outputId": "b7e17be8-1792-4df1-a324-775032f505a1" + "id": "8Fk9GIrDRCE4", + "outputId": "a6269cb5-48c1-4447-fa2d-5106548e1981" }, "outputs": [ { @@ -291,64 +295,46 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { - "id": "esyLXPVUbhFi", - "outputId": "2088011e-dcd7-446b-e80d-5deadcf3bdca", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 527 - } + "id": "b2TKTNMYRCE4", + "outputId": "20d8cc50-96b1-4bba-f479-041ca08e40de" }, "outputs": [ { - "output_type": "stream", - "name": "stderr", - "text": [ - ":11: MatplotlibDeprecationWarning: The 'use_line_collection' parameter of stem() was deprecated in Matplotlib 3.6 and will be removed two minor releases later. If any parameter follows 'use_line_collection', they should be passed as keyword, not positionally.\n", - " plt.stem(np.arange(-10,10),h,use_line_collection=True)\n" - ] - }, - { - "output_type": "display_data", "data": { - "text/plain": [ - "" - ], "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", - "/* global mpl */\n", "window.mpl = {};\n", "\n", - "mpl.get_websocket_type = function () {\n", - " if (typeof WebSocket !== 'undefined') {\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", - " } else if (typeof MozWebSocket !== 'undefined') {\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", - " alert(\n", - " 'Your browser does not have WebSocket support. ' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.'\n", - " );\n", - " }\n", - "};\n", + " alert('Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", "\n", - "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", - " this.supports_binary = this.ws.binaryType !== undefined;\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", - " var warnings = document.getElementById('mpl-warnings');\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", - " warnings.textContent =\n", - " 'This browser does not support binary websocket messages. ' +\n", - " 'Performance may be slow.';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", @@ -363,11 +349,11 @@ "\n", " this.image_mode = 'full';\n", "\n", - " this.root = document.createElement('div');\n", - " this.root.setAttribute('style', 'display: inline-block');\n", - " this._root_extra_style(this.root);\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", "\n", - " parent_element.appendChild(this.root);\n", + " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", @@ -377,398 +363,285 @@ "\n", " this.waiting = false;\n", "\n", - " this.ws.onopen = function () {\n", - " fig.send_message('supports_binary', { value: fig.supports_binary });\n", - " fig.send_message('send_image_mode', {});\n", - " if (fig.ratio !== 1) {\n", - " fig.send_message('set_device_pixel_ratio', {\n", - " device_pixel_ratio: fig.ratio,\n", - " });\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", " }\n", - " fig.send_message('refresh', {});\n", - " };\n", "\n", - " this.imageObj.onload = function () {\n", - " if (fig.image_mode === 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", "\n", - " this.imageObj.onunload = function () {\n", + " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", - " };\n", + " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", - "};\n", + "}\n", "\n", - "mpl.figure.prototype._init_header = function () {\n", - " var titlebar = document.createElement('div');\n", - " titlebar.classList =\n", - " 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n", - " var titletext = document.createElement('div');\n", - " titletext.classList = 'ui-dialog-title';\n", - " titletext.setAttribute(\n", - " 'style',\n", - " 'width: 100%; text-align: center; padding: 3px;'\n", - " );\n", - " titlebar.appendChild(titletext);\n", - " this.root.appendChild(titlebar);\n", - " this.header = titletext;\n", - "};\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", "\n", - "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n", "\n", - "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n", "\n", - "mpl.figure.prototype._init_canvas = function () {\n", - " var fig = this;\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", - " var canvas_div = (this.canvas_div = document.createElement('div'));\n", - " canvas_div.setAttribute('tabindex', '0');\n", - " canvas_div.setAttribute(\n", - " 'style',\n", - " 'border: 1px solid #ddd;' +\n", - " 'box-sizing: content-box;' +\n", - " 'clear: both;' +\n", - " 'min-height: 1px;' +\n", - " 'min-width: 1px;' +\n", - " 'outline: 0;' +\n", - " 'overflow: hidden;' +\n", - " 'position: relative;' +\n", - " 'resize: both;' +\n", - " 'z-index: 2;'\n", - " );\n", + "}\n", "\n", - " function on_keyboard_event_closure(name) {\n", - " return function (event) {\n", - " return fig.key_event(event, name);\n", - " };\n", - " }\n", "\n", - " canvas_div.addEventListener(\n", - " 'keydown',\n", - " on_keyboard_event_closure('key_press')\n", - " );\n", - " canvas_div.addEventListener(\n", - " 'keyup',\n", - " on_keyboard_event_closure('key_release')\n", - " );\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", - " this._canvas_extra_style(canvas_div);\n", - " this.root.appendChild(canvas_div);\n", - "\n", - " var canvas = (this.canvas = document.createElement('canvas'));\n", - " canvas.classList.add('mpl-canvas');\n", - " canvas.setAttribute(\n", - " 'style',\n", - " 'box-sizing: content-box;' +\n", - " 'pointer-events: none;' +\n", - " 'position: relative;' +\n", - " 'z-index: 0;'\n", - " );\n", + "}\n", "\n", - " this.context = canvas.getContext('2d');\n", - "\n", - " var backingStore =\n", - " this.context.backingStorePixelRatio ||\n", - " this.context.webkitBackingStorePixelRatio ||\n", - " this.context.mozBackingStorePixelRatio ||\n", - " this.context.msBackingStorePixelRatio ||\n", - " this.context.oBackingStorePixelRatio ||\n", - " this.context.backingStorePixelRatio ||\n", - " 1;\n", - "\n", - " this.ratio = (window.devicePixelRatio || 1) / backingStore;\n", - "\n", - " var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n", - " 'canvas'\n", - " ));\n", - " rubberband_canvas.setAttribute(\n", - " 'style',\n", - " 'box-sizing: content-box;' +\n", - " 'left: 0;' +\n", - " 'pointer-events: none;' +\n", - " 'position: absolute;' +\n", - " 'top: 0;' +\n", - " 'z-index: 1;'\n", - " );\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", "\n", - " // Apply a ponyfill if ResizeObserver is not implemented by browser.\n", - " if (this.ResizeObserver === undefined) {\n", - " if (window.ResizeObserver !== undefined) {\n", - " this.ResizeObserver = window.ResizeObserver;\n", - " } else {\n", - " var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n", - " this.ResizeObserver = obs.ResizeObserver;\n", - " }\n", - " }\n", - "\n", - " this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n", - " var nentries = entries.length;\n", - " for (var i = 0; i < nentries; i++) {\n", - " var entry = entries[i];\n", - " var width, height;\n", - " if (entry.contentBoxSize) {\n", - " if (entry.contentBoxSize instanceof Array) {\n", - " // Chrome 84 implements new version of spec.\n", - " width = entry.contentBoxSize[0].inlineSize;\n", - " height = entry.contentBoxSize[0].blockSize;\n", - " } else {\n", - " // Firefox implements old version of spec.\n", - " width = entry.contentBoxSize.inlineSize;\n", - " height = entry.contentBoxSize.blockSize;\n", - " }\n", - " } else {\n", - " // Chrome <84 implements even older version of spec.\n", - " width = entry.contentRect.width;\n", - " height = entry.contentRect.height;\n", - " }\n", + " var canvas_div = $('
');\n", "\n", - " // Keep the size of the canvas and rubber band canvas in sync with\n", - " // the canvas container.\n", - " if (entry.devicePixelContentBoxSize) {\n", - " // Chrome 84 implements new version of spec.\n", - " canvas.setAttribute(\n", - " 'width',\n", - " entry.devicePixelContentBoxSize[0].inlineSize\n", - " );\n", - " canvas.setAttribute(\n", - " 'height',\n", - " entry.devicePixelContentBoxSize[0].blockSize\n", - " );\n", - " } else {\n", - " canvas.setAttribute('width', width * fig.ratio);\n", - " canvas.setAttribute('height', height * fig.ratio);\n", - " }\n", - " /* This rescales the canvas back to display pixels, so that it\n", - " * appears correct on HiDPI screens. */\n", - " canvas.style.width = width + 'px';\n", - " canvas.style.height = height + 'px';\n", - "\n", - " rubberband_canvas.setAttribute('width', width);\n", - " rubberband_canvas.setAttribute('height', height);\n", - "\n", - " // And update the size in Python. We ignore the initial 0/0 size\n", - " // that occurs as the element is placed into the DOM, which should\n", - " // otherwise not happen due to the minimum size styling.\n", - " if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n", - " fig.request_resize(width, height);\n", - " }\n", - " }\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", " });\n", - " this.resizeObserverInstance.observe(canvas_div);\n", - "\n", - " function on_mouse_event_closure(name) {\n", - " /* User Agent sniffing is bad, but WebKit is busted:\n", - " * https://bugs.webkit.org/show_bug.cgi?id=144526\n", - " * https://bugs.webkit.org/show_bug.cgi?id=181818\n", - " * The worst that happens here is that they get an extra browser\n", - " * selection when dragging, if this check fails to catch them.\n", - " */\n", - " var UA = navigator.userAgent;\n", - " var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n", - " if(isWebKit) {\n", - " return function (event) {\n", - " /* This prevents the web browser from automatically changing to\n", - " * the text insertion cursor when the button is pressed. We\n", - " * want to control all of the cursor setting manually through\n", - " * the 'cursor' event from matplotlib */\n", - " event.preventDefault()\n", - " return fig.mouse_event(event, name);\n", - " };\n", - " } else {\n", - " return function (event) {\n", - " return fig.mouse_event(event, name);\n", - " };\n", - " }\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", - " canvas_div.addEventListener(\n", - " 'mousedown',\n", - " on_mouse_event_closure('button_press')\n", - " );\n", - " canvas_div.addEventListener(\n", - " 'mouseup',\n", - " on_mouse_event_closure('button_release')\n", - " );\n", - " canvas_div.addEventListener(\n", - " 'dblclick',\n", - " on_mouse_event_closure('dblclick')\n", - " );\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", - " canvas_div.addEventListener(\n", - " 'mousemove',\n", - " on_mouse_event_closure('motion_notify')\n", - " );\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", - " canvas_div.addEventListener(\n", - " 'mouseenter',\n", - " on_mouse_event_closure('figure_enter')\n", - " );\n", - " canvas_div.addEventListener(\n", - " 'mouseleave',\n", - " on_mouse_event_closure('figure_leave')\n", - " );\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", - " canvas_div.addEventListener('wheel', function (event) {\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", - " on_mouse_event_closure('scroll')(event);\n", + " mouse_event_fn(event);\n", " });\n", "\n", - " canvas_div.appendChild(canvas);\n", - " canvas_div.appendChild(rubberband_canvas);\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", "\n", - " this.rubberband_context = rubberband_canvas.getContext('2d');\n", - " this.rubberband_context.strokeStyle = '#000000';\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", - " this._resize_canvas = function (width, height, forward) {\n", - " if (forward) {\n", - " canvas_div.style.width = width + 'px';\n", - " canvas_div.style.height = height + 'px';\n", - " }\n", - " };\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", - " canvas_div.addEventListener('contextmenu', function (_e) {\n", - " event.preventDefault();\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", - " function set_focus() {\n", + " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", - "};\n", + "}\n", "\n", - "mpl.figure.prototype._init_toolbar = function () {\n", + "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", - " var toolbar = document.createElement('div');\n", - " toolbar.classList = 'mpl-toolbar';\n", - " this.root.appendChild(toolbar);\n", + " var nav_element = $('
');\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", "\n", - " function on_click_closure(name) {\n", - " return function (_event) {\n", - " return fig.toolbar_button_onclick(name);\n", - " };\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", " }\n", - "\n", - " function on_mouseover_closure(tooltip) {\n", - " return function (event) {\n", - " if (!event.currentTarget.disabled) {\n", - " return fig.toolbar_button_onmouseover(tooltip);\n", - " }\n", - " };\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", - " fig.buttons = {};\n", - " var buttonGroup = document.createElement('div');\n", - " buttonGroup.classList = 'mpl-button-group';\n", - " for (var toolbar_ind in mpl.toolbar_items) {\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", - " /* Instead of a spacer, we start a new button group. */\n", - " if (buttonGroup.hasChildNodes()) {\n", - " toolbar.appendChild(buttonGroup);\n", - " }\n", - " buttonGroup = document.createElement('div');\n", - " buttonGroup.classList = 'mpl-button-group';\n", + " // put a spacer in here.\n", " continue;\n", " }\n", - "\n", - " var button = (fig.buttons[name] = document.createElement('button'));\n", - " button.classList = 'mpl-widget';\n", - " button.setAttribute('role', 'button');\n", - " button.setAttribute('aria-disabled', 'false');\n", - " button.addEventListener('click', on_click_closure(method_name));\n", - " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n", - "\n", - " var icon_img = document.createElement('img');\n", - " icon_img.src = '_images/' + image + '.png';\n", - " icon_img.srcset = '_images/' + image + '_large.png 2x';\n", - " icon_img.alt = tooltip;\n", - " button.appendChild(icon_img);\n", - "\n", - " buttonGroup.appendChild(button);\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Frequency Response\n", + "\n", + "from scipy.signal import freqz\n", + "import numpy as np\n", + "from matplotlib.ticker import FuncFormatter, MultipleLocator\n", + "\n", + "w, h_response = freqz(h)\n", + "\n", + "fig=plt.figure(figsize=(8,6))\n", + "fig.suptitle('Frequency Response', fontsize=16)\n", + "plt.subplot(2,1,1)\n", + "plt.plot(w/np.pi, 20 * np.log10(abs(h_response), where=abs(h_response) > 0), 'b')\n", + "#plt.ylim((-0.001,0.001))\n", + "plt.ylabel('Amplitude (dB)')\n", + "plt.xlabel('Normalized Frequency')\n", + "plt.grid()\n", + "ax = plt.gca()\n", + "ax.xaxis.set_major_formatter(FuncFormatter(\n", + " lambda val,pos: '{:.0g}$\\pi$'.format(val) if val !=0 else '0'\n", + "))\n", + "ax.xaxis.set_major_locator(MultipleLocator(base=0.2))\n", + "plt.subplot(2,1,2)\n", + "angles = np.angle(h_response)\n", + "plt.plot(w/np.pi, angles, 'g')\n", + "plt.ylabel('Angle (radians)')\n", + "plt.xlabel('Normalized Frequency')\n", + "ax = plt.gca()\n", + "ax.xaxis.set_major_formatter(FuncFormatter(\n", + " lambda val,pos: '{:.0g}$\\pi$'.format(val) if val !=0 else '0'\n", + "))\n", + "ax.xaxis.set_major_locator(MultipleLocator(base=0.2))\n", + "plt.grid()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bE7E6NpzRCE6" + }, + "source": [ + "Here we can see that the phase curve indeed would hit the $\\dfrac{pi}{2}$ Rad (90 degree) mark at the phase axis. We see that the magnitude plot only reaches about 0 dB attenuation at about frequency $0.08\\cdot \\pi$ and reaches higher attenuations at frequencies below about $0.05\\cdot \\pi$ and above about $0.95\\cdot \\pi$. Hence it is only a working Hilbert transformer within this frequency range.\n", + "\n", + "If we want to plot the frequency response of our **entire filter** (not just the Hilbert transformer part), which **passes only the positive frequencies**, we first need to construct our resulting complex filter, and then plot the frequency response on the **whole** frequency circle. First we need to create the correspondingly delayed unit impulse as the real part:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "G40iqbM_RCE7", + "outputId": "1b9f83c6-ac24-4230-b817-f8f73f1cde53" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.-0.07073553j, 0.+0.j , 0.-0.09094568j, 0.+0.j ,\n", + " 0.-0.12732395j, 0.+0.j , 0.-0.21220659j, 0.+0.j ,\n", + " 0.-0.63661977j, 1.+0.j , 0.+0.63661977j, 0.+0.j ,\n", + " 0.+0.21220659j, 0.+0.j , 0.+0.12732395j, 0.+0.j ,\n", + " 0.+0.09094568j, 0.+0.j , 0.+0.07073553j, 0.+0.j ])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# construct a delayed impulse to implement the\n", + "# delay for the real part:\n", + "delt = np.zeros(20)\n", + "delt[9] = 1\n", + "#delt =\n", + "#0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0\n", + "#Then we need to add our imaginary part as our\n", + "#Hilbert transform to obtain our complex filter:\n", + "h = np.zeros(20);\n", + "n = np.arange(-9, 10+1, 2);\n", + "h[(n-1)+10] = 2./(np.pi*n);\n", + "hone = delt+h*1j\n", + "\n", + "hone\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VPTu9BnRRCE7" + }, + "source": [ + "Observe that this is our first complex valued filter!\n", + "\n", + "Its frequency response, including negative frequencies above $\\pi$, is:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "0vYPuwjDRCE8", + "outputId": "b7e00a1f-4dbb-44c6-acfe-3c1530d971f1" + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
');\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import scipy.signal as sp\n", + "b=sp.remez(21, [0.03, 0.47],[1], type='hilbert');\n", + "\n", + "\n", + "# Frequency Response\n", + "\n", + "from scipy.signal import freqz\n", + "import numpy as np\n", + "from matplotlib.ticker import FuncFormatter, MultipleLocator\n", + "\n", + "w, h_response = freqz(b, whole=False)\n", + "\n", + "fig=plt.figure(figsize=(8,6))\n", + "fig.suptitle('Frequency Response', fontsize=16)\n", + "plt.subplot(2,1,1)\n", + "plt.plot(w/np.pi, 20 * np.log10(abs(h_response), where=abs(h_response) > 0), 'b')\n", + "plt.ylim((-40,10))\n", + "plt.ylabel('Amplitude (dB)')\n", + "plt.xlabel('Normalized Frequency')\n", + "plt.grid()\n", + "ax = plt.gca()\n", + "ax.xaxis.set_major_formatter(FuncFormatter(\n", + " lambda val,pos: '{:.0g}$\\pi$'.format(val) if val !=0 else '0'\n", + "))\n", + "ax.xaxis.set_major_locator(MultipleLocator(base=0.2))\n", + "plt.subplot(2,1,2)\n", + "angles = np.angle(h_response)\n", + "plt.plot(w/np.pi, angles, 'g')\n", + "plt.ylabel('Angle (radians)')\n", + "plt.xlabel('Normalized Frequency')\n", + "ax = plt.gca()\n", + "ax.xaxis.set_major_formatter(FuncFormatter(\n", + " lambda val,pos: '{:.0g}$\\pi$'.format(val) if val !=0 else '0'\n", + "))\n", + "ax.xaxis.set_major_locator(MultipleLocator(base=0.2))\n", + "plt.grid()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "n3Md9PlnRCE9" + }, + "source": [ + "Observe that the specified passband does not go all the way to 0 and 0.5. The further away the passband is from these edges, the less ripples we will have in the passband, and the **more attenuation** we will have for the **negative frequencies**!\n", + "\n", + "Observe that this design now has a +90 Degrees ($\\pi/2$) phase shift at frequency close to zero. This is a phase difference of 180 Degrees from our previous design with the rectangular window, and results from a sign change of the coefficients.\n", + "\n", + "Let's look at the resulting **one sided complex valued filter** at the whole frequency circle again, in iPython:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "z_jurlXpRCE9", + "outputId": "7ab93750-dd20-4935-90d3-78bd371f7200" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.-8.35889141e-05j, 0.+7.28072838e-02j, 0.+7.11334936e-05j,\n", + " 0.+6.79343477e-02j, 0.-7.21513298e-06j, 0.+1.10111613e-01j,\n", + " 0.+2.67809302e-05j, 0.+2.01516354e-01j, 0.-8.96356182e-06j,\n", + " 0.+6.32971502e-01j, 1.+0.00000000e+00j, 0.-6.32971502e-01j,\n", + " 0.+8.96356182e-06j, 0.-2.01516354e-01j, 0.-2.67809302e-05j,\n", + " 0.-1.10111613e-01j, 0.+7.21513298e-06j, 0.-6.79343477e-02j,\n", + " 0.-7.11334936e-05j, 0.-7.28072838e-02j, 0.+8.35889141e-05j])" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Delay for the real part:\n", + "delt = np.zeros(21)\n", + "delt[10] = 1\n", + "#The complex filter:\n", + "honeremez = delt + 1j*b\n", + "honeremez" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "BuJ7fx-KRCE9", + "outputId": "712c9c66-9d93-4cb9-c31e-ca3e9d083cc6" + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
');\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x = 2*np.sin(np.pi*0.05*np.arange(0, 40))\n", + "plt.figure()\n", + "plt.plot(x)\n", + "plt.grid()" + ] }, { "cell_type": "markdown", "metadata": { - "id": "eXiTEsRhbhFk" + "id": "ZMnawyX3RCE_" }, "source": [ - "Here we can see that the phase curve indeed would hit the $\\dfrac{pi}{2}$ Rad (90 degree) mark at the phase axis. We see that the magnitude plot only reaches about 0 dB attenuation at about frequency $0.08\\cdot \\pi$ and reaches higher attenuations at frequencies below about $0.05\\cdot \\pi$ and above about $0.95\\cdot \\pi$. Hence it is only a working Hilbert transformer within this frequency range.\n", - "\n", - "If we want to plot the frequency response of our **entire filter** (not just the Hilbert transformer part), which **passes only the positive frequencies**, we first need to construct our resulting complex filter, and then plot the frequency response on the **whole** frequency circle. First we need to create the correspondingly delayed unit impulse as the real part:" + "Now we can filter it with our filter which passes only positive frequencies “hone”, an creates a complex valued signal xhone:" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { - "id": "EhfWdhYCbhFk", - "outputId": "92a96e49-dda2-4fd2-95aa-46e3c73edcbe", - "colab": { - "base_uri": "https://localhost:8080/" - } + "id": "E0d_DETeRCE_", + "outputId": "bb11bacc-1bff-4bb7-f5d0-9675660109c5" }, "outputs": [ { - "output_type": "execute_result", "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
');\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" ], - "image/png": "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WOjKSNN1wZgtuleuAJ07SzMHtG0L/PwzO/kTERFZO4UCWLwY+OADqWX3zTelefNLGha6MsrpumCc109KkmZXSEgAGjaUWnKfd251IiIish4KhdSy262bdFS3a1epAawkYaErI2N2XVCrgT59pGlGypeXzsJWqpTBV0NERERmzMYG+PFHoEkT6Wyer71WvBOuWJpCzaObmJiI9evXY+/evbh58ybS0tLg5eWFsLAwREREoGnTpsaK0yoZs+vC3LnA5s3SSQ3+/FM6cwwRERGVPE5OwO+/A2FhwKlTwJAhwJo11n3WOA29WnTv3buHt99+G35+fpg5cyaePn2KunXrok2bNvD398fOnTvRrl07hISEYN26dcaO2WrktOga9nUPHgQmT5b+/vxz6dzeREREVHKVKwesWyfVHt9/LxW6JYFeLbphYWHo378/jh07hpACJl59+vQpNmzYgCVLluD27dv48MMPDRqoNTLG9GLJyUDfvlLXhV69gAEDDPbSREREZMFatgRmzAAmTQJGjZIGqQcEyB2VcelV6J47dw5ly5Z97jJOTk7o06cP+vTpg0ePHhkkOGuXc8IIwxW6EycC168DQUHAl1+WjMMSREREpJ/x44G//pKO/g4eDGzdat21gl5dF15U5BZ3+ZLK0LMuHDgArFgh/b1qFeDhYZjXJSIiIutgYyN1W3B0BKKjgW++kTsi4yr0rAu5W2tv376NyZMnY+zYsdhbEidnKyZDdl1QqYD33pP6+/bvD7RuXeyXJCIiIitUrRowa5b094QJ0jSk1krvQvf06dOoUKECvL29Ub16dcTExKBhw4ZYvHgxVq5ciVatWmHDhg1GDNX6GLLrwmefAadPA2XLAgsWFPvliIiIyIqNGAHUqiUVuZoB7NZI70J33LhxqF27Nvbs2YOWLVvi//7v/9C5c2ckJSXh8ePHeO+99zBnzhxjxmp1DNWim5CQ88ts3jzA07OYgREREZFVs7WVGskAqdvj6dPyxmMsehe6R44cwaxZs9CsWTMsWLAA9+7dwwcffAClUgmlUonhw4fjwoULxozV6hiq0J0zR5oEunZtqdsCERER0Yu0bi2dQCI7G4iMlDsa49C70E1ISICvry8AwMXFBaVKlULp0qW1j5cuXRopKSmGj9CK5XRdKPpr3Lolnd4PkApezWsSERERvcj8+YCdHbBtG2CN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\n" - }, - "metadata": {} - } - ], - "source": [ - "import scipy.signal as sp\n", - "b=sp.remez(21, [0.03, 0.47],[1], type='hilbert');\n", - "\n", - "\n", - "# Frequency Response\n", - "\n", - "from scipy.signal import freqz\n", - "import numpy as np\n", - "from matplotlib.ticker import FuncFormatter, MultipleLocator\n", - "\n", - "w, h_response = freqz(b, whole=False)\n", - "\n", - "fig=plt.figure(figsize=(8,6))\n", - "fig.suptitle('Frequency Response', fontsize=16)\n", - "plt.subplot(2,1,1)\n", - "plt.plot(w/np.pi, 20 * np.log10(abs(h_response), where=abs(h_response) > 0), 'b')\n", - "plt.ylim((-40,10))\n", - "plt.ylabel('Amplitude (dB)')\n", - "plt.xlabel('Normalized Frequency')\n", - "plt.grid()\n", - "ax = plt.gca()\n", - "ax.xaxis.set_major_formatter(FuncFormatter(\n", - " lambda val,pos: '{:.0g}$\\pi$'.format(val) if val !=0 else '0'\n", - "))\n", - "ax.xaxis.set_major_locator(MultipleLocator(base=0.2))\n", - "plt.subplot(2,1,2)\n", - "angles = np.angle(h_response)\n", - "plt.plot(w/np.pi, angles, 'g')\n", - "plt.ylabel('Angle (radians)')\n", - "plt.xlabel('Normalized Frequency')\n", - "ax = plt.gca()\n", - "ax.xaxis.set_major_formatter(FuncFormatter(\n", - " lambda val,pos: '{:.0g}$\\pi$'.format(val) if val !=0 else '0'\n", - "))\n", - "ax.xaxis.set_major_locator(MultipleLocator(base=0.2))\n", - "plt.grid()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hf4kueVpbhFm" - }, - "source": [ - "Observe that the specified passband does not go all the way to 0 and 0.5. The further away the passband is from these edges, the less ripples we will have in the passband, and the **more attenuation** we will have for the **negative frequencies**!\n", - "\n", - "Observe that this design now has a +90 Degrees ($\\pi/2$) phase shift at frequency close to zero. This is a phase difference of 180 Degrees from our previous design with the rectangular window, and results from a sign change of the coefficients.\n", - "\n", - "Let's look at the resulting **one sided complex valued filter** at the whole frequency circle again, in iPython:\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "id": "9gW_YVONbhFm", - "outputId": "2f2213d6-2b45-4589-c820-f2c786ad7cf0", - "colab": { - "base_uri": "https://localhost:8080/" - } - }, - "outputs": [ - { - "output_type": "execute_result", - "data": { "text/plain": [ - "array([0.-8.35889141e-05j, 0.+7.28072838e-02j, 0.+7.11334936e-05j,\n", - " 0.+6.79343477e-02j, 0.-7.21513298e-06j, 0.+1.10111613e-01j,\n", - " 0.+2.67809302e-05j, 0.+2.01516354e-01j, 0.-8.96356182e-06j,\n", - " 0.+6.32971502e-01j, 1.+0.00000000e+00j, 0.-6.32971502e-01j,\n", - " 0.+8.96356182e-06j, 0.-2.01516354e-01j, 0.-2.67809302e-05j,\n", - " 0.-1.10111613e-01j, 0.+7.21513298e-06j, 0.-6.79343477e-02j,\n", - " 0.-7.11334936e-05j, 0.-7.28072838e-02j, 0.+8.35889141e-05j])" + "" ] }, "metadata": {}, - "execution_count": 7 - } - ], - "source": [ - "#Delay for the real part:\n", - "delt = np.zeros(21)\n", - "delt[10] = 1\n", - "#The complex filter:\n", - "honeremez = delt + 1j*b\n", - "honeremez" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "id": "5BL5TlHMbhFm", - "outputId": "516a27e6-25ea-4683-9663-07a3dd4fc127", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 602 - } - }, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": {} - } - ], - "source": [ - "#Observe the sign change\n", - "#compared to hone above.\n", - "#Now look at the frequency response\n", - "#for pos. and neg. frequencies:\n", - "\n", - "\n", - "# Frequency Response\n", - "\n", - "from scipy.signal import freqz\n", - "import numpy as np\n", - "from matplotlib.ticker import FuncFormatter, MultipleLocator\n", - "\n", - "w, h_response = freqz(honeremez, whole=True)\n", - "\n", - "fig=plt.figure(figsize=(8,6))\n", - "fig.suptitle('Frequency Response', fontsize=16)\n", - "plt.subplot(2,1,1)\n", - "plt.plot(w/np.pi, 20 * np.log10(abs(h_response), where=abs(h_response) > 0), 'b')\n", - "plt.ylim((-40,10))\n", - "plt.ylabel('Amplitude (dB)')\n", - "plt.xlabel('Normalized Frequency')\n", - "plt.grid()\n", - "ax = plt.gca()\n", - "ax.xaxis.set_major_formatter(FuncFormatter(\n", - " lambda val,pos: '{:.0g}$\\pi$'.format(val) if val !=0 else '0'\n", - "))\n", - "ax.xaxis.set_major_locator(MultipleLocator(base=0.2))\n", - "plt.subplot(2,1,2)\n", - "angles = np.angle(h_response)\n", - "plt.plot(w/np.pi, angles, 'g')\n", - "plt.ylabel('Angle (radians)')\n", - "plt.xlabel('Normalized Frequency')\n", - "ax = plt.gca()\n", - "ax.xaxis.set_major_formatter(FuncFormatter(\n", - " lambda val,pos: '{:.0g}$\\pi$'.format(val) if val !=0 else '0'\n", - "))\n", - "ax.xaxis.set_major_locator(MultipleLocator(base=0.2))\n", - "plt.grid()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AIouLPcZbhFn" - }, - "source": [ - "Here we can see that we have again only about -30 dB attenuation in the stopband, which is now for the positive frequencies, because of the sign change of our remez filter. We obtain more practical filters, with more attenuation in the stopband, if we change the corner frequencies to more above 0 and below 0.5 in remez (increasing the transition bandwidth).\n", - "\n", - "Also observe the equi-ripple behaviour in the stopband, which is what we expect from remez." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FD5XAZGFbhFn" - }, - "source": [ - "## Example for the Measurement of the (Instantaneous) Amplitude" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "duKy1W2-bhFn" - }, - "source": [ - "We can now test our application example of measuring the Amplitude of a sinusoid with our Hilbert transform design. We saw that the lower end for the passband of our design is at normalized frequency of about 0.05. Hence we test a sinusoid of that frequency," - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "hide_input": true, - "id": "6SNKCLrRbhFn", - "outputId": "c299aac6-58ea-48a6-cb6b-35bb08eecf8e" - }, - "outputs": [ + "output_type": "display_data" + }, { "data": { "text/html": [ - "\n" + "" ], "text/plain": [ "" @@ -1797,115 +7099,6 @@ "output_type": "display_data" } ], - "source": [ - "%%html\n", - "" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "id": "ntf5pY5XbhFo", - "outputId": "a9eb1b09-944b-454e-e824-a29d611f3c01", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 430 - } - }, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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pKSksGbNGgCaNWvGhAkTmDp1KosWLSI9PZ3x48eTmpqqkUYiIiICuHC0UVpaGllZWWRlZREXF3fK104+I2y328nMzKSsrKz2a88//zxWq5Ubb7yRiooKRowYwcsvv+yqmCIiIuJhXNa8jBs37pzPxrRp04ZfDnYKCgpi1qxZzJo1y1XRRERExINpJh8RERHxKGpeRERExKOoeRERERGPouZFREREPIqaFxEREfEoal5ERETEo6h5EREREY+i5kVEREQ8ipoXERER8Shet874yRl7G7K0dn3Z7XbKysooKiry6hVAVaf38IUaQXV6G9XpPRpS48nf27+ceb8uXte8FBcXAxAfH29yEhEREWmo4uJimjVrdtZ9LEZ9WhwP4nA4yMnJITQ0FIvF4tRzFxUVER8fz759+wgLC3Pqud2J6vQevlAjqE5vozq9R0NqNAyD4uJiYmNjsVrP/lSL1915sVqtp61i7WxhYWFe+432c6rTe/hCjaA6vY3q9B71rfFcd1xO0gO7IiIi4lHUvIiIiIhHUfPSAIGBgTzxxBMEBgaaHcWlVKf38IUaQXV6G9XpPVxVo9c9sCsiIiLeTXdeRERExKOoeRERERGPouZFREREPIqaFxEREfEoal7qadasWbRp04agoCD69+/PmjVrzI7kVDNmzMBisZzykZKSYnasC7Z06VKuueYaYmNjsVgsLFiw4JSvG4bB448/TkxMDE2aNGHo0KHs2LHDnLAX4Fx1jhs37rTrO3LkSHPCnqennnqKvn37EhoaSlRUFKNGjSIzM/OUfcrLy5k8eTItW7akadOm3HjjjeTn55uU+PzUp87Bgwefdj3vvfdekxKfn1deeYVu3brVTl6WmprK//73v9qve8O1hHPX6Q3X8pf++te/YrFYeOCBB2q3Oft6qnmphw8//JCpU6fyxBNPsG7dOrp3786IESM4ePCg2dGc6qKLLiI3N7f2Y9myZWZHumClpaV0796dWbNm1fn1Z555hn/84x+8+uqrrF69mpCQEEaMGEF5eXkjJ70w56oTYOTIkadc3w8++KARE164JUuWMHnyZFatWkVaWhp2u53hw4dTWlpau8+DDz7IZ599xscff8ySJUvIycnhhhtuMDF1w9WnToCJEyeecj2feeYZkxKfn7i4OP7617+Snp7O2rVrueKKK7juuuvYsmUL4B3XEs5dJ3j+tfy5H374gddee41u3bqdst3p19OQc+rXr58xefLk2s+rq6uN2NhY46mnnjIxlXM98cQTRvfu3c2O4VKAMX/+/NrPHQ6HER0dbfztb3+r3VZQUGAEBgYaH3zwgQkJneOXdRqGYdxxxx3GddddZ0oeVzl48KABGEuWLDEMo+ba2Ww24+OPP67dZ9u2bQZgrFy50qyYF+yXdRqGYQwaNMi4//77zQvlIs2bNzfefPNNr72WJ52s0zC861oWFxcb7du3N9LS0k6pyxXXU3dezqGyspL09HSGDh1au81qtTJ06FBWrlxpYjLn27FjB7GxsSQnJ3PbbbeRnZ1tdiSX2r17N3l5eadc22bNmtG/f3+vu7YAixcvJioqio4dOzJp0iSOHDlidqQLUlhYCECLFi0ASE9Px263n3I9U1JSSEhI8Ojr+cs6T3r//feJiIigS5cuTJ8+nbKyMjPiOUV1dTXz5s2jtLSU1NRUr72Wv6zzJG+5lpMnT+bqq68+5bqBa342vW5hRmc7fPgw1dXVtGrV6pTtrVq1Yvv27Salcr7+/fsze/ZsOnbsSG5uLjNnzuTSSy9l8+bNhIaGmh3PJfLy8gDqvLYnv+YtRo4cyQ033EBSUhI7d+7k0Ucf5corr2TlypX4+fmZHa/BHA4HDzzwAAMHDqRLly5AzfUMCAggPDz8lH09+XrWVSfAmDFjSExMJDY2lo0bN/L73/+ezMxMPvnkExPTNtymTZtITU2lvLycpk2bMn/+fDp37kxGRoZXXcsz1Qnecy3nzZvHunXr+OGHH077mit+NtW8CABXXnll7Z+7detG//79SUxM5KOPPmLChAkmJhNnuOWWW2r/3LVrV7p160bbtm1ZvHgxQ4YMMTHZ+Zk8eTKbN2/2iueyzuZMdd599921f+7atSsxMTEMGTKEnTt30rZt28aOed46duxIRkYGhYWF/Pvf/+aOO+5gyZIlZsdyujPV2blzZ6+4lvv27eP+++8nLS2NoKCgRvk79bbROURERODn53faU9H5+flER0eblMr1wsPD6dChA1lZWWZHcZmT18/Xri1AcnIyERERHnl9p0yZwueff86iRYuIi4ur3R4dHU1lZSUFBQWn7O+p1/NMddalf//+AB53PQMCAmjXrh29e/fmqaeeonv37rz44otedy3PVGddPPFapqenc/DgQXr16oW/vz/+/v4sWbKEf/zjH/j7+9OqVSunX081L+cQEBBA7969WbhwYe02h8PBwoULT3nP0tuUlJSwc+dOYmJizI7iMklJSURHR59ybYuKili9erVXX1uA/fv3c+TIEY+6voZhMGXKFObPn893331HUlLSKV/v3bs3NpvtlOuZmZlJdna2R13Pc9VZl4yMDACPup51cTgcVFRUeM21PJOTddbFE6/lkCFD2LRpExkZGbUfffr04bbbbqv9s9Ov54U/X+z95s2bZwQGBhqzZ882tm7datx9991GeHi4kZeXZ3Y0p5k2bZqxePFiY/fu3cby5cuNoUOHGhEREcbBgwfNjnZBiouLjfXr1xvr1683AOPvf/+7sX79emPv3r2GYRjGX//6VyM8PNz49NNPjY0bNxrXXXedkZSUZBw/ftzk5A1ztjqLi4uN3/3ud8bKlSuN3bt3G99++63Rq1cvo3379kZ5ebnZ0ett0qRJRrNmzYzFixcbubm5tR9lZWW1+9x7771GQkKC8d133xlr1641UlNTjdTUVBNTN9y56szKyjL++Mc/GmvXrjV2795tfPrpp0ZycrJx2WWXmZy8YR555BFjyZIlxu7du42NGzcajzzyiGGxWIxvvvnGMAzvuJaGcfY6veVa1uWXo6icfT3VvNTTP//5TyMhIcEICAgw+vXrZ6xatcrsSE518803GzExMUZAQIDRunVr4+abbzaysrLMjnXBFi1aZACnfdxxxx2GYdQMl/7DH/5gtGrVyggMDDSGDBliZGZmmhv6PJytzrKyMmP48OFGZGSkYbPZjMTERGPixIke13zXVR9gvPPOO7X7HD9+3LjvvvuM5s2bG8HBwcb1119v5Obmmhf6PJyrzuzsbOOyyy4zWrRoYQQGBhrt2rUzHnroIaOwsNDc4A105513GomJiUZAQIARGRlpDBkypLZxMQzvuJaGcfY6veVa1uWXzYuzr6fFMAzj/O7ZiIiIiDQ+PfMiIiIiHkXNi4iIiHgUNS8iIiLiUdS8iIiIiEdR8yIiIiIeRc2LiIiIeBQ1LyIiIuJR1LyIiIiIR1HzIiIiIh5FzYuIiIh4FDUvIiIi4lHUvIiIiIhH+f+qZ8Gp+kxgbgAAAABJRU5ErkJggg==\n" - }, - "metadata": {} - } - ], - "source": [ - "x = 2*np.sin(np.pi*0.05*np.arange(0, 40))\n", - "plt.figure()\n", - "plt.plot(x)\n", - "plt.grid()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OXLhanCNbhFo" - }, - "source": [ - "Now we can filter it with our filter which passes only positive frequencies “hone”, an creates a complex valued signal xhone:" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "id": "DFeyxP4EbhFo", - "outputId": "043b3e42-3914-4d07-9d21-57dc7863fd12", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 430 - } - }, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjEAAAGdCAYAAADjWSL8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB47ElEQVR4nO3dd3iT5frA8W+SpovSlpbSAWWPsjfIUNkgCqKIOFGOW/CI+NMjHgU5DtSjHvfAhQsRVBCQVcoSWTLKpuzdweqiK23e3x8PaUFKadqkb8b9ua5efZu+eXPzkCZ3nnE/Bk3TNIQQQggh3IxR7wCEEEIIISpCkhghhBBCuCVJYoQQQgjhliSJEUIIIYRbkiRGCCGEEG5JkhghhBBCuCVJYoQQQgjhliSJEUIIIYRb8tE7AEezWq2cPHmS6tWrYzAY9A5HCCGEEOWgaRpZWVnExMRgNJavj8XjkpiTJ08SGxurdxhCCCGEqIBjx45Rp06dcp3rcUlM9erVAdUIwcHBDr22xWJhyZIlDBgwALPZ7NBrezJpN/tJm1WMtFvFSLtVjLSb/cpqs8zMTGJjY4vfx8vD45IY2xBScHCwU5KYwMBAgoOD5QlrB2k3+0mbVYy0W8VIu1WMtJv9ytNm9kwFkYm9QgghhHBLksQIIYQQwi1JEiOEEEIItyRJjBBCCCHckiQxQgghhHBLksQIIYQQwi1JEiOEEEIItyRJjBBCCCHckiQxQgghhHBLTk1ipkyZQufOnalevTq1atVi2LBhJCUlXfV+s2bNIi4uDn9/f1q3bs2CBQucGaYQQggh3JBTk5iVK1cyZswY1q1bR3x8PBaLhQEDBnD+/Pkr3mfNmjXceeedPPDAA2zZsoVhw4YxbNgwduzY4cxQhRBCCOFmnLp30qJFiy75edq0adSqVYtNmzZx3XXXlXqf9957j0GDBvHMM88A8PLLLxMfH8+HH37Ip59+6sxwhRBCCOFGqnQDyIyMDADCwsKueM7atWsZP378JbcNHDiQOXPmlHp+fn4++fn5xT9nZmYCapMpi8VSyYgvZbueo6/r6aTdLpWVZ2H9oXNsP5FJg5qBdGsYRmSw/yXnSJtVjLRbxUi7VYy0m/3KarOKtKNB0zSt0lGVg9VqZejQoaSnp7N69eornufr68s333zDnXfeWXzbxx9/zOTJk0lNTb3s/JdeeonJkydfdvv06dMJDAx0TPBCVEKhFQ5nQ1K6kb0ZBo5mg5VLd2mNCtBoFqLRNFSjcbCGv0mnYIUQQic5OTncddddZGRkEBwcXK77VFlPzJgxY9ixY0eZCUxFTJgw4ZKem8zMTGJjYxkwYEC5G6G8LBYL8fHx9O/fX7Zdt4M3tluRVWPmpuMk7D7FhsNnybVYL/l9g/BA2tUNZX9aNjtOZpKSayAl18DKFPAxGmhTO5gozvLSXb2oERSg07/C/Xjjc80RpN0qRtrNfmW1mW0kxR5VksSMHTuW+fPns2rVKurUqVPmuVFRUZf1uKSmphIVFVXq+X5+fvj5+V12u9lsdtqTypnX9mTe0m7nzhfwzxlb+GPf6eLbagb50qNxzeKv2qEliUl6TgFrD5xh9f7T/Ln/NIfP5LD5WAZgYs+Xm5k6qhONawXp8C9xX97yXHM0abeKkXazX2ltVpE2dGoSo2kaTzzxBLNnz2bFihU0aNDgqvfp1q0bCQkJjBs3rvi2+Ph4unXr5sRIhXCMHScyePT7TRw/l0uA2cQTfRvTJ64WzSKrYzAYSr1PaKAvN7SO5obW0QAcO5vDqqRU/rtwJwdPn2fYR3/y1oi2DGpVeiIvhBDeyqlJzJgxY5g+fTq//fYb1atXJyUlBYCQkBACAtQn0VGjRlG7dm2mTJkCwJNPPsn111/P22+/zY033siMGTPYuHEjU6dOdWaoQlTa7C3Hee6X7eQXWqkbFshn93akebT9Q5qxYYHc3qkO2oltzD0dwYbD53j0+02M6d2I8f2bYTKWngwJIYS3cWqdmE8++YSMjAx69epFdHR08ddPP/1UfM7Ro0dJTk4u/rl79+5Mnz6dqVOn0rZtW37++WfmzJlDq1atnBmqEBVmKbLy0tydPPXTVvILrfRqFsG8sT0rlMBcrLoZvrm/Iw/0VD2YHy0/wOhpf5GeU+CIsIUQwu05fTjpalasWHHZbSNGjGDEiBFOiEgIx0rLymPsD1vYcPgsAP/s05gn+zV1WG+Jj8nIize1oE2dEP71yzZW7T3FkA9X8+k9HWkZE+KQxxBCCHcleycJUUFbjp5jyAer2XD4LEF+Pky9tyPjBzhnuOfmdrWZ/XgP6oYFcuxsLsM/WcOcLScc/jhCCOFOJIkRogL2p2Vx9xfrSc3Mp3GtIH4b24MBLZ078bZ5dDBzx/bg+qYR5FmsjPspkUU7kq9+RyGE8FCSxAhhp/P5hTz6/WZyCoro0iCMOWN60CiiapZAhwb68tX9nbnnmroAPDNrG4dOX3kvMiGE8GSSxAhhB03TeO7X7exPyyYy2I+P7upAkF+V7t6ByWhg0pCWdK5fg6z8Qh77fhO5BUVVGoMQQrgCSWKEsMO3a48wb+tJfIwGPrqrAxHVLy+0WBXMJiMf3tWBmkF+7EnJ4oU5O8o1kV4IITyJJDFClNPmo+d45fddADx3Qxyd6l95I9OqEBnszwd3tsdogF82H2fGX8d0jUcIIaqaJDFClMOZ7HzG/LAZS5HG4NZRxbVb9NatUTj/N7AZAJN+28n24xk6RySEEFVHkhghrqLIqjHup0SSM/JoWLMabwxvc8UtBPTw6HWN6Ne8FgVFVh77YZMUwxNCeA1JYoS4ivcS9vHHvtMEmE18ck9Hqvu71kZvRqOBt0e0o25YIMfP5TJ+5lasVpkfI4TwfJLECFGGFUlpfLBsHwCv3dqKZlHVdY6odCGBZj6+uwO+PkaW7Unj4xX79Q5JCCGcTpIYIa7g+Lkcxv2UiKbB3V3rckv7OnqHVKZWtUN4+eaWALwTv5c/95/WOSIhhHAuSWKEKIWmafzfrK2k51hoUyeEiUNa6B1SuYzsXJcRHetg1eDJGYlk5Vn0DkkIIZxGkhghSrF4ZyrrDp7Fz8fIR3d1wM/HpHdI5fbysFY0qFmN09n5fLLigN7hCCGE00gSI8Tf5BcWMWXhbgAevq4hsWGBOkdkH3+ziQk3xAHwxepDHDubo3NEDlJUBNu2wbx5cPy43tEIIVxA1dZLF8INfLf2CEfO5BBR3Y9Hr2+kdzgV0r9FJN0ahrP24BneXJzEB3e21zsk+50/Dxs2wJ9/wurVsHYtZGaW/L5uXejZE3r0UN9bttQvViGELiSJEeIiZ88X8F6CWo30zIBmVKvifZEcxWAw8MJNzbnpg9XM23qS+7vXp2O9GnqHdXUnT8L//gcrV8KWLVBYeOnvg4Kgfn3YvRuOHoXp09UXQHAwpmuuoWHdutC/P5hdaym8EMLx3PMVWggneW/pXrLyCmkRHczwjq69GulqWsaEMKJjHWZuPM7L83cx+/HuLlWk7zIzZ8Jjj8HZsyW31a6tellsPS6tW4OPD2Rnw/r1l/XSGJcsoTVg3bwZvv8emjfX7Z8jhHA+SWKEuGB/Whbfrz8KwAs3NsdkdOE3/HL6vwHNmL8tmcRj6czdepKb29XWO6TLnTsHY8eW9Kh07AhPPaUSl7p1obTEKygI+vZVX6B6bLZvp2jpUor+8x98N2+GDh3g9dfhiSfAKNP/hPBE8pctxAWvLdhDkVWjX/NIujeuqXc4DlEr2J/HLszreXNREnmWIp0j+pulS1XvyvTpYDLBiy+qXpW774Z69UpPYErj4wPt22MdN47l772HdcAAyMuDceNgwAA4JptjCuGJJIkRAvhj3ymW7UnDx2jg+cFxeofjUA9e25DoEH9OpOfy5epDeoej5OTAP/+p5q6cOAFNmqihof/8p9JzWfLCwymaNw8+/hgCAyEhQSVK338PmmzHIIQnkSRGeL0iq8Yr89WS6nu71aNhRJDOETlWgK+Jfw1SidnHy/eTlpWnb0B//aWGej74QP38+ONqEm/Xro57DINBza9JTFTXzciAe++FkSPhzBnHPY4QQleSxAiv99Nfx0hKzSIkwMyTfZvoHY5TDG0bQ9vYUM4XFPHOkr36BbJoEXTvDklJEB2tfv7oI6hWzTmP16SJmvj78stqyGnWLOjSBVJTnfN4QogqJUmM8GpZeRbeiU8C4Mm+TQgN9NU5IucwGg28eKNaqfPTxmPsOpl5lXs4webNcNttahLu0KGwYwcMHOj8x/XxgRdegHXr1PLsgwfhpptUHRohhFuTJEZ4tY9XHOB0dgENa1bj3m719A7HqTrVD+PGNtFoGrzy+y60qpwfcvgwDB6sEoe+fVWPSFhY1T0+qFVPS5ZAeDhs3KiGlv5eh0YI4VYkiRFe69jZnOKJrhMGN8ds8vw/h+cGxeFrMrLmwBkSdqdVzYOePQs33KCGcNq0gV9+AV+deryaNIH588HfH37/HcaMkcm+Qrgxz3/VFuIKPly2n4JCK90bhdOveS29w6kSsWGB/KNnAwDeWpLk/N6YvDy4+WbYswfq1IEFCyAkxLmPeTXXXAM//qgm/06dClOm6BuPEKLCJIkRXiktK4/ZW04A8PSApq5dydbBHru+EYG+JvakZPHHvtPOeyCrFUaNUhNrQ0Jg4UJVgdcVDBtWsjrq3/+Gb7/VNRwhRMVIEiO80jdrDlNQZKVjvRp0rFfFczN0FhJoZmTnWAA+/+Og8x7omWfU3BezGWbPhlatnPdYFTFmjIoR4IEHID5e33iEEHaTJEZ4nfP5hXy/Tm0v8NC1DXWORh//6NEAowH+2HfaOSuV3n0X3nlHHU+bBr17O/4xHOH11+GOO9QE3+HDYetWvSMSQthBkhjhdWZtPEZGroX64YH0bxGpdzi6iA0LZHDraAC+cHRvzM8/w/jx6viNN+Cuuxx7fUcyGlWSdf31kJWlVlAdPap3VEKIcpIkRniVwiIrX/6pViQ9cG1Dj9jksaIevk71Qs3depLkjFzHXPTAATUPRtNUJV7bcI0r8/ODOXOgRQs4eRJuvx2KXGyPKSFEqZyaxKxatYohQ4YQExODwWBgzpw5ZZ6/YsUKDAbDZV8pKSnODFN4kUU7Uzh2Npewar7c1qGO3uHoqk2dUK5pGEahVePrPw9X/oKaBg89BLm50KsXvP9++Tdw1FtoqFo5Vb06rF8PH36od0RCiHJwahJz/vx52rZty0cffWTX/ZKSkkhOTi7+qlXLO5a/CufSNI3PV6mhk3uvqUeAr0nniPRn642Zvv4omXmWyl3syy9h+XIICIAvvlC7UruTevXgzTfV8fPPwyEX2SxTCHFFPs68+A033MANN9xg9/1q1apFaGio4wMSXm3DobNsPZ6Bn4/R46vzllevprVoXCuI/WnZ/LThGA9dV8GJzidPwv/9nzp++WVo1MhxQValhx9WNWRWrYJHHoHFi92nN0kIL+TUJKai2rVrR35+Pq1ateKll16iR48eVzw3Pz+f/Pz84p8zM9VKC4vFgsVSyU+Wf2O7nqOv6+lcpd0+W3kAgFvaxxDiZ9Q9nrJUZZv9o3tdnp+ziy9XH+TuLrXtr1ysaZgeewxjRgbWjh0pevxx0KltHdJuH3+MT8eOGOLjKfzqK7RRoxwUnetylb9RdyPtZr+y2qwi7WjQqmgDFYPBwOzZsxk2bNgVz0lKSmLFihV06tSJ/Px8vvjiC7777jvWr19Phw4dSr3PSy+9xOTJky+7ffr06QQGBjoqfOHmUnPhtUQfDGg8366IWgF6R+Q6Cq3w0mYTWRYD9zYuolOEfS8J0WvW0OXNN7GaTKx8+20y69d3TqBVqMkvv9Diu+8oCApi2Ycfki89w0I4XU5ODnfddRcZGRkEBweX6z4ulcSU5vrrr6du3bp89913pf6+tJ6Y2NhYTp8+Xe5GKC+LxUJ8fDz9+/fHbDY79NqezBXa7d9zdjJz0wn6N6/Fx3e10yUGe1R1m32y8iDvLN1PXFR15j5+TfkrGJ89i0/bthhSUymaMAFrKR8oqpLD2s1iwadHDwyJiViHD6foxx8dF6QLcoW/UXck7Wa/stosMzOTmjVr2pXEuORw0sW6dOnC6tWrr/h7Pz8//Pz8LrvdbDY77UnlzGt7Mr3aLS0rjzmJyQA8cn0jt/q/q6o2G9W9AZ+sPMSelCw2HMmkZ5Oa5bvjhAlqY8e4OEyTJmFykbatdLuZzfDVV9C5M8ZffsH4++9qqwIPJ69tFSPtZr/S2qwibejydWISExOJjo7WOwzhxr5be4SCIivt64bSsV4NvcNxSaGBvsVbEUwtb/G7+Hj4+ms18fWLL1S9FU/Svn3JZOXHH4f0dF3DEUJczqlJTHZ2NomJiSQmJgJw6NAhEhMTOXqhIuaECRMYddGkuXfffZfffvuN/fv3s2PHDsaNG8eyZcsYM2aMM8MUHiynoJDv1h0B4JHrGnrVRo/2eqCn2opg1d5T7E6+ylYE58+rlTyg9iAqY/K9W5s0CZo0geRkePZZvaMRQvyNU5OYjRs30r59e9q3bw/A+PHjad++PRMnTgQgOTm5OKEBKCgo4Omnn6Z169Zcf/31bN26laVLl9K3b19nhik82KyNx0nPsVAvPJD+LaL0DselxYYFcsOFrQiuujHkiy/C4cMQGwuvveb84PRiq3kD8Pnnqg6OEMJlOHVOTK9evShr3vC0adMu+fnZZ5/lWfm0IxykyKrxxWr1ZvxgzwZevcVAeT18bUN+35bM3MSTPDOwGdEhpSzjWr9ebfAI8NlnqsqtJ7vuOnj0Ufj0U1WReNs2kJWPQrgEl58TI0RFLd2dyrGzudQINHNbx1i9w3ELbWND6dJAbUXw/YVhuEtYrfDYY2qLgXvugQoUs3RLb7wBtWurvaFsVX2FELqTJEZ4rJ/+OgbA7Z1jZYsBO9zfvT6ghuIKi6yX/vKXX2DLFtX78s47VR+cXoKDS/6977wDZ87oG48QApAkRniolIw8ViSlATCyk/TC2KNf80jCqvmSlpXPyr2nSn5RVAQX5rPx1FMQEaFPgHq57TZo1w6yslTPjBBCd5LECI/0y+bjWDXoUj+MhhFBeofjVnx9jNzavjZQ0psFwPffw549UKMGjB+vU3Q6MhrhlVfU8YcfqhVLQghdSRIjPI7Vql0ylCTsZ6sZk7AnjbSsPCgogJdeUr987jkICdEvOD0NHgzdu0NuLrz6qt7RCOH1JIkRHmfdoTMcPZtDkJ8Pg1vLsuqKaBJZnfZ1Qymyavy6+QR8+aVaUh0VBWPH6h2efgyGkuRl6lTVJkII3UgSIzzOzAu9MEPbxRDo6/I7a7isOy70xsxZsx/NNozy73/L8uJevaBfP7VT93/+o3c0Qng1SWKER8nIsbBgRwogE3or68Y2MQT6mugZPxPDyZNQt66qkyJKemO++QaSkvSNRQgvJkmM8Ci/bT1BQaGVuKjqtKnjpfM2HCTIz4fhTYJ5bN3P6oZJkzxvf6SK6tIFhg5VdXMmTdI7GiG8liQxwqMUT+jtFCv7JDnAo4nzCc/N5FBYbbJuv1PvcFzLyy+rOTI//QRbt+odjRBeSZIY4TF2nMhg58lMfE1GbrmwRFhUwtmzxHzxEQDv9LiLeTtPXeUOXqZNGxg5Uh2/+KK+sQjhpSSJER7D1gszoGUkNar56hyNB/jvfzFkZnKmURzzm1/LTxuPXf0+3mbyZDCZYN48WLdO72iE8DqSxAiPkGcpYk7iCaCkxomohJQUeP99AMyvvoLJZGLrsXT2pGTqHJiLadoU7rtPHb/wgr6xCOGFJIkRHmHhjmSy8gqpHRpAj0Y19Q7H/U2ZAjk50KULwbffSv8WkcDfKvgKZeJEMJshIQGWL9c7GiG8iiQxwiNcPKHXaJQJvZVy9Ch8+qk6fvVVMBiKKx/P3nKC/MIiHYNzQfXqwSOPqON//1vt8C2EqBKSxAi3d+TMedYdPIvBALd1qqN3OO7vjTfUNgO9ekHfvgBc1ySC6BB/0nMsxO9K1Tc+V/Tvf0NAAKxdC/HxekcjhNeQJEa4vZkXJpxe2ySC2qEBOkfj5s6eha+/VscTJ6olxIDJaOC2jipBlCGlUkRFlfTGvPOOvrEI4UUkiRFurbDIyqyNx4GSMvmiEj77TG1u2K6d6om5yO0XKiCv3n+a4+dyqj42V/fPf6qdrhcvhp079Y5GCK8gSYxwayv3niItK5+war70ax6pdzjuraAAPvhAHY8fX9wLYxMbFkiPxuFoGsWJo7hIgwZwyy3q+N13dQ1FCG8hSYxwa7ahjVva18bXR57OlTJzJiQnQ3R0SRG3v7H1xvy86ThFVpnAepmnnlLfv/sOTklxQCGcTV71hds6k51Pwp40QGrDVJqmlczlGDsWfEsvFjiwZRQhAWZOpOey5sDpKgzQTXTvrvZVys+HTz7ROxohPJ4kMcJtLdieTJFVo3XtEJpGVtc7HPe2ahVs2aJW2NgmqJbC32xiSNtoAOYmnqyq6NyHwaCG4gA++gjy8vSNRwgPJ0mMcFvztiYDMLRtjM6ReABbL8x990F4eJmnDmmj2nvRzhSpGVOa4cMhNhbS0uDHH/WORgiPJkmMcEsn03PZcPgsADdd6BkQFbRvn9r7B2DcuKue3rl+GFHB/mTlFbIySeZ9XMbHR61UApUcSvE7IZxGkhjhln7fpnphutQPIzpEasNUynvvqTfaG2+EZs2uerrRaOCmNipxnHfh/0H8zYMPQrVqsGMHLF2qdzRCeCxJYoRbmrtVzccY0k6Gkirl4uJ2trkc5TD0Qrsv3ZVKTkGhMyJzb6Gh8MAD6vh//9M1FCE8mSQxwu0cOn2e7ScyMBkNDG4VpXc47u3zz9VGj23bQu/e5b5b69oh1AsPJNdSxNLdaU4M0I09+aSa6LtwIezapXc0QngkSWKE25l3oRemR+OahAf56RyNGysogPffV8dPPXVZcbuyGAyG4gnVskrpCho2hGHD1LEUvxPCKSSJEW5F07TioSRZlVRJs2bByZNq35877rD77kMutP/KvWlk5FgcHZ1nsA3RSfE7IZxCkhjhVvakZLE/LRtfHyMDWso2AxV2cXG7MWPAz/4eraaR1YmLqo6lSGPxzhQHB+ghevSATp1UvZhPP9U7GiE8jiQxwq3YemF6N4sg2N+sczRu7I8/YPNm8PeHRx+t8GVsvTG2/xfxN38vfpefr288QngYpyYxq1atYsiQIcTExGAwGJgzZ85V77NixQo6dOiAn58fjRs3Ztq0ac4MUbgRTdOK58MMkaGkyrGtmLnvPqhZs8KXsRW+W3PgNKey5A26VLfdBnXqQGqqFL8TwsGcmsScP3+etm3b8tFHH5Xr/EOHDnHjjTfSu3dvEhMTGTduHA8++CCLFy92ZpjCTWw5ls7xc7kE+proGydDSRV24AD89ps6Lkdxu7LUDQ+kbWwoVk1tAyFKYTbDE0+oYyl+J4RDOTWJueGGG3jllVe4xbY9/VV8+umnNGjQgLfffpvmzZszduxYbrvtNv4ndRYEJauS+reIJMDXpHM0buyzz9Qb6aBBEBdX6cvZJljPkyGlK3voIQgMhO3bYc0avaMRwmP46B3AxdauXUu/fv0uuW3gwIGMK+PTYn5+PvkXjTNnZmYCYLFYsFgcu2LCdj1HX9fTOaLdiqwa8y+8SQ5uFenx/wdOe64VFOAzbRoGoPDBB9EccP2BzWvyyu+w8cg5jpzKJCZUvwrKLvs3GhSEacQIjN98g/Wzzyjq0kXviC7hsu3m4qTd7FdWm1WkHV0qiUlJSSEy8tJhgsjISDIzM8nNzSUg4PIXxylTpjB58uTLbl+yZAmBgYFOiTM+Pt4p1/V0lWm3fRkGTmWbCDRpZO/7iwUHHBiYC3P0cy3mzz/pfOoUeTVqsMRgQFuwwCHXbVTdyP5MI2/PWkHf2voPl7ji32iNFi24DrD+9BNLBg6kMChI75Au44rt5g6k3exXWpvl5OTYfR2XSmIqYsKECYy/qFx6ZmYmsbGxDBgwgODgYIc+lsViIT4+nv79+2M2y8qY8nJEu73w207gBDe1q8PQm1o6NkAX5KznmunDDwEwP/IINwwZ4rDrZkQcY+Lc3ey3hPL24G4Ou669XPpv9IYb0L79Fp+dOxl05gzW22/XO6JiLt1uLkzazX5ltZltJMUeLpXEREVFkZqaesltqampBAcHl9oLA+Dn54dfKTUuzGaz055Uzry2J6touxUUWlm8S5W2H9a+jle1vUOfawcPFm9GaHr4YUwObMeb2tbhP/P3sCs5i6Pp+TSK0LeXwWX/Rh9+GJ58EtOXX2J64gm7qiRXBZdtNxcn7Wa/0tqsIm3oUnViunXrRkJCwiW3xcfH062bfp/shP5W7z9Feo6FiOp+dG0Yrnc47uvLL9X3AQOgQQOHXjqsmi89m6il2jLBtwz33KNq82zbBn/9pXc0Qrg9pyYx2dnZJCYmkpiYCKgl1ImJiRw9ehRQQ0GjRo0qPv/RRx/l4MGDPPvss+zZs4ePP/6YmTNn8tRTTzkzTOHibHvz3Ng6GpPRtT65ug2LpWS36ocecspDDL2o8J0my4hLFxam6saA2nxTCFEpTk1iNm7cSPv27Wnfvj0A48ePp3379kycOBGA5OTk4oQGoEGDBvz+++/Ex8fTtm1b3n77bb744gsGDhzozDCFC8stKCJ+lxpilAJ3lfD775CcDBERMHSoUx6if4tI/HyMHDx1nl3J9o9tew1bEvnjj5CVpW8sQrg5p86J6dWrV5mfyEqrxturVy+2bNnixKiEO1m2J43zBUXUqRFAh7qheofjvmyf+kePBl9fpzxEdX8zfeJqsXBHCnO3nqRlTIhTHsftXXstNGsGSUkqkXn4Yb0jEsJtudScGCH+7uJtBgwuNgnSbRw9CosWqeMHH3TqQ9mGlOZvTZYhpSsxGEp6Y2RISYhKkSRGuKycgkKWJ6lVSTe1idY5Gjf21VdgtUKvXtCkiVMfqndcLar5mjiRnsu24xlOfSy3NmqU2o5g40aQnmchKkySGOGyViadIr/QSt2wQFpEO7bmj9coKlJJDDhtQu/F/M0mesXVAmDRzhSnP57biogA23Ys0hsjRIVJEiNclu1NcFCrKBlKqqjFi+HYMbUq5tZbq+QhB7WMAmDRjhQZUiqLbS7MDz/A+fP6xiKEm5IkRrikgkIry3aroaSBF94URQVMnaq+jxql6pNUgd5xtfA1GTl0+jz70rKr5DHdUu/e0LAhZGbCzJl6RyOEW5IkRrikNQdOk5VfSK3qfrSPDdU7HPd08iTMn6+Oq2AoySbIz6e48N3iHTKkdEVGY8lEaxlSEqJCJIkRLmnxhaGkAS0jMUqBu4r5+ms1J6ZHD2jRokofunhISebFlG30aPDxgbVrYccOvaMRwu1IEiNcTpFVY8lOVeBuUEtZlVQhVmvJNgNV2Atj069FJEYD7DyZybGz9u9M6zWiosC2Eaf0xghhN0lihMvZdOQcZ84XEBJgpmvDML3DcU8JCXDoEISEwIgRVf7wYdV86dpA7XO1WHpjymZLMr/7DnJz9Y1FCDcjSYxwOYsuzKPo27wWZpM8RSvENqH3nnsgMFCXEAa2jAQkibmqAQOgbl04dw5++UXvaIRwK/IOIVyKpmnFb3qDZFVSxZw6Bb/9po51GEqyGXDh/2/jkXOkZeXpFofLM5nggQfU8Rdf6BuLEG5GkhjhUnacyOREei4BZhPXNY3QOxz3NGOG2rW6Qwdo21a3MGJCA2gbG4qmUbyJp7iC0aPVdgQrV8Lhw3pHI4TbkCRGuBRbL0yvZhH4m006R+Omvv1Wfb/vPn3joKQ3bfFOSWLKFBur6sYAfP+9vrEI4UYkiREu5eIqvaICdu9W+/GYTHDHHXpHUzwvZs3+02TkWnSOxsXde6/6/t13IJWOhSgXSWKEy9iflsX+tGzMJgO9L+y/I+z03Xfq+w03QC3927BhRBBNI4MotGos2yO9MWUaPhwCAmDvXtiwQe9ohHALksQIl2EbcujeqCbB/mado3FDVmvJUMSoUfrGcpGL91ISZahevWRTSFsyKoQokyQxwmUslqGkylm5Um32GBJSUkDNBdhWKa3ce4rcgiKdo3FxtuTzxx+hoEDfWIRwA5LECJdwIj2XbcczMBigf4tIvcNxT7ZP77ffXmWbPZZHy5hg6tQIIM9iZeXeU3qH49r69lVVfM+ehYUL9Y5GCJcnSYxwCbaNAjvXC6NmkJ/O0bihnByYNUsd2yaIugiDwXDRKiUZUiqTjw/cfbc6tq0yE0JckSQxwiXY3twGylBSxfz2G2RnQ4MGasNHF2MbIkzYnUpBoVXnaFycLQmdP1/1yAghrkiSGKG709n5/HVYvVjbluQKO9k+td9zDxhd78+6Q90a1AzyIzOvkHUHz+gdjmtr2xbatFFzYmbO1DsaIVya673aCa+zdFcqVg1a1Q6mTg199vlxaykpsGSJOnaxoSQbo9HAgAsJ6iIZUrq6i2vGCCGuSJIYobtFsldS5UyfrpZXd+sGTZroHc0V2f5/l+xMpcgqxdzKdNddqkdtzRrYv1/vaIRwWZLECF1l5llYs18NL8jS6gqyfVp30V4Ym2sahhPs78Pp7Hy2HD2ndziuLSYG+vdXx7INgRBXJEmM0NXyPWkUFFlpGFGNxrWq6x2O+9m+HRITwWyGkSP1jqZMvj5G+ja/MKQkhe+uTrYhEOKqJIkRulpyoUrvQBlKqhhbL8xNN0FYmL6xlIPt/3nxrhQ0eWMu27BhEBQEBw+qYSUhxGUkiRG6KSgsKX42QArc2a+oCH74QR270DYDZbmuaU18fYwcO5vLvrRsvcNxbdWqqf2UQGrGCHEFksQI3aw/dIbs/EJqBvnRtk6o3uG4n2XL4ORJ1QMzeLDe0ZRLoK8PPRvXBCB+l2wIeVW25HTmTMjL0zcWIVyQJDFCN0svvIn1jauF0WjQORo3ZPt0fscd4Ourbyx26Ntc7a69dLckMVfVqxfUqQPp6ar4nRDiEpLECF1omsbS3WkA9JOhJPtlZ8Ovv6pjNxlKsukbp/6/E4+lcyorX+doXJzRqAoYgtSMEaIUksQIXexJyeJEei5+Psbi4QVhh19/VfslNWkCXbroHY1dokL8aVMnBE1Tq9PEVdhWKS1YAKdkA00hLlYlScxHH31E/fr18ff3p2vXrmzYsOGK506bNg2DwXDJl78L7cgrHMM2lNSzcU0CfE06R+OGbENJo0aBwf2G4my9MfEypHR1LVpAx45QWAgzZugdjRAuxelJzE8//cT48eOZNGkSmzdvpm3btgwcOJC0tCt/AgsODiY5Obn468iRI84OU1SxpXtkKKnCkpPVpF4o2fHYzfRroebFrN53mjxLkc7RuAFbb8z06frGIYSLcXoS88477/DQQw8xevRoWrRowaeffkpgYCBfffXVFe9jMBiIiooq/oqMlDc6T5KWmcfWY+mAmtQr7DRzpip+1q2b2rXaDbWIDiYmxJ9cSxFrDpzWOxzXd/vtan7MunVw6JDe0QjhMnycefGCggI2bdrEhAkTim8zGo3069ePtWvXXvF+2dnZ1KtXD6vVSocOHXjttddo2bJlqefm5+eTn18yOTAzMxMAi8WCxWJx0L+E4mte/F2Uz9/bbcnOZADa1A6mRoBJ2rMUZT3XTNOnYwSKbr8dqxu3Xe9mEfyw4RiLd6RwbSPHFOrz2L/RmjUxXX89xuXLKfrhB6z/+pdDL++x7eZk0m72K6vNKtKOTk1iTp8+TVFR0WU9KZGRkezZs6fU+zRr1oyvvvqKNm3akJGRwVtvvUX37t3ZuXMnderUuez8KVOmMHny5MtuX7JkCYGBztkROT4+3inX9XS2dpuxxwgYqWM8x4IFC/QNysX9/bkWmJpK/w0b0IxG4kNDyXfj9queZQBMLNp6jGt8DuPIVfae+Ddat0UL2i9fTvaXX7KidWunPIYntltVkHazX2ltlpOTY/d1DJoTa3+fPHmS2rVrs2bNGrp161Z8+7PPPsvKlStZv379Va9hsVho3rw5d955Jy+//PJlvy+tJyY2NpbTp08THBzsmH/IRbHEx8fTv39/zGazQ6/tyS5ut0LNSOcpy8kvtDJvTDfiomS/pNJc6blmfOMNTC++iLVPH4oWLdIxwsrLL7TSdcpyzhcU8eujXWldO6TS1/Tov9GzZ/GJjcVgsWBJTFQTfh3Eo9vNiaTd7FdWm2VmZlKzZk0yMjLK/f7t1J6YmjVrYjKZSE29dAVCamoqUVHl2yvHbDbTvn179l9hO3o/Pz/8/PxKvZ+znlTOvLYnM5vNrNl3lvxCK7VDA2hVpwYGN1xZU5Uue67NnAmA8a67MLr5c9BshuuaRrBwRwor9p2lQ33HLbX3yL/RyEgYOBDmz8f8889Qyoe6yvLIdqsC0m72K63NKtKGTp3Y6+vrS8eOHUlISCi+zWq1kpCQcEnPTFmKiorYvn070dHRzgpTVCFbldZ+zWtJAmOvnTvVrtVmM9x6q97ROES/C7taL5UtCMrnzjvV9x9/lJ2thaAKVieNHz+ezz//nG+++Ybdu3fz2GOPcf78eUaPHg3AqFGjLpn4+5///IclS5Zw8OBBNm/ezD333MORI0d48MEHnR2qcDKrVar0VsqPP6rvN9wANWroG4uD9I6rhdEAu5IzOZGeq3c4rm/oUAgIgAMHYONGvaMRQndOT2JGjhzJW2+9xcSJE2nXrh2JiYksWrSoeLLv0aNHSU5OLj7/3LlzPPTQQzRv3pzBgweTmZnJmjVraOHA8V+hj+0nMzmdnU+Qnw9dG4TrHY570bSSJMb2adwDhFXzpWM9lZAtk8J3VxcUpBIZKHk+COHFqqRi79ixYzly5Aj5+fmsX7+erl27Fv9uxYoVTJs2rfjn//3vf8XnpqSk8Pvvv9O+ffuqCFM4WcKFAnfXN43A10d2vLDLxo1w8CAEBsKQIXpH41B9m9uq98oWBOViS2J/+gmsVn1jEUJn8k4iqsyyPWrfF1u1VmEH26fuoUOhWjV9Y3Ew27yYdQfOkJ1fqHM0bmDQIAgNhZMn4Y8/9I5GCF1JEiOqxJk8SErNxmiAXk0libFLUZH61A0eNZRk0yiiGg1qVqOgyMofe2WDw6vy8yuZ2C1DSsLLSRIjqsTOc2olUqf6YdSo5qtzNG7mjz/Up+7QULXE1sMYDIbi7SdkQ8hysiWzP/8MUi1WeDFJYkSV2H4hienfXFYl2c32aXv4cPUp3APZVqst35NGkVWWDl9V796qbsyZMyDVYoUXkyRGOF1WnoUDmSqJ6dtchpLsUlCgPm2DRw4l2XSqV4OQADPncixsPnpO73Bcn8mkNoUEGVISXk2SGOF0f+w7Q5FmoGHNQBpGBOkdjlsxJCTA2bMQFQW9eukdjtP4mIz0bhYBSOG7crvjDvV9zhzIlRo7wjtJEiOcblmSmqzZJ056YexltE3ovf129enbg9mGlJbKvJjy6dYN6tWD7Gz4/Xe9oxFCF5LECKcqLLKy4sKKkz4XPmmL8jHl52OYO1f94MFDSTbXNY3Ax2jgwKnzHDyVrXc4rs9gKOmNkSEl4aUkiRFOtfHIOTJyC6nmo9E+tvK7FHuTyI0bMWRnQ/36cFGBSE8V7G/mmoaqknOCFL4rH1ty+/vvkJGhbyxC6ECSGOFUyy5U6W0RquFjkqebPWrbCpndcYf61O0FbBO/E/bIkFK5tGkDzZtDfr6aGyOEl5F3FeFUCRfmN7SsIctm7ZKRQeSmTerYC4aSbPrGqXkxfx0+R0au1D+5KoPh0p2thfAyksQIpzly5jwHTp3Hx2igWagkMfYw/PYbJosFrXlzaN1a73CqTN3wQBrXCqLIqrFKqveWjy2JWboUTkmbCe8iSYxwGttQUqd6oQT66ByMmzHOnAmAdeRIrxlKsrFV712+R+bFlEvjxtCpk9qewlZTSAgvIUmMcBpbEtNbViXZ58wZVR8GsI4YoXMwVc+2FH95klTvLbeRI9X3C8mvEN5CkhjhFNn5haw7eAaAXk0libHLr79iKCoivWFDaNJE72iqXMd6NQj29+FcjoXEY1K9t1xs1XtXroTkZH1jEaIKSRIjnGL1vlNYijTqhwfSoGag3uG4lwsF7k707KlzIPrwMRm5vtmFVUqy1Lp86tZVxe80TYaUhFeRJEY4hW0oqU9cJAYvm9NRKWlpsHw5ACe7d9c5GP3Y5sUsk3kx5WfrjZEhJeFFJIkRDme1aizbo1ZJyIaPdvrlF7BasXbqRE5UlN7R6Ob6phEYDbAnJYsT6bIvULmMGKEmga9eDceP6x2NEFVCkhjhcNtPZHA6O58gPx861w/TOxz3cmEoSfPCCb0Xq1HNlw51awDSG1NutWuDbQhy1ix9YxGiikgSIxzO9qZzbZOa+PrIU6zcTp6EVasAsA4frnMw+utzoRdvmWwIWX62ISXbxqFCeDh5hxEOVzIfRoaS7PLLL2piZrduaqKml7NV711z4Ay5BUU6R+MmbrsNjEZYvx4OH9Y7GiGcTpIY4VCpmXlsP6E2ouvVTJIYu9g+Pdtqfni5ppFB1A4NIL/QypoDp/UOxz1ERcH116tjGVISXkCSGOFQtiqrbWNDiajup3M0buTYMfjzTzUx87bb9I7GJRgMhuLevASZF1N+MqQkvIgkMcKhbENJfWUoyT622h49e6oJmgIomRezfE8amibVe8tl+HAwmWDTJjhwQO9ohHAqSWKEw+RZili9X3X7y3wYO8lQUqm6NQwnwGwiOSOP3clZeofjHiIioE8fdSw1Y4SHkyRGOMz6Q2fJKSgiMtiPljHBeofjPg4fVhMxjUb1KVoU8zeb6NE4HIBle2SVUrnJkJLwEpLECIexLYXtE1dLqvTawzYB8/rr1cRMcYk+F1YpybwYO9x6K/j4wNatkJSkdzRCOI0kMcIhNE1jWVLJVgPCDjKUVCbb0GTisXTOZOfrHI2bCAuD/v3VsQwpCQ8mSYxwiP1p2Rw7m4uvj7G4+1+Uw/79agKmyaQ+PYvLRIX40zImGE2DFUmn9A7HfciQkvACksQIh7B19XdrGE6gr4/O0bgR21BSnz5qQqYoVR/ZENJ+w4aBry/s3Km+hPBAksQIhyheWi0bPtpHhpLKxZbErNp7ioJCq87RuInQUBg4UB3LkJLwUFWSxHz00UfUr18ff39/unbtyoYNG8o8f9asWcTFxeHv70/r1q1ZsGBBVYQpKig9p4BNR84B0Fuq9JZfUpKaeOnjA7fconc0Lq1tnVDCq/mSlV/IxsNn9Q7HfVw8pCR1doQHcnoS89NPPzF+/HgmTZrE5s2badu2LQMHDiQtrfRu4TVr1nDnnXfywAMPsGXLFoYNG8awYcPYsWOHs0MVFbRy7ymKrBpNI4OIDQvUOxz3YeuF6d9fTcQUV2Q0Goq3sZAhJTsMHQp+fiph3rZN72iEcDinJzHvvPMODz30EKNHj6ZFixZ8+umnBAYG8tVXX5V6/nvvvcegQYN45plnaN68OS+//DIdOnTgww8/dHaoooJKNnyUVUl2sXXxy1BSudiGKiWJsUNwMAwerI5lSEl4IKfOwCwoKGDTpk1MmDCh+Daj0Ui/fv1Yu3ZtqfdZu3Yt48ePv+S2gQMHMmfOnFLPz8/PJz+/ZNllZmYmABaLBYvFUsl/QYkzGTmcGjaSnPAYvkzKIrVRC6w+Zodd353Z3lSubxJWapvbbnPk/4fb27kT886daL6+FA4eDH9rG2mzy11TPxQfo4GDp8+zNzmdBjWrXXaOtNvlDLfeis/s2Wg//UThpElqf66/kXa7nKZpfLf+GEfP5lzxHKvVytEjRjbO34XR6PlTTP3OZxG7J5F6uzbjU706nae+afc1ynquVeT559Qk5vTp0xQVFREZeekn9MjISPbs2VPqfVJSUko9PyUlpdTzp0yZwuTJky+7fcmSJQQGOm5oo3D3QYb/uZjWAHO/5rzZny0xzdgQ24q/6rRkS0xT8sz+Dns8d1PNRyN5x1oWlLEIIj4+vuoCcnFx06fTDEhp25YNa9Zc8Txps0s1rG5kb4aRj+esonfMled4SLuVMJnNDPL1xefAAf784AMyGje+4rnSbiX2ZRj4cJepHGcaIeW40+PRQ83z5+h8bCddju+k8/FdNE87hElTE+uTQyJYMKxXha9d2nMtJ+fKCeOVuP1a2AkTJlzSc5OZmUlsbCwDBgwgONhxpe/Tmx4hYe9xwv9aTbPDe6iWnUnPI1vpeWQrAEU+PqQ0bsnxlh043qIDJ5q3JzekhsMe39X1ahZBh7qhpf7OYrEQHx9P//79MZul9wpNw+fZZwGIGDOGwbbu/otIm5UuNfQIry1MIs0UweDBnS77vbRb6YyzZsEvv3BtcjLWf/7zst9Lu13utYVJwBHa1gmhe8PS56wVWa0cOnSIBg0aYHL3nhhNo8bJo9TZtZnau7ZQZ+cmwk8cvuy0c9GxHG/ZkbMdujB40CC1XYodynqu2UZS7OHUJKZmzZqYTCZSUy/d8yQ1NZWoK5RXj4qKsut8Pz8//Pz8LrvdbDY79I8xonljrvvsdRYsWEDLQYNg717444/iL9OJE9Tes5Xae7bS9Zev1Z3i4tSuxD16qO+NGpXalestHP1/4ra2blXPHz8/fG65BcpoE2mzS/VvGc1rC5PYcPgceUVQ3b/0tpF2+5s77oBffsH0yy+Y/vvfK74OSbuVWLFXbWb7WK/GDGpV+vuPxWJhwYIDDB7YzP3azWKBLVtg9Wr19eef8PcFNwYDtG4N115b/FUjJgZHfDwv7blWkTZ0ahLj6+tLx44dSUhIYNiwYYAaQ0xISGDs2LGl3qdbt24kJCQwbty44tvi4+Pp1q2bM0O1j9Go/mNbt4bHH1dLFw8fhlWr1BPhzz9h1y7Ys0d9ffGFul90NPzzn+rLgUNdws3YViUNHqwmXopya1CzGg1rVuPg6fP8se80g1tH6x2Sexg8GKpVU69TGzZA1656R+TSDp7K5tDp85hNBno2qal3OI516BC89JIqtJmbe+nv/Pygc+eSD989ekAN1x5RcPpw0vjx47nvvvvo1KkTXbp04d133+X8+fOMHj0agFGjRlG7dm2mTJkCwJNPPsn111/P22+/zY033siMGTPYuHEjU6dOdXaoFWcwQIMG6uu++9RtZ87AmjUqoVm9Gv76C5KTYcIEeO89ePFFePBBVVFTeA9Nk1VJldQnrhYHVx8iYXeaJDHlFRiollv/+KN6/kkSUybbYoVrGoYT5Of2sy6U1FR45RX47LOShQRhYZeOFnTsqBIZN+L0QbyRI0fy1ltvMXHiRNq1a0diYiKLFi0qnrx79OhRkpOTi8/v3r0706dPZ+rUqbRt25aff/6ZOXPm0KpVK2eH6ljh4TBkCLz+ukpiMjLgu+9UopOSAmPGQPPm8MMPYJUKpF5j82Y4cAACAuDGG/WOxi3ZqveuSErDapUCbuVmK3w3c6a85lxFSdkIDyjemZ4O//43NGwIH36oEpj+/WHtWjh1Cn77DZ59Frp3d7sEBqqoYu/YsWM5cuQI+fn5rF+/nq4XfQpYsWIF06ZNu+T8ESNGkJSURH5+Pjt27Ch14qPb8feHe+5Rw0sffgiRkXDwoLqtXTuYP18qanoD21DSTTdBUJC+sbipTvXDqO7nw5nzBWw9nq53OO5j0CA1fHn8OKxbp3c0Liszz8KGQ6oqtFsnMTk58OabKnl57TX1c9eusGwZLFkC11xj96RcV+T+/wJ34+uremEOHFBPrJAQ2L5d9dr07AkJCZLMeCoZSnIIXx8j1zVVm2VK4Ts7+PvDzTerY9nZ+or+2HuaQqtGo4hq1Au/vBaRy8vPh48/hiZN4F//gnPnoEULmD1b9b707q13hA4lSYxeqlVT82MOHlRPNH9/NYemXz/o1QtWrNA7QuFoGzbAkSPq//6GG/SOxq3JrtYVZBtSmjULior0jcVFlWxm62YVyAsK4NNPVfIyZgycPAn16sE336gtJ4YN88jVsZLE6C0sTM2bOXAAnnhC9dSsWqWy5d691bHwDLZPv0OHyuq0SurVLAKDAXaezCQlI0/vcNzHgAGq9zc5WS06EJcosmqsSFJJjNtsZltQAFOnquTlscfg2DGIiVHTFpKSYNQoMJWnaJ97kiTGVcTEwPvvq2Tm8cdVMrNiBVx/PfTtqyYHC/dltapPv1DyaVhUWHiQH+1iQwHpjbGLr2/JjukypHSZrcfTOXO+gOr+PnSq79pLi7FYVPmOZs3gkUfg6FFVxsP2PjJmjFtO1LWXJDGupk4d+Ogj2L8fHn1UFUJbtkwVGrr5ZqhARUPhAtauVRMqg4PVBEtRaX2Lh5RSr3KmuIRtPtbPP0Nhob6xuJhluy/sA9c0ArPJhd8et2xRq1sfekjV/omKgnffLenR9/eeLXBc+H/Jy8XGwiefwL598PDD4OMDc+eqnpmLlqQLN2H71HvzzV71AuNMtl3T/9x/hjyLzO8ot7591TB2WpoMV/+NWyytXroUrrtOJSy1asE776jjJ59UpRu8jCQxrq5ePVWcaP169YRNTFTr+ffu1TsyUV5FRTKU5ATNo6sTHeJPrqWItQfP6B2O+zCb4dZb1bEMKRVLzshlV3ImBgP0ctX5MNOnq+rL2dlqzuTevfDUU149x06SGHfRoYNavdS4seo+7NFDJTbC9a1erQochoaqiZXCIQwGA71tQ0q7ZV6MXWxDSr/8UlK91cvZemE61K1BWDUXrKT+9ttw993q/2vkSFi4UE3S9nKSxLiTRo3UioJOneD0aejTBxYs0DsqcTW2T7u33CLbTDhY34uWWmtSX6n8evWCiAi1Pcry5XpH4xJsibDLDSVZrfD00/B//6d+fvJJ1SPjBZN2y0OSGHdTq5Z60Rk4UFVgHDoU/lbxWLiQwkI1gRJkKMkJujeqiZ+PkRPpuexNzdY7HPfh4wPDh6tjGVIiz1LEnwfUrtUulcQUFKiq7u+8o35+80343/88otKuo0hLuKOgIJg3T63/LyqC0aNV9V/5JOp6Vq5U+5OEh6sJlcKhAnxNdG8UDkCCrFKyj21I6ddf1ZulF1t74Ax5FisxIf7ERVXXOxwlM1Ptr/bjjyrp/O47eOYZjyxYVxmSxLgrs1n1wDz3nPr53/9WdQFkyaRrsX3KvfVW9X8mHK7PhcqqMi/GTtdeq5bmpqdjSEjQOxpd2RLgPs1rYXCFJOHECbUSdelSVeH7999Vj4y4jCQx7sxggClT4L331PEnn6iZ6+npekcmQE3A++UXdSxDSU5j6/7ffPQc53K8u0fBLiYT3HYbAEbb6jkvpGkay/ecAlxkKGnjRujcWa1EjYhQRU9lQcAVSRLjCf75T9UlHBgI8fFqd9L9+/WOSixbBmfPqheiXr30jsZj1Q4NIC6qOlYNVu2TpdZ2uTCkZJg7F6OXrlJKSs3iRHou/mYj3RvV1DeYWbNUDZjkZGjZUq1A7dRJ35hcnCQxnmLYMLVyqU4dtV9G166yiaTebENJt92mxrSF09g+QS9POqVzJG6me3eoXRtDZia1tmzROxpdJFwYhuzRqCb+Zp32GNI0ePll1WObm6s2iF2zBho00CceNyJJjCdp107tlNyli+oB6N8fvvxS76i8U0EBzJ6tjmUoyen6NldJzB/7TlMk89vLz2iEESMAiPHS/dls9WF66zWUlJen5rtMnKh+HjdOLdwIDtYnHjcjSYyniY5WPTB33KEm+T74oKoxUCRl2avUggVqblJUlJpAKZyqXWwNagSaycwr5FCW3tG4mQtDStEbNqhKsF7k7PkCthw9B+g0HyYlRQ01T5+uems/+0wtofbgXacdTZIYTxQQoP4oXnpJ/fzOO2rPnix5da8yX3+tvt9zj7wgVQGT0UDvC6Xid56TlzW7dO2K1rgxPnl5GGwT0b3Eyr1pWDVoHh1MTGgV7zu0bZvqNV+/HmrUgMWL1T55wi7y1+6pDAaYNAlmzFAbDv7+O9x/v9SSqQqpqaq9QbW5qBK24YCd51xgiaw7MRiwjhoFgPGbb3QOpmolFFfpjajaBz59Wq04OnYMmjaFdetUBXZhN0liPN3IkarWgI+PWsH04496R+T5fvhBDd917qxWGIgqcV3TCExGA6m5Bo6czdE7HLdiveceNKMR4+rVXrOy0VJkZeVe29LqyKp98DFj1IedFi1UAtO0adU+vgeRJMYb9OgBL76ojseOhZMn9Y3Hk2layVDS6NH6xuJlQgLMdK4XCsgqJbvVqUNa27bq2Et6Y/46fJasvELCq/nSLja06h74p59g5kw1zPztt2ooSVSYJDHeYsIE6NgRzp2Dhx6SYSVn2bQJduxQm7PdcYfe0XidPsUbQkoSY6+jtm0xvvnGKxYCLN1VsirJZKyiIciUFHj8cXX873+r12RRKZLEeAuzWb04+fqqlTO23gLhWLZ2veUW+YSlA9vchr8OnyMj1zuLt1VUSpcuaKGhap7GsmV6h+NUmqaxdLfaaqBf8yoaStI0eOQRVf6iXTuVxIhKkyTGm7RsCa+8oo7HjYMjR3QNx+Pk5alVYSBDSTqpFxZIVIBGoVUrnu8gysfq64vV1nvo4R9y9qdlc/RsDr4+Rq5tUkVVer/7DubOVR8ov/1WfaAUlSZJjLcZP15V6czKggceAKtV74g8x2+/qdowderIjtU6allDDZUu3SW7WttLu+8+dTB7tkfvwRZ/oReme6NwqvlVQTXt48fV9jAAkydD69bOf0wvIUmMtzGZ1O7XAQGQkACffqp3RJ7D9un1vvukNoyOWoepxHx5UhqWIknS7aF16ACtWqlexRkz9A7HaWwJbpUMJWma+sCYkaHqwjzzjPMf04tIEuONmjSBN95Qx8884zVLKp3qxAm1+SZIbRid1QuCGoFmsvIK+evwWb3DcS8GQ8lQqIcOKZ3OzmfLsXSgZLsKp5o6FZYsUfW6vvlG9lFzMElivNWYMdC7N+TkqBctL1iN4FTffquG5q69Fho31jsar2Y0QO9maoKvbQWKsMM996g32g0bYNcuvaNxuGV70tA0aFU7mOgQJ1fpPXRIbfsC8NprEBfn3MfzQpLEeCujEb76CoKCYPVqeO89vSNyX1IbxuX0vbBKKWFPKpqUE7BPrVpw443q2AN7Y6psKMlqVa8H58/DddfBk0869/G8lCQx3qx+fbWvEsDzz3vkp64qsWYN7NsH1aoV7wgs9NWjUTi+JiNHzuSwP827NjV0CFsy/t13YPGcpep5liL+2HcaqIIk5v33YeVK9brw9dfqg6NwOGlVb/fgg3DDDZCfr7YoyM3VOyL3Y/u0OmKE6tkSuqvm50P3xuFAyUoUYYfBg1WPTGoqLFqkdzQOs/bAGXItRUSH+NMyJth5D7R5M/zrX+r4v/+Fhg2d91hezqlJzNmzZ7n77rsJDg4mNDSUBx54gOyrbPXeq1cvDAbDJV+PPvqoM8P0bgaDehOOjFSVZseP1zsi93L+vCojDjKU5GJsn7Rtm/wJO5jNam4MeNSQki2h7du8FgaDk6r0ZmWpat0FBXDzzSDvX07l1CTm7rvvZufOncTHxzN//nxWrVrFw+XYavyhhx4iOTm5+OvNN990ZpgiMlJ1GxsMasn1zz/rHZH7+OUXyM5Wn7SuvVbvaMRFbCtPNh89x+nsfJ2jcUO2VXbz5sEp9y8cqGkaCVVRpXfMGDW8HBur5h06K1kSgBOTmN27d7No0SK++OILunbtSs+ePfnggw+YMWMGJ6+yAWFgYCBRUVHFX8HBTuz2E0r//vDcc+r4wQfVrHpxddOmqe/33y8vVi4mOiSAVrWD0TS1IkXYqXVrtbdPYWFJJWo3tuNEJqmZ+QT6mrimYbhzHuSbb9QHQpMJfvwRwsKc8ziimNMWrK9du5bQ0FA6depUfFu/fv0wGo2sX7+eW2655Yr3/eGHH/j++++JiopiyJAhvPjiiwQGBpZ6bn5+Pvn5JZ+yMjMzAbBYLFgcPCHNdj1HX9dlvPACpuXLMa5bh/WOOyhavlx1K1eSx7bboUOYly9HMxgovOsuh06A9Ng2c7K/t1ufphHsOJFJ/M4UbmkbpWdoLu1KzzfjqFGYNm1C++orCm0bF7qpxTvUh+eejcMxYcViqXwhxEvaLSkJn8cfxwAUTZyItUsXj5oU7ShlvbZV5PXOaUlMSkoKtWpdWkjIx8eHsLAwUlJSrni/u+66i3r16hETE8O2bdv417/+RVJSEr/++mup50+ZMoXJkydfdvuSJUuumPhUVrytqJkHCvjHP+i1fTu+GzZw4N572TVqlMOu7Wnt1uzHH4kDTrVpw9odO9ScIgfztDarKrZ2880G8GFlUiq/zV+AWZYylOnvzzdzWBgDfXwwbdvGnx9+SIYbT1Cds80EGIjIT2bBgrJHA+yV8PvvXPfss4Tk5HCqdWvWtGqlNtoVV1Taa1tOTo7d17E7iXnuued4w1bt9Qp2795tdyA2F8+Zad26NdHR0fTt25cDBw7QqFGjy86fMGEC4y+ajJqZmUlsbCwDBgxw+DCUxWIhPj6e/v37Y3ZAD4WrMoSEwMiRNPn1Vxo88ABa//6Vup5HtpvVis+4cQCEjR/P4MGDHXp5j2yzKvD3dtM0je+OrCI1M5/Qpp25vmmE3iG6pLKeb4bffoOff+ba/fuxjh2rU4SVk5yRx/G1qzAY4IkRfQmv5pjNF23tNmjZMsyHD6NFRBA6fz6Do6Mdcn1PVNZzzTaSYg+7k5inn36a+69SVr1hw4ZERUWRlnbpOHRhYSFnz54lKqr83bpdu3YFYP/+/aUmMX5+fvj5+V12u9lsdtqLvzOv7RJuv13VN/j4Y3xGj4atW8GO/7Mr8ah2W7IEDh+G0FB8RoxwyLBbaTyqzarQxe3Wr3kkP6w/yvK9Z+jXMkbnyFxbqc+3Bx+En3/GNH06prfeUvuuuZmV+04A0LFuDaJCqzn02tHr1mG+sAed4dtvMdet69Dre6rSnmsVea2zu3M1IiKCuLi4Mr98fX3p1q0b6enpbNq0qfi+y5Ytw2q1Ficm5ZGYmAhAtGS2Vevtt6FNG0hLU0stZbfrS332mfp+771u+aLuTfq1KFlqLdV7K6B/f1UYMz0dZs3SO5oKWXphmb3tueAwR47Q7oMP1PEzz8CgQY69vrgqp40QN2/enEGDBvHQQw+xYcMG/vzzT8aOHcsdd9xBTIz6NHTixAni4uLYsGEDAAcOHODll19m06ZNHD58mLlz5zJq1Ciuu+462rRp46xQRWn8/VX9k8BAtdv1VYYQvUpyMsydq47LUTJA6Ktbw3ACfU2kZOax86T93dVez2iEhx5Sx1On6htLBWTnF7L2wBkA+jlyw8fCQkyjRuF7/jzWzp3hlVccd21Rbk6d5vbDDz8QFxdH3759GTx4MD179mTqRX8EFouFpKSk4sk8vr6+LF26lAEDBhAXF8fTTz/N8OHDmTdvnjPDFFcSFwcffaSOX3xR7dQs1LLqwkLo3h1atdI7GnEV/mYT1zapCUD8LqneWyGjR6tlw3/+CTt36h2NXf7Ye4qCIiv1wwNpFOHAitpff41x7VosgYEUff89+Dpmno2wj1P3BA8LC2N6GfUF6tevf0n3bmxsLCtXrnRmSMJe992nCuCtXw/z58Mjj+gdkb6sVvj8c3UsvTBuo1/zSBbvTGXp7lSe6t9U73DcT3Q0DB0Ks2er5/+77+odUbkVDyU1j3Rsld7ZswHYd8stNGnQwHHXFXaRBYeibAaDevEClcR4u6VLVSHAkBDZ7NGN9ImrhcEAO09mkpwh+4NViC1p/+Ybt9ljrciqsWzPhSq9jpwPc/48LFsGQIodczyF40kSI65uyBD1felSqMA6fo9iGw4dNUrNFxJuITzIjw51awAln8yFnQYMgHr11ARfN9maZPPRc5zLsRASYKZTvRqOu3BCAuTnozVoQFZsrOOuK+wmSYy4ulatoG5dyMuD5cv1jkY/KSnw22/q2DbRUbgN2345S2VeTMW44QTfpRf2SurdLAIfkwPf7i70SlsHD5btRnQmSYy4OoMBbrpJHXvzkJJtQm+3bmpfGeFW+rdQK1PWHjhDVp6Ug68Q2wTf1ath1y69oymTpmnE77TtWu3AoSRNK34d1Bxc5FLYT5IYUT4XJzHeWGtDJvS6vUYRQTSsWY2CIivLk9x/V2ZdxMSUDC+7eG/M/rRsDp4+j6/JSK9mDqzUvHmzKrNQrRraddc57rqiQiSJEeXTu7eaA3L8OGzbpnc0VS8hAQ4eVBN6b79d72hEBRgMBga2UpWnF++88v5t4ipsSfy337r0BN9FO9T/cc8mNanu78Cq17be6AEDoJRq8aJqSRIjysffH/r1U8feWLfH9qnz3ntlQq8bG9RSJTHL96SRZynSORo3ZZvge+4c/PKL3tFc0aILiart/9xhbEmMrXda6EqSGFF+3jovJjUV5sxRxzKU5Nba1AkhOsSfnIIiVu87rXc47slkUvspgcsOKR07m8POk5kYDdDXkVV6k5Nh40Z1LPNhXIIkMaL8brxRfd+wQb2xe4uvv1YTeq+5Rib0ujmDwcDAljKkVGm2Cb5//OGSE3xt/7ddGoQRHuTAIZ8FC9T3Ll0csimuqDxJYkT5xcRAx45qYu/ChXpHUzVkQq/HsSUx8btTKSySjU0rpHbtkp5Z29+HC1ksQ0leQ5IYYR9vG1JatqxkQu/IkXpHIxygc/0ahFXzJT3HwoZDZ/UOx33ZtiD55htVQ8pFnMrKZ+ORcwAMcGQSk5cHS5aoY0liXIYkMcI+tj/exYuhoEDfWKqCbcz/nntkQq+H8DEZi3czXiRDShU3YIAqguliE3zjd6WiadC2TggxoQGOu/CKFapieUwMtGvnuOuKSpEkRtinQwc1FpydDatW6R2Nc6WmFm/yJhV6PcugC0utl+xMxWr1wrpHjnDxBN/PPtM3lovYElPbcnqHuXgoSar0ugxJYoR9jMaSCb6ePqRkq9DbtSu0bat3NMKBujeqSZCfDymZeWw9nq53OO7rH/9Qrwl//AG7d+sdDRm5FtbsV6vOHDof5qIqvTKU5FokiRH2s1XsnDfPc6v35ufDhx+qY5nQ63H8zabiKq4ypFQJF0/wfecdfWNB1f8ptGo0qRVEw4ggx1145044ckTVy+rb13HXFZUmSYywX9++qlLlwYOwZ4/e0TjHl1+q6sS1a8Ndd+kdjXAC25DS4h0paJ6ajFeFZ59V36dNg0OHdA3FVqV3kLOGkvr2lblxLkaSGGG/oCC1DQF45pBSfj689po6njBBffoSHqdXs1r4+hg5fCaHvanZeofjvnr0gP791dCr7e9GB7kFRazYmwaULKN3GFuVchlKcjmSxIiK8eSl1l9+CSdOqF6YBx7QOxrhJEF+PlzbuCZQ8gleVNBLL6nvOvbGrNp3ijyLldqhAbSMCXbchU+fhrVr1bFtPqBwGZLEiIqx/TH/+Sec9aBaGxf3wjz/vPTCeDjbChaZF1NJ3burJdc69sYsvmgoyeDI1UMLF6q5f23bQmys464rHEKSGFEx9etDq1ZQVKRqxniKL76QXhgv0q95JCajgd3JmRw9k6N3OO5t0iT1XYfemIJCK0t3q61QnDYfRoaSXJIkMaLiPG1IKS8PpkxRx88/ryYvC48WVs2XLvXDANlLqdIu7o159dUqfeh1B8+QmVdIzSBfOtSt4bgLWyywaJE6liTGJUkSIyrOttR64UL1wuXubHNh6tSRXhgvMkiGlBzHNjfmm2/U6sUqYktA+7eIwmR04FDS6tWQmQkREWrTR+FyJIkRFde1K4SHq7Lja9boHU3lSC+M1xrQMhKATUfOkZbpOnsAuaVu3WDgwCqdG1Nk1Vi808lDSTfeqIr6CZcj/yui4kwmGDxYHbv7kNLFvTD/+Ife0YgqFB0SQNvYUACW7ErVNxhPYJsbU0W9MVuOnuN0dj7V/X3o1jDcsReXpdUuT5IYUTm2P27bH7s7ysu7dEWS9MJ4HVuJepkX4wAX98ZUwdwY2/9Z3zhV98dhkpJg3z4wm1UdHOGSJIkRlTNwoPoj37PHfav3fvEFnDwpvTBebOCFIaW1B86QnuMFu7M7WxX1xmiaVjyXyeFDSXPmqO+9ekGwA+vOCIeSJEZUTkgI9Ounjm07PrsTmQsjgIYRQTSNDKLQqpGwO03vcNyfrTemqMipvTG7kjM5djYXPx8j1zWNcOzFf/1VfR8+3LHXFQ4lSYyovFtuUd9tf/TuxNYLExsrvTBezjaktFCq9zpGFaxUslVavr5pBIG+Po678LFjsGEDGAxw882Ou65wOEliROXdfLP6Y9+4EY4e1Tua8pNeGHGRwW2iAVi19xQZuRado/EA11wDgwY5rTdG0zTmbT0JwODW0Y69uG0oqXt3iHLwMJVwKEliROXVqgXXXquObX/87uCzz0p6YUaP1jsaobNmkdVpUiuIgiKrTPB1lIvnxuzb59BL7ziRyeEzOfibjfRvEenQaxcPjd96q2OvKxxOkhjhGLY/dncZUjpzBiZPVscvvCC9MAKDwcDQtjEAxZ/wRSVdc42qsVJUBP/3fw699NytJwDo2zySan4OHEo6fRpWrlTHtqFy4bKclsS8+uqrdO/encDAQEJDQ8t1H03TmDhxItHR0QQEBNCvXz/2OTh7F05i+2P/4w9Ic4OJkZMnqyJ9rVvLXBhRbMiFJObP/ac5nZ2vczQe4r//VTWl5s6FpUsdckmrVWP+tmQAhrSJccg1i82dC1YrtG8PDRo49trC4ZyWxBQUFDBixAgee+yxct/nzTff5P333+fTTz9l/fr1VKtWjYEDB5KXJ1U0XV7dutCxo/rjnztX72jKtns3fPyxOn73XfBx4Kc44dbq16xGmzohWDVYsD1Z73A8Q/PmMGaMOn7qKYdsUbLxyDmSM/Ko7udDr2ZOWpUkvTBuwWlJzOTJk3nqqado3bp1uc7XNI13332XF154gZtvvpk2bdrw7bffcvLkSea40zwLb+YuQ0rjx6vu7Ztvhj599I5GuBjbJ3sZUnKgSZMgLAx27FArAivJ9n8zoGUU/mZTpa9XLDMT4uPVscyHcQsu8xH00KFDpKSk0M9WcwQICQmha9eurF27ljvuuKPU++Xn55OfX9Ltm5mZCYDFYsFicewKA9v1HH1djzFkCOZ//xstIYHC06dVDRlcq90Mixbhs2gRmtlM4ZQpapdaF+RKbeZOHNFuA1tE8OqC3fx1+BxHTmUSExrgqPBcltOfb9WrY5w4EdO4cWgvvkjh8OFQzmkGf1dYZOX37SqJubFVLYfGbJg3D5+CArQmTShs0uSqrw/yd2q/stqsIu3oMklMSopaDRAZeeks88jIyOLflWbKlClMtk3QvMiSJUsIDAx0bJAXxNsydXGZPnXqUP34cbZOmcKJ66675Hd6t5uhsJDe48ZRHdh/443s2rsX9u7VNaar0bvN3FVl261RdRMHsgy88/MK+sRoDorK9Tnz+WaoU4feF14fjjz4IDsrOBdtT7qBs+dNVPPRSE/awAIHTpvs9Mkn1Ab2tWnD7oULy30/+Tu1X2ltlpOTY/d17EpinnvuOd54440yz9m9ezdxcXF2B1JREyZMYPz48cU/Z2ZmEhsby4ABAwh2cKloi8VCfHw8/fv3x2w2O/TansJ4zz3w+ut0OHyYtq+/DrhOuxk//BDT8eNoERHU//xz6l/oKXJFrtJm7sZR7Xau5jFemreb/ZZQ3hrczYERuqaqer4Z/PxgyBAaLVhAvddeg6ZN7b7Gyl93ACe5uUMsQ25q4bjg8vLwuftuABo+/TQNOnW66l3k79R+ZbWZbSTFHnYlMU8//TT3339/mec0bNjQ7iAAoi4UFEpNTSU6uqRwUWpqKu3atbvi/fz8/PArZXms2Wx22pPKmdd2e7fdBq+/jnHRIoyFhRBQ0hWva7udOQMvvwyA4ZVXMNesqU8cdpLnWsVUtt2GtK3Ny7/vYefJLI6l59MwIsiB0bkupz/fbroJBg/GsGAB5gkT7F4EkGcpIn6XWv04rH2sY2NdtAjOn4c6dfC55hpVwLOc5O/UfqW1WUXa0K6JvREREcTFxZX55evra3cQAA0aNCAqKoqEhITi2zIzM1m/fj3dunn+JyGP0aGDWqmUkwNLlugdTYmXXlJLqtu0gQce0Dsa4eLCg/zo0VgluvO2yiolh3r7bbUicN68kkm05bRy7ymy8guJDvGnU70ajo3r4lVJdiQwQl9OW5109OhREhMTOXr0KEVFRSQmJpKYmEh2dnbxOXFxccy+UBnRYDAwbtw4XnnlFebOncv27dsZNWoUMTExDBs2zFlhCkczGEpm9bvKhpC7dsEnn6jjd99VNSuEuApb4bu5W0+gad4zL8bp4uJKllyPH2/Xkuu5F1Yl3dQmGqPRgYlGYWFJr5CsSnIrTktiJk6cSPv27Zk0aRLZ2dm0b9+e9u3bs3HjxuJzkpKSyMjIKP752Wef5YknnuDhhx+mc+fOZGdns2jRIvz9/Z0VpnAG24vA3Ln6r/7RtJIl1cOGQe/e+sYj3MaAlpH4+hg5cOo8u5Oz9A7Hs0ycWLLk+vPPy3WX8/mFJOxOBUqKEjrMqlVw9izUrAk9ezr22sKpnJbETJs2DU3TLvvq1atX8Tmapl0yx8ZgMPCf//yHlJQU8vLyWLp0KU0rMPFL6Kx7d7Wf0rlzJeW79bJwISxeDGazqhwqRDkF+5vpfaGQ2rxtUjPGocLCSrb9ePFFSE+/6l2W7k4lz2KlfnggrWs7eFK+bSjp5pul+KWbkb2ThOOZTCXb1+tZ+K6gQPXCAIwbB40b6xeLcEtDLtpLSYaUHOzRR6FFCzXp/j//uerptgJ3Q9rGYHDknBWrtWToW6r0uh1JYoRz2IaU5sxRLxJVragI7rsPkpIgIgL+/e+qj0G4vb5xkQT6mjh+Lpctx9L1Dsez+PjAO++o43ffhW+/veKp6TkFrNx7CiiZq+Qwf/2ldrOvXh369nXstYXTSRIjnKNPHwgOhuRkDBs2VO1jFxXB6NEwY4YaRpo2rbh6sBD2CPA10b+FKsA5N1GGlBxu4EAYO1bNXRs9Gn76qdTTFu9MwVKkERdVnSaR1R0bg623+MYbQeZfuh1JYoRz+PrCkCEAGKpy7yurFR55BL77Tg1r/fQTDB5cdY8vPI7tk//v25MpssqQksO99x48+KD627377lKHoOdeNJTkUJpW8niyKsktSRIjnOfC+LJxzhz1YuFsmqY+1X35JRiN8MMPMsYtKu3aJhGEBJg5lZXP+oNn9A7H8xiN8NlnMGqU6kUdOVLVkLkgLSuPtQdUu9s253SYHTtg/37w84MbbnDstUWVkCRGOM+gQeDvj+HgQYIPH3buY2kaPPWUqgdjMMA336gXQyEqydfHyA2tVEVxWaXkJEYjfPUV3Hmnqtly222qgi6wYFsyVg3axYZSN9zB++HZemEGDIAg76jK7GkkiRHOU62aSmSAhvPn21XUyi6aBs89p7qlAb74Au65xzmPJbySbUhpwfYUCgp1mKjuDUwmNbl3+HC1svCWWyAhoXgoyeETelNTVW8tyFCSG5MkRjjXffcBUC8hAdN116nquY42aRK8+aY6/uQTqODuuEJcSdeG4URU9yMj18If+07pHY7n8vGB6dNh6FDIy8M6dCg+f67GYIAb20Rf/f7loWnw449qefe+fWrS/4X5e8L9SBIjnGvYMAq//JKCatUwbtwI7dvD6687pldG01R9iQsbO/Lee6r2hBAOZjIauOnCm+gvm4/rHI2H8/WFmTPhhhsw5uTw1c+Tua/wGJHBDlg5lJqqhqruuktV6G3XThXkDA+v/LWFLiSJEU6n3Xsvyz/4AOvgwaqbeMIE6NGjcr0yaWnq09OkSern//4X/vlPxwQsRClGdIwFIH5XKmey83WOxsP5+WGd9TN/Ne5AUEEuE/83Fl59VU38rQhNUysVW7ZU82B8fNSmsBs2QNu2Dg1dVC1JYkSVyAsLo2j27JKaLRs2qB2v33jD/l6ZhQuhdWv4/Xf1qe3DD+H//s8pcQth0yImmNa1Q7AUaczeckLvcDzempM53Dv0eRa2vB5jURG88AL06gX2LhJIS4MRI+COO1R14LZtVYG7SZNUHSnh1iSJEVXHYFBzZHbuVLVb8vPVhNwePWDWLMjJKfv+ubnwxBPqvmlp0KqVejGy7YgrhJON7Kx6Y37665hsQ+BkM/46Sp7ZnzUvf6Am/FavDqtXqyTENiG3LCdOwP/+p3pffvlF9b5MmqQ+QLVr5/T4RdWQJEZUvdq1Yf58+Prrkl6Z229Xm0befbfa/Tr/b931W7dCp06q1wXgySdVAtOmTdXHL7zW0HYx+JuN7EvLlm0InOjc+QKW7FQ7Vo/sUhfuvVe9BnTvDpmZavXh3XdfvnHkqVNqcn+vXhAbq/ZOO31avU5s2KCGkHx9q/qfI5xIkhihD4MB7r9f9cr8619Qvz6cP69WJtx8M0RGqlVGixer/VW6dFFzaKKiVP2Id9+VEuGiygX7mxncSk3wnfnXMZ2j8VxzEk9QUGSlRXQwrWw7VjdooCbhTp6slmNPn656ZRYtUjVmBg6E6Gh4/HF1nqapXt6PPlIfeNq31/cfJZxCkhihr9q11Wqlgwdh/XpVsC4mBjIyVE/NoEHw9NNqQvDQobBtm3qxEkInt18YUpq39STn851U+8iLaZrGTxcSRNvwXTEfH5g4Ef74Axo2hKNHVaXdBx6AJUvUxN9OneCtt9TvVq9WSY30vngsSWKEazAYVG/LO+/AsWOwapV68YmIgMBA+PRTtSN2RITekQov17VBGPXDAzlfUMTv25L1DsfjbDuewZ6ULHx9jAxrV7v0k7p1g8RE1ZsLarjo1VfVFgJ//aU++MTGln5f4VEkiRGux2iEa69V3cDJyWpM+5FHVKIjhM4MBkNxb8xPG2VIydFsbXpDqyhCAstYPVS9uuqtzcpS82Wefx4aNaqiKIWrkCRGuDaTCQIC9I5CiEvc1qEOJqOBTUfOsT8tS+9wPEZOQSHzEtU2AyM7lbMnRfY88mqSxAghhJ1qBfvTu1ktgOL5G6LyFmxPISu/kLphgVzTUKroiquTJEYIISrANun0180nZFNIB7Gt+Lq9Ux2MRhk+FlcnSYwQQlRA72YRRFT348z5ApbtSdU7HLd38FQ2Gw6fxWiA2zrKpFxRPpLECCFEBfiYjNzWsQ4AM2RIqdJsE3p7NatFVIjUgBLlI0mMEEJU0O0XJp+u2nuK5IxcnaNxX5YiK79sUvtR3V7eCb1CIEmMEEJUWIOa1ejSIAyrBj9vPK53OG5r+Z40TmfnUzPIl77Na+kdjnAjksQIIUQl2JYCz9x0DKtVNoWsiJkXhpJu7VAHs0nelkT5ybNFCCEqYXDraKr7+XDsbC5rD57ROxy3k5qZx7I9aYAMJQn7SRIjhBCVEOBrYmi7GEBqxlTEz5uOY9WgU70aNK4lheuEfSSJEUKISrLVjFm0M4X0nAKdo3EfVqvGrAtDSbf/fbNHIcpBkhghhKik1rVDaBEdTEGhlR83SG9Mea3ce4rDZ3II8vPhxtbReocj3JAkMUIIUUkGg4F/9GwAwNd/HpIKvuU0ddVBAO7sEks1Px+doxHuSJIYIYRwgKFtY4gM9iMtK5/fEk/oHY7L2348g7UHz+BjNDC6RwO9wxFuymlJzKuvvkr37t0JDAwkNDS0XPe5//77MRgMl3wNGjTIWSEKIYTD+PoYi9+MP//jIJomy63LMvUP1QszpG0MMaGyU72oGKclMQUFBYwYMYLHHnvMrvsNGjSI5OTk4q8ff/zRSREKIYRj3dmlLtV8TexNzWbl3lN6h+Oyjp3NYcH2ZAAevFZ6YUTFOW0QcvLkyQBMmzbNrvv5+fkRFRXlhIiEEMK5QgLM3NGlLl+uPsTnfxykVzOpPluar/88TJFVo2fjmrSMCdE7HOHGXG4m1YoVK6hVqxY1atSgT58+vPLKK4SHh1/x/Pz8fPLz84t/zszMBMBisWCxWBwam+16jr6up5N2s5+0WcW4Qrvd27UO09Yc5s/9Z0g8coaWMcG6xVJeVdluGbkWZvx1FIB/dK/r1s9xV3i+uZuy2qwi7WjQnDxwO23aNMaNG0d6evpVz50xYwaBgYE0aNCAAwcO8PzzzxMUFMTatWsxmUyl3uell14q7vW52PTp0wkMDKxs+EIIYbdv9xnZdNpIx5pWRjWRlUoXiz9hYP5RE9GBGv9qU4TBoHdEwlXk5ORw1113kZGRQXBw+ZJ/u5KY5557jjfeeKPMc3bv3k1cXFzxz/YkMX938OBBGjVqxNKlS+nbt2+p55TWExMbG8vp06fL3QjlZbFYiI+Pp3///pjNZode25NJu9lP2qxiXKXddp7MZNgn6zAZDSx7qqfLT1ytqnbLL7TS550/SMvK581bW3FL+xinPVZVcJXnmzspq80yMzOpWbOmXUmMXcNJTz/9NPfff3+Z5zRs2NCeS171WjVr1mT//v1XTGL8/Pzw8/O77Haz2ey0J5Uzr+3JpN3sJ21WMXq3W7t64XRvFM6aA2f4bv1xXriphW6x2MPZ7TZn6zHSsvKJDPZjWIdYzD6eUeVD7+ebOyqtzSrShnYlMREREURERNj9IBV1/Phxzpw5Q3S0VHIUQriXh65ryJoDZ/hxw1Ge6NuEkADvfpPTNI3PLyyrHt2jAb4eksAIfTntWXT06FESExM5evQoRUVFJCYmkpiYSHZ2dvE5cXFxzJ49G4Ds7GyeeeYZ1q1bx+HDh0lISODmm2+mcePGDBw40FlhCiGEU/RqGkGzyOqcLyjixw1H9Q5Hdyv2nmJvajZBfj7c1bWu3uEID+G0JGbixIm0b9+eSZMmkZ2dTfv27Wnfvj0bN24sPicpKYmMjAwATCYT27ZtY+jQoTRt2pQHHniAjh078scff5Q6XCSEEK7MYDAU10CRrQjg8wtbDNzROZZgf+/ulRKO47Ql1tOmTbtqjZiL5xQHBASwePFiZ4UjhBBVbmi7GP67OInUzHzmbT3J8I519A5JFztOZLDmwBlMRgOje0pxO+E4MigphBBO4udj4v4e9QHv3orANhfmpjbR1HbxlVrCvUgSI4QQTnR313pU8zWxJyWLP/ad1jucKnciPZf529QWAw9d67jVq0KAJDFCCOFUIQFmRnZWE1mnXpgX4k2+Wn2IIqtGj8bhtKotWwwIx5IkRgghnOwfPetjMhpYvf80aw+c0TucKnMyPZcf1h8BpBdGOIckMUII4WR1agRyVxfVG/PK77sosnrH3Jj/Lk4iz2KlS4Mwrm9adTXGhPeQJEYIIarAuH5NqO7vw86Tmfy6+bje4Tjd1mPpzN5yAoAXb2yBQTZJEk4gSYwQQlSB8CA/nujTGFA9FOfzC3WOyHk0TePl+bsAuLVDbVrXkbkwwjkkiRFCiCpyX/f61A0LJC0rn888eJLvwh0pbDxyDn+zkWcHxl39DkJUkCQxQghRRfx8TEy4Qb2pT111gOSMXJ0jcrw8SxFTFu4G4JHrGhEV4q9zRMKTSRIjhBBVaFCrKLrUDyPPYuW/i5L0DsfhvllzmGNnc4kM9uOR62VFknAuSWKEEKIKGQwGXripOQC/bjnB1mPp+gbkQKez8/lw2X4AnhkYR6Cv03a2EQKQJEYIIapcmzqh3NqhNqCWXHvKdgTvLt1LVn4hrWoHc2v72nqHI7yAJDFCCKGDZwY2w99s5K/D51i4I0XvcCptb2oW09cfBeCFG1tgNMqSauF8ksQIIYQOokMCePi6RgBMWbib/MIinSOqnFd/341Vg4EtI7mmYbje4QgvIUmMEELo5NHrG1Kruh/HzuYy7c/DeodTYSuS0li59xRmk4EJNzTXOxzhRSSJEUIInQT6+vDMwGYAfLhsP2ey83WOyH6FRVZe/V0tqb6vW33q16ymc0TCm0gSI4QQOhreoQ6tageTlV/Ifxe735Lr79cdYV9aNjUCzTzRt4ne4QgvI0mMEELoyGg08OKNLQCY8dcx5m09qXNE5bfjRAavLdwDwPj+TQkJMOsckfA2ksQIIYTOujYM5/FeapLvv37Zxv60LJ0jurqMHAuPfr+JgkIr/ZrX4u6u9fQOSXghSWKEEMIFjO/flG4Nw8kpKOLR7ze79AaRVqvG+JmJHD+XS2xYAG+PaCdLqoUuJIkRQggX4GMy8v6d7alV3Y/9adlM+HW7yxbB+2TlARL2pOHrY+STuzsSEijDSEIfksQIIYSLiKjux8d3d8DHaGDu1pN8u/aI3iFd5s/9p3l7iZqA/PLNLWlVO0TniIQ3kyRGCCFcSKf6YTx3YafrV37fxeaj53SOqERKRh7//HELVg1GdKzDyM519Q5JeDlJYoQQwsU80LMBg1tHYSnSGPvDZs6eL9A7JCxFVsZO38yZ8wU0jw7m5WGt9A5JCElihBDC1RgMBt4Y3oaGNatxMiOPJ2dsociq7/yY1xfuYeORc1T38+GTuzvgbzbpGo8QIEmMEEK4pOr+Zj65pyMBZhN/7DvNewn7dIvl923JfLn6EABv395WqvIKlyFJjBBCuKhmUdV57VY1bPPBsn26FMLbeiydZ3/eCsAj1zdkQMuoKo9BiCuRJEYIIVzYLe3rcM81ddE0eOLHLby5aE+VDS3N/OsYIz5by/mCIro2COOZAc2q5HGFKC9JYoQQwsW9NKQlD/ZsAMDHKw5w/9cbOOfEyb75hUU8P3s7z/6yjYJCK/1bRPLFfZ3wMclbhnAt8owUQggX52My8sJNLXjvjnb4m438se80Qz5czY4TGQ5/rJSMPO6Yuo7p649iMMDT/Zvy2T0dqe4vBe2E65EkRggh3MTN7Woz+/Ee1A0L5Pi5XIZ/sobZW4477Pp/HT7HTR+sZsvRdIL9ffjq/s480beJbCkgXJbTkpjDhw/zwAMP0KBBAwICAmjUqBGTJk2ioKDsLtC8vDzGjBlDeHg4QUFBDB8+nNTUVGeFKYQQbqV5dDDzxvakV7MI8gutPPXTVl6auxNLkbXC19Q0jZXJBkZ9vZHT2fnERVVn3hM96d2slgMjF8LxnJbE7NmzB6vVymeffcbOnTv53//+x6effsrzzz9f5v2eeuop5s2bx6xZs1i5ciUnT57k1ltvdVaYQgjhdkICzXx5X2ee6NMYgGlrDnPH1HXM2XKCtKy8cl8nM8/Ckp0pjJ2xlV8Pmyi0agxtG8Ovj3enXrgsoxauz8dZFx40aBCDBg0q/rlhw4YkJSXxySef8NZbb5V6n4yMDL788kumT59Onz59APj6669p3rw569at45prrnFWuEII4VZMRgNPD2hGq9ohPD1zK5uOnGPTEbVFQbPI6vRoXJOeTcLp0iCcID/1Up9fWMSWo+n8uf80q/efZuuxdGwLnYxoPHdDHA9d1wiDQYaPhHtwWhJTmoyMDMLCwq74+02bNmGxWOjXr1/xbXFxcdStW5e1a9eWmsTk5+eTn59f/HNmZiYAFosFi8XiwOgpvp6jr+vppN3sJ21WMd7Ybn2ahjPn8WuY8ddx1hw4w67kLJJS1ddXfx7Cx2igXWwIgb4m/jp8jlzLpcNO9cMDuaZBKNF5R7mncwyFhYU6/Uvcjzc+3yqrrDarSDsatCra633//v107NiRt956i4ceeqjUc6ZPn87o0aMvSUoAunTpQu/evXnjjTcuu89LL73E5MmTS71WYGCgY4IXQgg3kW2BfRkGkjIM7M0wcCb/0l6VIB+NpiEazULV9zA/nQIV4m9ycnK46667yMjIIDg4uFz3sbsn5rnnnis1mbjY7t27iYuLK/75xIkTDBo0iBEjRlwxgamoCRMmMH78+OKfMzMziY2NZcCAAeVuhPKyWCzEx8fTv39/zGZZblhe0m72kzarGGm3yx09m8Pag2fJs6iCdU1rBV222kjarWKk3exXVpvZRlLsYXcS8/TTT3P//feXeU7Dhg2Lj0+ePEnv3r3p3r07U6dOLfN+UVFRFBQUkJ6eTmhoaPHtqampREWVXuraz88PP7/LP0qYzWanPamceW1PJu1mP2mzipF2K9EoMoRGkSHlOlfarWKk3exXWptVpA3tTmIiIiKIiIgo17knTpygd+/edOzYka+//hqjsezFUB07dsRsNpOQkMDw4cMBSEpK4ujRo3Tr1s3eUIUQQgjhwZy2xPrEiRP06tWLunXr8tZbb3Hq1ClSUlJISUm55Jy4uDg2bNgAQEhICA888ADjx49n+fLlbNq0idGjR9OtWzdZmSSEEEKISzhtdVJ8fDz79+9n//791KlT55Lf2eYSWywWkpKSyMnJKf7d//73P4xGI8OHDyc/P5+BAwfy8ccfOytMIYQQQrgppyUx999//1XnztSvX5+/L47y9/fno48+4qOPPnJWaEIIIYTwALJ3khBCCCHckiQxQgghhHBLksQIIYQQwi1JEiOEEEIItyRJjBBCCCHckiQxQgghhHBLksQIIYQQwi1JEiOEEEIItyRJjBBCCCHcktMq9urFVgG4Ilt6X43FYiEnJ4fMzEzZsdQO0m72kzarGGm3ipF2qxhpN/uV1Wa29+2/V/Ivi8clMVlZWQDExsbqHIkQQggh7JWVlUVISEi5zjVo9qQ8bsBqtXLy5EmqV6+OwWBw6LUzMzOJjY3l2LFjBAcHO/TankzazX7SZhUj7VYx0m4VI+1mv7LaTNM0srKyiImJwWgs32wXj+uJMRqNl+2a7WjBwcHyhK0AaTf7SZtVjLRbxUi7VYy0m/2u1Gbl7YGxkYm9QgghhHBLksQIIYQQwi1JEmMHPz8/Jk2ahJ+fn96huBVpN/tJm1WMtFvFSLtVjLSb/RzdZh43sVcIIYQQ3kF6YoQQQgjhliSJEUIIIYRbkiRGCCGEEG5JkhghhBBCuCVJYsrpo48+on79+vj7+9O1a1c2bNigd0guZdWqVQwZMoSYmBgMBgNz5sy55PeapjFx4kSio6MJCAigX79+7Nu3T59gXciUKVPo3Lkz1atXp1atWgwbNoykpKRLzsnLy2PMmDGEh4cTFBTE8OHDSU1N1Sli/X3yySe0adOmuFhWt27dWLhwYfHvpb3K5/XXX8dgMDBu3Lji26TtLvfSSy9hMBgu+YqLiyv+vbTZlZ04cYJ77rmH8PBwAgICaN26NRs3biz+vSPeFySJKYeffvqJ8ePHM2nSJDZv3kzbtm0ZOHAgaWlpeofmMs6fP0/btm356KOPSv39m2++yfvvv8+nn37K+vXrqVatGgMHDiQvL6+KI3UtK1euZMyYMaxbt474+HgsFgsDBgzg/Pnzxec89dRTzJs3j1mzZrFy5UpOnjzJrbfeqmPU+qpTpw6vv/46mzZtYuPGjfTp04ebb76ZnTt3AtJe5fHXX3/x2Wef0aZNm0tul7YrXcuWLUlOTi7+Wr16dfHvpM1Kd+7cOXr06IHZbGbhwoXs2rWLt99+mxo1ahSf45D3BU1cVZcuXbQxY8YU/1xUVKTFxMRoU6ZM0TEq1wVos2fPLv7ZarVqUVFR2n//+9/i29LT0zU/Pz/txx9/1CFC15WWlqYB2sqVKzVNU+1kNpu1WbNmFZ+ze/duDdDWrl2rV5gup0aNGtoXX3wh7VUOWVlZWpMmTbT4+Hjt+uuv15588klN0+S5diWTJk3S2rZtW+rvpM2u7F//+pfWs2fPK/7eUe8L0hNzFQUFBWzatIl+/foV32Y0GunXrx9r167VMTL3cejQIVJSUi5pw5CQELp27Spt+DcZGRkAhIWFAbBp0yYsFsslbRcXF0fdunWl7YCioiJmzJjB+fPn6datm7RXOYwZM4Ybb7zxkjYCea6VZd++fcTExNCwYUPuvvtujh49CkiblWXu3Ll06tSJESNGUKtWLdq3b8/nn39e/HtHvS9IEnMVp0+fpqioiMjIyEtuj4yMJCUlRaeo3IutnaQNy2a1Whk3bhw9evSgVatWgGo7X19fQkNDLznX29tu+/btBAUF4efnx6OPPsrs2bNp0aKFtNdVzJgxg82bNzNlypTLfidtV7quXbsybdo0Fi1axCeffMKhQ4e49tprycrKkjYrw8GDB/nkk09o0qQJixcv5rHHHuOf//wn33zzDeC49wWP28VaCHc1ZswYduzYccl4uyhds2bNSExMJCMjg59//pn77ruPlStX6h2WSzt27BhPPvkk8fHx+Pv76x2O27jhhhuKj9u0aUPXrl2pV68eM2fOJCAgQMfIXJvVaqVTp0689tprALRv354dO3bw6aefct999znscaQn5ipq1qyJyWS6bLZ5amoqUVFROkXlXmztJG14ZWPHjmX+/PksX76cOnXqFN8eFRVFQUEB6enpl5zv7W3n6+tL48aN6dixI1OmTKFt27a899570l5l2LRpE2lpaXTo0AEfHx98fHxYuXIl77//Pj4+PkRGRkrblUNoaChNmzZl//798nwrQ3R0NC1atLjktubNmxcPxTnqfUGSmKvw9fWlY8eOJCQkFN9mtVpJSEigW7duOkbmPho0aEBUVNQlbZiZmcn69eu9vg01TWPs2LHMnj2bZcuW0aBBg0t+37FjR8xm8yVtl5SUxNGjR72+7S5mtVrJz8+X9ipD37592b59O4mJicVfnTp14u677y4+lra7uuzsbA4cOEB0dLQ838rQo0ePy8pF7N27l3r16gEOfF+ozOxjbzFjxgzNz89PmzZtmrZr1y7t4Ycf1kJDQ7WUlBS9Q3MZWVlZ2pYtW7QtW7ZogPbOO+9oW7Zs0Y4cOaJpmqa9/vrrWmhoqPbbb79p27Zt026++WatQYMGWm5urs6R6+uxxx7TQkJCtBUrVmjJycnFXzk5OcXnPProo1rdunW1ZcuWaRs3btS6deumdevWTceo9fXcc89pK1eu1A4dOqRt27ZNe+655zSDwaAtWbJE0zRpL3tcvDpJ06TtSvP0009rK1as0A4dOqT9+eefWr9+/bSaNWtqaWlpmqZJm13Jhg0bNB8fH+3VV1/V9u3bp/3www9aYGCg9v333xef44j3BUliyumDDz7Q6tatq/n6+mpdunTR1q1bp3dILmX58uUacNnXfffdp2maWk734osvapGRkZqfn5/Wt29fLSkpSd+gXUBpbQZoX3/9dfE5ubm52uOPP67VqFFDCwwM1G655RYtOTlZv6B19o9//EOrV6+e5uvrq0VERGh9+/YtTmA0TdrLHn9PYqTtLjdy5EgtOjpa8/X11WrXrq2NHDlS279/f/Hvpc2ubN68eVqrVq00Pz8/LS4uTps6deolv3fE+4JB0zStwv1FQgghhBA6kTkxQgghhHBLksQIIYQQwi1JEiOEEEIItyRJjBBCCCHckiQxQgghhHBLksQIIYQQwi1JEiOEEEIItyRJjBBCCCHckiQxQgghhHBLksQIIYQQwi1JEiOEEEIItyRJjBBCCCHc0v8DO+9qUTC+oYMAAAAASUVORK5CYII=\n" - }, - "metadata": {} - } - ], - "source": [ - "xhone = sp.convolve(x, hone)\n", - "plt.figure()\n", - "plt.plot(np.real(xhone))\n", - "plt.plot(np.imag(xhone),'r')\n", - "plt.grid()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rM9vIZoUbhFp" - }, - "source": [ - "Here we can see that we get indeed a 90 degree phase shifted version, the red curve, about between sample 15 and 45.\n", - "\n", - "Now we can compute the magnitude of this complex signal “xhone” to obtain the amplitude of our sinusoidal signal," - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "id": "zL5OHNqpbhFp", - "outputId": "bfdc6b1f-5374-433f-add4-f796606c9b6b", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 430 - } - }, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": {} - } - ], "source": [ "plt.figure()\n", "plt.plot(np.real(xhone))\n", @@ -1917,7 +7110,7 @@ { "cell_type": "markdown", "metadata": { - "id": "DUDKLJ7zbhFp" + "id": "K14UT6jbRCFA" }, "source": [ "We see that between about sample 15 and 45 we obtain the **amplitude** of our sinusoidal signal with about **10% accuracy**, which roughly corresponds to the -20dB attenuation (corresponding to an attenuation factor of 0.1) that our filter “hone” provides. This also hints at the fact that we can improve the magnitude estimation by having a filter with a **higher attenuation** at negative frequencies.\n", @@ -1930,7 +7123,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "VJPutdeNbhFp" + "id": "Xhr5bfEsRCFB" }, "outputs": [], "source": []