{ "cells": [ { "cell_type": "markdown", "id": "5c278ed1-43b4-4a64-b3e2-0ecfeeaeb79d", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# Quizz\n", "$\\mbox{ }$\n", "\n", ":::{admonition} **Que faut-il savoir?**\n", ":class: note\n", "- **Reconnaître** si un signal est à énergie finie, à puissance finie périodique ou aléatoire.\n", "\n", "- Qu'est ce qu'un signal aléatoire **stationnaire** ?\n", "\n", "- Les différentes définitions d'une **fonction d'autocorrélation** $R_x(\\tau)$\n", "\n", "- La définition **unifiée**d'une **densité spectrale** : $s_x(f)$ = ?\n", "\n", "- Ce qu'est un **bruit blanc**\n", "\n", "- Ce qu'est un **bruit gaussien**\n", "\n", "- Propriétés de $R_x(\\tau)$\n", "\n", "- Propriétés de $s_x(f)$\n", "\n", ":::\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "24cd8153-47a7-4dcc-bf10-7aa18133cd6a", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "from jupytercards import display_flashcards" ] }, { "cell_type": "markdown", "id": "892320ac-5fe5-44a0-910f-a013392a3683", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## Types de signaux\n", "\n", "### Signaux déterministes à énergie finie\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "b805e944-54c3-4a38-b203-8e1c1ee6914b", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [ "remove_input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "/*!\n", " * swiped-events.js - v1.1.4\n", " * Pure JavaScript swipe events\n", " * https://github.com/john-doherty/swiped-events\n", " * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n", " * @author John Doherty \n", " * @license MIT\n", " */\n", "!function(t,e){\"use strict\";\"function\"!=typeof t.CustomEvent&&(t.CustomEvent=function(t,n){n=n||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent(\"CustomEvent\");return a.initCustomEvent(t,n.bubbles,n.cancelable,n.detail),a},t.CustomEvent.prototype=t.Event.prototype),e.addEventListener(\"touchstart\",function(t){if(\"true\"===t.target.getAttribute(\"data-swipe-ignore\"))return;s=t.target,r=Date.now(),n=t.touches[0].clientX,a=t.touches[0].clientY,u=0,i=0},!1),e.addEventListener(\"touchmove\",function(t){if(!n||!a)return;var e=t.touches[0].clientX,r=t.touches[0].clientY;u=n-e,i=a-r},!1),e.addEventListener(\"touchend\",function(t){if(s!==t.target)return;var e=parseInt(l(s,\"data-swipe-threshold\",\"20\"),10),o=parseInt(l(s,\"data-swipe-timeout\",\"500\"),10),c=Date.now()-r,d=\"\",p=t.changedTouches||t.touches||[];Math.abs(u)>Math.abs(i)?Math.abs(u)>e&&c0?\"swiped-left\":\"swiped-right\"):Math.abs(i)>e&&c0?\"swiped-up\":\"swiped-down\");if(\"\"!==d){var b={dir:d.replace(/swiped-/,\"\"),xStart:parseInt(n,10),xEnd:parseInt((p[0]||{}).clientX||-1,10),yStart:parseInt(a,10),yEnd:parseInt((p[0]||{}).clientY||-1,10)};s.dispatchEvent(new CustomEvent(\"swiped\",{bubbles:!0,cancelable:!0,detail:b})),s.dispatchEvent(new CustomEvent(d,{bubbles:!0,cancelable:!0,detail:b}))}n=null,a=null,r=null},!1);var n=null,a=null,u=null,i=null,r=null,s=null;function l(t,n,a){for(;t&&t!==e.documentElement;){var u=t.getAttribute(n);if(u)return u;t=t.parentNode}return a}}(window,document);\n", "\n", "function jaxify(string) {\n", " var mystring = string;\n", " //console.log(mystring);\n", "\n", " var count = 0;\n", " var loc = mystring.search(/([^\\\\]|^)(\\$)/);\n", "\n", " var count2 = 0;\n", " var loc2 = mystring.search(/([^\\\\]|^)(\\$\\$)/);\n", "\n", " //console.log(loc);\n", "\n", " while ((loc >= 0) || (loc2 >= 0)) {\n", "\n", " /* Have to replace all the double $$ first with current implementation */\n", " if (loc2 >= 0) {\n", " if (count2 % 2 == 0) {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$\\$)/, \"$1\\\\[\");\n", " } else {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$\\$)/, \"$1\\\\]\");\n", " }\n", " count2++;\n", " } else {\n", " if (count % 2 == 0) {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$)/, \"$1\\\\(\");\n", " } else {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$)/, \"$1\\\\)\");\n", " }\n", " count++;\n", " }\n", " loc = mystring.search(/([^\\\\]|^)(\\$)/);\n", " loc2 = mystring.search(/([^\\\\]|^)(\\$\\$)/);\n", " //console.log(mystring,\", loc:\",loc,\", loc2:\",loc2);\n", " }\n", "\n", " //console.log(mystring);\n", " return mystring;\n", "}\n", "\n", "window.flipCard = function flipCard(ths) {\n", " //console.log(ths);\n", " //console.log(ths.id);\n", " ths.classList.toggle(\"flip\"); \n", " ths.focus();\n", " var next=document.getElementById(ths.id+'-next');\n", " next.style.pointerEvents='none';\n", " /* ths.blur(); */\n", " next.classList.add('flipped');\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " //console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([ths]);\n", " }\n", " } else {\n", " //console.log('MathJax not detected');\n", " }\n", "\n", "\n", " setTimeout(reenableNext, 600, ths, next);\n", "}\n", "\n", "window.checkKey = function checkKey(container, event) {\n", " event.stopPropagation();\n", " /*\n", " console.log(container);\n", " console.log(event.key);\n", " console.log(event.code);\n", " */\n", " /* JMS: Working here*/\n", " var next=document.getElementById(container.id+'-next');\n", " /* Only react if not already sliding */\n", " if (! next.classList.contains(\"hide\")) {\n", " if ((event.key == \"j\") || (event.key == \"Enter\") || (event.key == \"ArrowRight\")) {\n", " window.checkFlip(container.id);\n", " }\n", " if (event.key == \" \") {\n", " window.flipCard(container);\n", " }\n", " }\n", " event.preventDefault();\n", "}\n", "\n", "\n", "function reenableNext(ths, next) {\n", " next.style.pointerEvents='auto';\n", " /* ths.tabIndex= 0;*/\n", " /* ths.focus(); */\n", "}\n", "\n", "\n", "\n", "function slide2(containerId) {\n", " var container = document.getElementById(containerId);\n", " var next=document.getElementById(containerId+'-next');\n", " var frontcard = container.children[0];\n", " var backcard = container.children[1];\n", " container.style.pointerEvents='none';\n", " /* container.removeAttribute(\"tabindex\");*/\n", " /* container.blur(); */\n", " //backcard.style.pointerEvents='none';\n", " next.style.pointerEvents='none';\n", " next.classList.remove('flipped');\n", " next.classList.add('hide');\n", "\n", " //container.classList.add(\"prepare\");\n", " \n", " container.className=\"flip-container slide\";\n", " backcard.parentElement.removeChild(frontcard);\n", " backcard.parentElement.appendChild(frontcard);\n", " setTimeout(slideback, 600, container, frontcard, backcard, next);\n", " \n", "}\n", "\n", "\n", "window.checkFlip = function checkFlip(containerId) {\n", " var container = document.getElementById(containerId);\n", "\n", "\n", " if (container.classList.contains('flip')) {\n", " container.classList.remove('flip');\n", " setTimeout(slide2, 600, containerId);\n", " } \n", " else {\n", " slide2(containerId);\n", " }\n", "}\n", "\n", "\n", "function slideback(container, frontcard, backcard, next) {\n", " container.className=\"flip-container slideback\";\n", " setTimeout(cleanup, 550, container, frontcard, backcard, next);\n", "}\n", "\n", "function cleanup(container, frontcard, backcard, next) {\n", " container.removeChild(frontcard);\n", " backcard.className=\"flipper frontcard\";\n", " container.className=\"flip-container\";\n", "\n", " var cardnum=parseInt(container.dataset.cardnum);\n", " var cards=eval('cards'+container.id);\n", " var flipper=createOneCard(container, false, cards, cardnum);\n", " container.append(flipper);\n", " cardnum= (cardnum+1) % parseInt(container.dataset.numCards);\n", " container.dataset.cardnum=cardnum;\n", " if (cardnum != 1){\n", " next.innerHTML=\"Next >\";\n", " } else {\n", " //next.innerHTML=\"Reload \\\\(\\\\circlearrowleft\\\\) \";\n", " next.innerHTML='Reload '\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " //console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([next]);\n", " }\n", " } else {\n", " //console.log('MathJax not detected');\n", " }\n", "\n", "\n", " }\n", "\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " //console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset();\n", " }\n", " } else {\n", " //console.log('MathJax not detected');\n", " }\n", "\n", "\n", " next.style.pointerEvents='auto';\n", " container.style.pointerEvents='auto';\n", " /* container.tabIndex= 0; */\n", " /* container.focus(); */\n", " next.classList.remove('hide');\n", " container.addEventListener('swiped-left', function(e) {\n", " /*\n", " console.log(e.detail);\n", " console.log(id);\n", " */\n", " checkFlip(container.id);\n", " }, {once: true });\n", "\n", "\n", "}\n", "\n", "\n", "function createOneCard (mydiv, frontCard, cards, cardnum) {\n", " var colors=eval('frontColors'+mydiv.id);\n", " var backColors=eval('backColors'+mydiv.id);\n", " var textColors=eval('textColors'+mydiv.id);\n", " //console.log(backColors)\n", "\n", " var flipper = document.createElement('div');\n", " if (frontCard){\n", " flipper.className=\"flipper frontcard\"; \n", " }\n", " else {\n", " flipper.className=\"flipper backcard\"; \n", " }\n", "\n", " var front = document.createElement('div');\n", " front.className='front flashcard';\n", "\n", " var frontSpan= document.createElement('span');\n", " frontSpan.className='flashcardtext';\n", " frontSpan.innerHTML=jaxify(cards[cardnum]['front']);\n", " frontSpan.style.color=textColors[cardnum % textColors.length];\n", " //frontSpan.textContent=jaxify(cards[cardnum]['front']);\n", " //front.style.background='var(' + colors[cardnum % colors.length] + ')';\n", " front.style.background=colors[cardnum % colors.length];\n", "\n", " front.append(frontSpan);\n", " flipper.append(front);\n", "\n", " var back = document.createElement('div');\n", " back.className='back flashcard';\n", " back.style.background=backColors[cardnum % backColors.length];\n", "\n", " var backSpan= document.createElement('span');\n", " backSpan.className='flashcardtext';\n", " backSpan.innerHTML=jaxify(cards[cardnum]['back']);\n", " backSpan.style.color=textColors[cardnum % textColors.length];\n", " back.append(backSpan);\n", "\n", " flipper.append(back);\n", "\n", " return flipper;\n", "\n", "}\n", "\n", "\n", "\n", "\n", "\n", "function createCards(id, keyControl, grabFocus) {\n", " console.log(id);\n", "\n", " var mydiv=document.getElementById(id);\n", " /*mydiv.onclick = window.flipCard(mydiv);*/\n", " /*\n", " mydiv.addEventListener('click', function(){window.flipCard(mydiv);}, false);\n", " mydiv.addEventListener('keydown', function(event){window.checkKey(mydiv,event);}, true);\n", " */\n", " mydiv.onclick = function(){window.flipCard(mydiv);};\n", " //console.log(keyControl);\n", " if (keyControl == \"True\"){\n", " mydiv.onkeydown = function(event){window.checkKey(mydiv,event);};\n", " }\n", " /* mydiv.addEventListener('keydown', function(event){event.stopPropagation(); console.log(event); event.preventDefault();}, true); */\n", " /*mydiv.onkeypress = function(event){console.log(event); event.preventDefault();};*/\n", "\n", " //console.log(mydiv);\n", "\n", " var cards=eval('cards'+id);\n", " mydiv.dataset.cardnum=0;\n", " mydiv.dataset.numCards=cards.length;\n", " mydiv.addEventListener('swiped-left', function(e) {\n", " /*\n", " console.log(e.detail);\n", " console.log(id);\n", " */\n", " checkFlip(id);\n", " }, {once: true});\n", "\n", " var cardnum=0;\n", " \n", " for (var i=0; i<2; i++) {\n", " \n", " var flipper;\n", " if (i==0){\n", " flipper=createOneCard(mydiv, true, cards, cardnum);\n", " }\n", " else {\n", " flipper=createOneCard(mydiv, false, cards, cardnum);\n", " }\n", "\n", " mydiv.append(flipper);\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " if (typeof version == 'undefined') {\n", " setTimeout(function(){\n", " var version = MathJax.version;\n", " console.log('After sleep, MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([flipper]);\n", " }\n", " }, 500);\n", " } else{\n", " console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([flipper]);\n", " }\n", " }\n", " } else {\n", " console.log('MathJax not detected');\n", " }\n", "\n", "\n", " cardnum = (cardnum + 1) % mydiv.dataset.numCards;\n", " }\n", " mydiv.dataset.cardnum = cardnum;\n", "\n", " var next=document.getElementById(id+'-next');\n", " if (cards.length==1) {\n", " // Don't show next if no other cards!\n", " next.style.pointerEvents='none';\n", " next.classList.add('hide');\n", " } else {\n", " next.innerHTML=\"Next >\";\n", " }\n", "\n", " if (grabFocus == \"True\" )\n", " mydiv.focus();\n", "\n", " return flipper;\n", "}\n", "\n", "\n", "\n", "\n", "\n", " function try_create() {\n", " if(document.getElementById(\"NondIgKPRtFq\")) {\n", " createCards(\"NondIgKPRtFq\", \"True\", \"False\");\n", " } else {\n", " setTimeout(try_create, 200);\n", " }\n", " };\n", " \n", "var cardsNondIgKPRtFq=[\n", " {\n", " \"front\": \"Signal est à énergie finie\",\n", " \"back\": \" $E_x= \\\\int_{- \\\\infty}^{+ \\\\infty} |x(t)|^2dt < \\\\infty.$ \"\n", " },\n", " {\n", " \"front\": \"Fonction d'autocorrélation\",\n", " \"back\": \" $R_x(\\\\tau) = \\\\langle x(t), x(t-\\\\tau) \\\\rangle = \\\\int_{\\\\mathbb{R}} x(t)x^*(t-\\\\tau) dt$ \"\n", " },\n", " {\n", " \"front\": \"Densité spectrale d'énergie (DSE)\",\n", " \"back\": \" $s_x(f) = \\\\textrm{TF}[R_x(\\\\tau)] = \\\\int_{\\\\mathbb{R}} R_x(\\\\tau) \\\\exp \\\\left(-j 2 \\\\pi f \\\\tau \\\\right) d\\\\tau$ \"\n", " },\n", " {\n", " \"front\": \"Fonction d'intercorrélation\",\n", " \"back\": \" $R_{xy}(\\\\tau) = \\\\langle x(t), y(t-\\\\tau) \\\\rangle = \\\\int_{\\\\mathbb{R}} x(t) y^*(t-\\\\tau) dt$ \"\n", " },\n", " {\n", " \"front\": \"Lien entre DSE et Transformée de Fourier d'un Signal $x(t)$\",\n", " \"back\": \"$s_x(f)= \\\\left| X(f) \\\\right|^2$\"\n", " }\n", " \n", "];\n", "var frontColorsNondIgKPRtFq= [\"var(--asparagus)\", \"var(--terra-cotta)\", \"var(--cyan-process)\" ];\n", "var backColorsNondIgKPRtFq= [\"var(--dark-blue-gray)\" ];\n", "var textColorsNondIgKPRtFq= [\"var(--snow)\" ];\n", "try_create(); " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display_flashcards('./flashcards/'+'Chap2sec1.json')" ] }, { "cell_type": "markdown", "id": "273a3124-4c68-44cd-8908-c7c7443aa489", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [ "remove_input" ] }, "source": [ "### Signaux déterministes à puissance finie" ] }, { "cell_type": "code", "execution_count": 3, "id": "f5d55ef9-6e40-4c9a-b91c-fbf8e01b3c81", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [ "remove-input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "/*!\n", " * swiped-events.js - v1.1.4\n", " * Pure JavaScript swipe events\n", " * https://github.com/john-doherty/swiped-events\n", " * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n", " * @author John Doherty \n", " * @license MIT\n", " */\n", "!function(t,e){\"use strict\";\"function\"!=typeof t.CustomEvent&&(t.CustomEvent=function(t,n){n=n||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent(\"CustomEvent\");return a.initCustomEvent(t,n.bubbles,n.cancelable,n.detail),a},t.CustomEvent.prototype=t.Event.prototype),e.addEventListener(\"touchstart\",function(t){if(\"true\"===t.target.getAttribute(\"data-swipe-ignore\"))return;s=t.target,r=Date.now(),n=t.touches[0].clientX,a=t.touches[0].clientY,u=0,i=0},!1),e.addEventListener(\"touchmove\",function(t){if(!n||!a)return;var e=t.touches[0].clientX,r=t.touches[0].clientY;u=n-e,i=a-r},!1),e.addEventListener(\"touchend\",function(t){if(s!==t.target)return;var e=parseInt(l(s,\"data-swipe-threshold\",\"20\"),10),o=parseInt(l(s,\"data-swipe-timeout\",\"500\"),10),c=Date.now()-r,d=\"\",p=t.changedTouches||t.touches||[];Math.abs(u)>Math.abs(i)?Math.abs(u)>e&&c0?\"swiped-left\":\"swiped-right\"):Math.abs(i)>e&&c0?\"swiped-up\":\"swiped-down\");if(\"\"!==d){var b={dir:d.replace(/swiped-/,\"\"),xStart:parseInt(n,10),xEnd:parseInt((p[0]||{}).clientX||-1,10),yStart:parseInt(a,10),yEnd:parseInt((p[0]||{}).clientY||-1,10)};s.dispatchEvent(new CustomEvent(\"swiped\",{bubbles:!0,cancelable:!0,detail:b})),s.dispatchEvent(new CustomEvent(d,{bubbles:!0,cancelable:!0,detail:b}))}n=null,a=null,r=null},!1);var n=null,a=null,u=null,i=null,r=null,s=null;function l(t,n,a){for(;t&&t!==e.documentElement;){var u=t.getAttribute(n);if(u)return u;t=t.parentNode}return a}}(window,document);\n", "\n", "function jaxify(string) {\n", " var mystring = string;\n", " //console.log(mystring);\n", "\n", " var count = 0;\n", " var loc = mystring.search(/([^\\\\]|^)(\\$)/);\n", "\n", " var count2 = 0;\n", " var loc2 = mystring.search(/([^\\\\]|^)(\\$\\$)/);\n", "\n", " //console.log(loc);\n", "\n", " while ((loc >= 0) || (loc2 >= 0)) {\n", "\n", " /* Have to replace all the double $$ first with current implementation */\n", " if (loc2 >= 0) {\n", " if (count2 % 2 == 0) {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$\\$)/, \"$1\\\\[\");\n", " } else {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$\\$)/, \"$1\\\\]\");\n", " }\n", " count2++;\n", " } else {\n", " if (count % 2 == 0) {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$)/, \"$1\\\\(\");\n", " } else {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$)/, \"$1\\\\)\");\n", " }\n", " count++;\n", " }\n", " loc = mystring.search(/([^\\\\]|^)(\\$)/);\n", " loc2 = mystring.search(/([^\\\\]|^)(\\$\\$)/);\n", " //console.log(mystring,\", loc:\",loc,\", loc2:\",loc2);\n", " }\n", "\n", " //console.log(mystring);\n", " return mystring;\n", "}\n", "\n", "window.flipCard = function flipCard(ths) {\n", " //console.log(ths);\n", " //console.log(ths.id);\n", " ths.classList.toggle(\"flip\"); \n", " ths.focus();\n", " var next=document.getElementById(ths.id+'-next');\n", " next.style.pointerEvents='none';\n", " /* ths.blur(); */\n", " next.classList.add('flipped');\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " //console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([ths]);\n", " }\n", " } else {\n", " //console.log('MathJax not detected');\n", " }\n", "\n", "\n", " setTimeout(reenableNext, 600, ths, next);\n", "}\n", "\n", "window.checkKey = function checkKey(container, event) {\n", " event.stopPropagation();\n", " /*\n", " console.log(container);\n", " console.log(event.key);\n", " console.log(event.code);\n", " */\n", " /* JMS: Working here*/\n", " var next=document.getElementById(container.id+'-next');\n", " /* Only react if not already sliding */\n", " if (! next.classList.contains(\"hide\")) {\n", " if ((event.key == \"j\") || (event.key == \"Enter\") || (event.key == \"ArrowRight\")) {\n", " window.checkFlip(container.id);\n", " }\n", " if (event.key == \" \") {\n", " window.flipCard(container);\n", " }\n", " }\n", " event.preventDefault();\n", "}\n", "\n", "\n", "function reenableNext(ths, next) {\n", " next.style.pointerEvents='auto';\n", " /* ths.tabIndex= 0;*/\n", " /* ths.focus(); */\n", "}\n", "\n", "\n", "\n", "function slide2(containerId) {\n", " var container = document.getElementById(containerId);\n", " var next=document.getElementById(containerId+'-next');\n", " var frontcard = container.children[0];\n", " var backcard = container.children[1];\n", " container.style.pointerEvents='none';\n", " /* container.removeAttribute(\"tabindex\");*/\n", " /* container.blur(); */\n", " //backcard.style.pointerEvents='none';\n", " next.style.pointerEvents='none';\n", " next.classList.remove('flipped');\n", " next.classList.add('hide');\n", "\n", " //container.classList.add(\"prepare\");\n", " \n", " container.className=\"flip-container slide\";\n", " backcard.parentElement.removeChild(frontcard);\n", " backcard.parentElement.appendChild(frontcard);\n", " setTimeout(slideback, 600, container, frontcard, backcard, next);\n", " \n", "}\n", "\n", "\n", "window.checkFlip = function checkFlip(containerId) {\n", " var container = document.getElementById(containerId);\n", "\n", "\n", " if (container.classList.contains('flip')) {\n", " container.classList.remove('flip');\n", " setTimeout(slide2, 600, containerId);\n", " } \n", " else {\n", " slide2(containerId);\n", " }\n", "}\n", "\n", "\n", "function slideback(container, frontcard, backcard, next) {\n", " container.className=\"flip-container slideback\";\n", " setTimeout(cleanup, 550, container, frontcard, backcard, next);\n", "}\n", "\n", "function cleanup(container, frontcard, backcard, next) {\n", " container.removeChild(frontcard);\n", " backcard.className=\"flipper frontcard\";\n", " container.className=\"flip-container\";\n", "\n", " var cardnum=parseInt(container.dataset.cardnum);\n", " var cards=eval('cards'+container.id);\n", " var flipper=createOneCard(container, false, cards, cardnum);\n", " container.append(flipper);\n", " cardnum= (cardnum+1) % parseInt(container.dataset.numCards);\n", " container.dataset.cardnum=cardnum;\n", " if (cardnum != 1){\n", " next.innerHTML=\"Next >\";\n", " } else {\n", " //next.innerHTML=\"Reload \\\\(\\\\circlearrowleft\\\\) \";\n", " next.innerHTML='Reload '\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " //console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([next]);\n", " }\n", " } else {\n", " //console.log('MathJax not detected');\n", " }\n", "\n", "\n", " }\n", "\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " //console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset();\n", " }\n", " } else {\n", " //console.log('MathJax not detected');\n", " }\n", "\n", "\n", " next.style.pointerEvents='auto';\n", " container.style.pointerEvents='auto';\n", " /* container.tabIndex= 0; */\n", " /* container.focus(); */\n", " next.classList.remove('hide');\n", " container.addEventListener('swiped-left', function(e) {\n", " /*\n", " console.log(e.detail);\n", " console.log(id);\n", " */\n", " checkFlip(container.id);\n", " }, {once: true });\n", "\n", "\n", "}\n", "\n", "\n", "function createOneCard (mydiv, frontCard, cards, cardnum) {\n", " var colors=eval('frontColors'+mydiv.id);\n", " var backColors=eval('backColors'+mydiv.id);\n", " var textColors=eval('textColors'+mydiv.id);\n", " //console.log(backColors)\n", "\n", " var flipper = document.createElement('div');\n", " if (frontCard){\n", " flipper.className=\"flipper frontcard\"; \n", " }\n", " else {\n", " flipper.className=\"flipper backcard\"; \n", " }\n", "\n", " var front = document.createElement('div');\n", " front.className='front flashcard';\n", "\n", " var frontSpan= document.createElement('span');\n", " frontSpan.className='flashcardtext';\n", " frontSpan.innerHTML=jaxify(cards[cardnum]['front']);\n", " frontSpan.style.color=textColors[cardnum % textColors.length];\n", " //frontSpan.textContent=jaxify(cards[cardnum]['front']);\n", " //front.style.background='var(' + colors[cardnum % colors.length] + ')';\n", " front.style.background=colors[cardnum % colors.length];\n", "\n", " front.append(frontSpan);\n", " flipper.append(front);\n", "\n", " var back = document.createElement('div');\n", " back.className='back flashcard';\n", " back.style.background=backColors[cardnum % backColors.length];\n", "\n", " var backSpan= document.createElement('span');\n", " backSpan.className='flashcardtext';\n", " backSpan.innerHTML=jaxify(cards[cardnum]['back']);\n", " backSpan.style.color=textColors[cardnum % textColors.length];\n", " back.append(backSpan);\n", "\n", " flipper.append(back);\n", "\n", " return flipper;\n", "\n", "}\n", "\n", "\n", "\n", "\n", "\n", "function createCards(id, keyControl, grabFocus) {\n", " console.log(id);\n", "\n", " var mydiv=document.getElementById(id);\n", " /*mydiv.onclick = window.flipCard(mydiv);*/\n", " /*\n", " mydiv.addEventListener('click', function(){window.flipCard(mydiv);}, false);\n", " mydiv.addEventListener('keydown', function(event){window.checkKey(mydiv,event);}, true);\n", " */\n", " mydiv.onclick = function(){window.flipCard(mydiv);};\n", " //console.log(keyControl);\n", " if (keyControl == \"True\"){\n", " mydiv.onkeydown = function(event){window.checkKey(mydiv,event);};\n", " }\n", " /* mydiv.addEventListener('keydown', function(event){event.stopPropagation(); console.log(event); event.preventDefault();}, true); */\n", " /*mydiv.onkeypress = function(event){console.log(event); event.preventDefault();};*/\n", "\n", " //console.log(mydiv);\n", "\n", " var cards=eval('cards'+id);\n", " mydiv.dataset.cardnum=0;\n", " mydiv.dataset.numCards=cards.length;\n", " mydiv.addEventListener('swiped-left', function(e) {\n", " /*\n", " console.log(e.detail);\n", " console.log(id);\n", " */\n", " checkFlip(id);\n", " }, {once: true});\n", "\n", " var cardnum=0;\n", " \n", " for (var i=0; i<2; i++) {\n", " \n", " var flipper;\n", " if (i==0){\n", " flipper=createOneCard(mydiv, true, cards, cardnum);\n", " }\n", " else {\n", " flipper=createOneCard(mydiv, false, cards, cardnum);\n", " }\n", "\n", " mydiv.append(flipper);\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " if (typeof version == 'undefined') {\n", " setTimeout(function(){\n", " var version = MathJax.version;\n", " console.log('After sleep, MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([flipper]);\n", " }\n", " }, 500);\n", " } else{\n", " console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([flipper]);\n", " }\n", " }\n", " } else {\n", " console.log('MathJax not detected');\n", " }\n", "\n", "\n", " cardnum = (cardnum + 1) % mydiv.dataset.numCards;\n", " }\n", " mydiv.dataset.cardnum = cardnum;\n", "\n", " var next=document.getElementById(id+'-next');\n", " if (cards.length==1) {\n", " // Don't show next if no other cards!\n", " next.style.pointerEvents='none';\n", " next.classList.add('hide');\n", " } else {\n", " next.innerHTML=\"Next >\";\n", " }\n", "\n", " if (grabFocus == \"True\" )\n", " mydiv.focus();\n", "\n", " return flipper;\n", "}\n", "\n", "\n", "\n", "\n", "\n", " function try_create() {\n", " if(document.getElementById(\"PoDcBtjJsxvw\")) {\n", " createCards(\"PoDcBtjJsxvw\", \"True\", \"False\");\n", " } else {\n", " setTimeout(try_create, 200);\n", " }\n", " };\n", " \n", "var cardsPoDcBtjJsxvw=[\n", " {\n", " \"front\": \"Signal à puissance finie péridodique\",\n", " \"back\": \"Un signal à temps continu $x(t)$ est à puissance finie péridodique de période $T_0$ si $$(1) \\\\; x(t+T_0)=x(t), \\\\forall t$$ et si $$(2) \\\\; P=\\\\frac{1}{T_0} \\\\int_{- \\\\frac{T_0}{2}}^{ \\\\frac{T_0}{2}}{|x(t)|^2dt} < \\\\infty$$\"\n", " },\n", " {\n", " \"front\": \"Fonction d'autocorrélation\",\n", " \"back\": \" $R_x(\\\\tau)=\\\\langle x(t), x(t-\\\\tau) \\\\rangle = \\\\frac{1}{T_0} \\\\int_{- \\\\frac{T_0}{2}}^{ \\\\frac{T_0}{2}} x(t)x^*(t-\\\\tau) dt$ \"\n", " },\n", " {\n", " \"front\": \"Densité spectrale de puissance (DSP)\",\n", " \"back\": \"$s_x(f) = \\\\textrm{TF}[R_x(\\\\tau)] = \\\\int_{\\\\mathbb{R}} R_x(\\\\tau) \\\\exp \\\\left(-j 2 \\\\pi f \\\\tau \\\\right) d\\\\tau.$\"\n", " },\n", " {\n", " \"front\": \"Fonction d'intercorrélation\",\n", " \"back\": \"$R_{xy}(\\\\tau) = \\\\langle x(t), y(t-\\\\tau) \\\\rangle = \\\\frac{1}{T_0} \\\\int_{- \\\\frac{T_0}{2}}^{ \\\\frac{T_0}{2}} x(t) y^*(t-\\\\tau)dt$\"\n", " },\n", " {\n", " \"front\": \"lien entre DSP et Série de Fourier\",\n", " \"back\": \"$$x(t)=\\\\sum_{k \\\\in \\\\mathbb{Z}} c_k \\\\exp(j 2 \\\\pi k f_0 t)$$ $$s_x(f)= \\\\sum_{k \\\\in \\\\mathbb{Z}} |c_k|^2 \\\\delta(f-kf_0)$$\"\n", " }\n", " \n", "];\n", "var frontColorsPoDcBtjJsxvw= [\"var(--asparagus)\", \"var(--terra-cotta)\", \"var(--cyan-process)\" ];\n", "var backColorsPoDcBtjJsxvw= [\"var(--dark-blue-gray)\" ];\n", "var textColorsPoDcBtjJsxvw= [\"var(--snow)\" ];\n", "try_create(); " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display_flashcards('./flashcards/'+'Chap2sec2.json')" ] }, { "cell_type": "markdown", "id": "a93bbc88-67fa-4700-bc0f-7fa20908a1e1", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [ "remove-ouput" ] }, "source": [ "### Signaux déterministes non périodiques à puissance finie" ] }, { "cell_type": "code", "execution_count": 4, "id": "b4f295c6-acdc-4d65-8758-9b2285a2d4c1", "metadata": { "editable": true, "scrolled": true, "slideshow": { "slide_type": "" }, "tags": [ "remove-input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "/*!\n", " * swiped-events.js - v1.1.4\n", " * Pure JavaScript swipe events\n", " * https://github.com/john-doherty/swiped-events\n", " * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n", " * @author John Doherty \n", " * @license MIT\n", " */\n", "!function(t,e){\"use strict\";\"function\"!=typeof t.CustomEvent&&(t.CustomEvent=function(t,n){n=n||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent(\"CustomEvent\");return a.initCustomEvent(t,n.bubbles,n.cancelable,n.detail),a},t.CustomEvent.prototype=t.Event.prototype),e.addEventListener(\"touchstart\",function(t){if(\"true\"===t.target.getAttribute(\"data-swipe-ignore\"))return;s=t.target,r=Date.now(),n=t.touches[0].clientX,a=t.touches[0].clientY,u=0,i=0},!1),e.addEventListener(\"touchmove\",function(t){if(!n||!a)return;var e=t.touches[0].clientX,r=t.touches[0].clientY;u=n-e,i=a-r},!1),e.addEventListener(\"touchend\",function(t){if(s!==t.target)return;var e=parseInt(l(s,\"data-swipe-threshold\",\"20\"),10),o=parseInt(l(s,\"data-swipe-timeout\",\"500\"),10),c=Date.now()-r,d=\"\",p=t.changedTouches||t.touches||[];Math.abs(u)>Math.abs(i)?Math.abs(u)>e&&c0?\"swiped-left\":\"swiped-right\"):Math.abs(i)>e&&c0?\"swiped-up\":\"swiped-down\");if(\"\"!==d){var b={dir:d.replace(/swiped-/,\"\"),xStart:parseInt(n,10),xEnd:parseInt((p[0]||{}).clientX||-1,10),yStart:parseInt(a,10),yEnd:parseInt((p[0]||{}).clientY||-1,10)};s.dispatchEvent(new CustomEvent(\"swiped\",{bubbles:!0,cancelable:!0,detail:b})),s.dispatchEvent(new CustomEvent(d,{bubbles:!0,cancelable:!0,detail:b}))}n=null,a=null,r=null},!1);var n=null,a=null,u=null,i=null,r=null,s=null;function l(t,n,a){for(;t&&t!==e.documentElement;){var u=t.getAttribute(n);if(u)return u;t=t.parentNode}return a}}(window,document);\n", "\n", "function jaxify(string) {\n", " var mystring = string;\n", " //console.log(mystring);\n", "\n", " var count = 0;\n", " var loc = mystring.search(/([^\\\\]|^)(\\$)/);\n", "\n", " var count2 = 0;\n", " var loc2 = mystring.search(/([^\\\\]|^)(\\$\\$)/);\n", "\n", " //console.log(loc);\n", "\n", " while ((loc >= 0) || (loc2 >= 0)) {\n", "\n", " /* Have to replace all the double $$ first with current implementation */\n", " if (loc2 >= 0) {\n", " if (count2 % 2 == 0) {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$\\$)/, \"$1\\\\[\");\n", " } else {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$\\$)/, \"$1\\\\]\");\n", " }\n", " count2++;\n", " } else {\n", " if (count % 2 == 0) {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$)/, \"$1\\\\(\");\n", " } else {\n", " mystring = mystring.replace(/([^\\\\]|^)(\\$)/, \"$1\\\\)\");\n", " }\n", " count++;\n", " }\n", " loc = mystring.search(/([^\\\\]|^)(\\$)/);\n", " loc2 = mystring.search(/([^\\\\]|^)(\\$\\$)/);\n", " //console.log(mystring,\", loc:\",loc,\", loc2:\",loc2);\n", " }\n", "\n", " //console.log(mystring);\n", " return mystring;\n", "}\n", "\n", "window.flipCard = function flipCard(ths) {\n", " //console.log(ths);\n", " //console.log(ths.id);\n", " ths.classList.toggle(\"flip\"); \n", " ths.focus();\n", " var next=document.getElementById(ths.id+'-next');\n", " next.style.pointerEvents='none';\n", " /* ths.blur(); */\n", " next.classList.add('flipped');\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " //console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([ths]);\n", " }\n", " } else {\n", " //console.log('MathJax not detected');\n", " }\n", "\n", "\n", " setTimeout(reenableNext, 600, ths, next);\n", "}\n", "\n", "window.checkKey = function checkKey(container, event) {\n", " event.stopPropagation();\n", " /*\n", " console.log(container);\n", " console.log(event.key);\n", " console.log(event.code);\n", " */\n", " /* JMS: Working here*/\n", " var next=document.getElementById(container.id+'-next');\n", " /* Only react if not already sliding */\n", " if (! next.classList.contains(\"hide\")) {\n", " if ((event.key == \"j\") || (event.key == \"Enter\") || (event.key == \"ArrowRight\")) {\n", " window.checkFlip(container.id);\n", " }\n", " if (event.key == \" \") {\n", " window.flipCard(container);\n", " }\n", " }\n", " event.preventDefault();\n", "}\n", "\n", "\n", "function reenableNext(ths, next) {\n", " next.style.pointerEvents='auto';\n", " /* ths.tabIndex= 0;*/\n", " /* ths.focus(); */\n", "}\n", "\n", "\n", "\n", "function slide2(containerId) {\n", " var container = document.getElementById(containerId);\n", " var next=document.getElementById(containerId+'-next');\n", " var frontcard = container.children[0];\n", " var backcard = container.children[1];\n", " container.style.pointerEvents='none';\n", " /* container.removeAttribute(\"tabindex\");*/\n", " /* container.blur(); */\n", " //backcard.style.pointerEvents='none';\n", " next.style.pointerEvents='none';\n", " next.classList.remove('flipped');\n", " next.classList.add('hide');\n", "\n", " //container.classList.add(\"prepare\");\n", " \n", " container.className=\"flip-container slide\";\n", " backcard.parentElement.removeChild(frontcard);\n", " backcard.parentElement.appendChild(frontcard);\n", " setTimeout(slideback, 600, container, frontcard, backcard, next);\n", " \n", "}\n", "\n", "\n", "window.checkFlip = function checkFlip(containerId) {\n", " var container = document.getElementById(containerId);\n", "\n", "\n", " if (container.classList.contains('flip')) {\n", " container.classList.remove('flip');\n", " setTimeout(slide2, 600, containerId);\n", " } \n", " else {\n", " slide2(containerId);\n", " }\n", "}\n", "\n", "\n", "function slideback(container, frontcard, backcard, next) {\n", " container.className=\"flip-container slideback\";\n", " setTimeout(cleanup, 550, container, frontcard, backcard, next);\n", "}\n", "\n", "function cleanup(container, frontcard, backcard, next) {\n", " container.removeChild(frontcard);\n", " backcard.className=\"flipper frontcard\";\n", " container.className=\"flip-container\";\n", "\n", " var cardnum=parseInt(container.dataset.cardnum);\n", " var cards=eval('cards'+container.id);\n", " var flipper=createOneCard(container, false, cards, cardnum);\n", " container.append(flipper);\n", " cardnum= (cardnum+1) % parseInt(container.dataset.numCards);\n", " container.dataset.cardnum=cardnum;\n", " if (cardnum != 1){\n", " next.innerHTML=\"Next >\";\n", " } else {\n", " //next.innerHTML=\"Reload \\\\(\\\\circlearrowleft\\\\) \";\n", " next.innerHTML='Reload '\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " //console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([next]);\n", " }\n", " } else {\n", " //console.log('MathJax not detected');\n", " }\n", "\n", "\n", " }\n", "\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " //console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset();\n", " }\n", " } else {\n", " //console.log('MathJax not detected');\n", " }\n", "\n", "\n", " next.style.pointerEvents='auto';\n", " container.style.pointerEvents='auto';\n", " /* container.tabIndex= 0; */\n", " /* container.focus(); */\n", " next.classList.remove('hide');\n", " container.addEventListener('swiped-left', function(e) {\n", " /*\n", " console.log(e.detail);\n", " console.log(id);\n", " */\n", " checkFlip(container.id);\n", " }, {once: true });\n", "\n", "\n", "}\n", "\n", "\n", "function createOneCard (mydiv, frontCard, cards, cardnum) {\n", " var colors=eval('frontColors'+mydiv.id);\n", " var backColors=eval('backColors'+mydiv.id);\n", " var textColors=eval('textColors'+mydiv.id);\n", " //console.log(backColors)\n", "\n", " var flipper = document.createElement('div');\n", " if (frontCard){\n", " flipper.className=\"flipper frontcard\"; \n", " }\n", " else {\n", " flipper.className=\"flipper backcard\"; \n", " }\n", "\n", " var front = document.createElement('div');\n", " front.className='front flashcard';\n", "\n", " var frontSpan= document.createElement('span');\n", " frontSpan.className='flashcardtext';\n", " frontSpan.innerHTML=jaxify(cards[cardnum]['front']);\n", " frontSpan.style.color=textColors[cardnum % textColors.length];\n", " //frontSpan.textContent=jaxify(cards[cardnum]['front']);\n", " //front.style.background='var(' + colors[cardnum % colors.length] + ')';\n", " front.style.background=colors[cardnum % colors.length];\n", "\n", " front.append(frontSpan);\n", " flipper.append(front);\n", "\n", " var back = document.createElement('div');\n", " back.className='back flashcard';\n", " back.style.background=backColors[cardnum % backColors.length];\n", "\n", " var backSpan= document.createElement('span');\n", " backSpan.className='flashcardtext';\n", " backSpan.innerHTML=jaxify(cards[cardnum]['back']);\n", " backSpan.style.color=textColors[cardnum % textColors.length];\n", " back.append(backSpan);\n", "\n", " flipper.append(back);\n", "\n", " return flipper;\n", "\n", "}\n", "\n", "\n", "\n", "\n", "\n", "function createCards(id, keyControl, grabFocus) {\n", " console.log(id);\n", "\n", " var mydiv=document.getElementById(id);\n", " /*mydiv.onclick = window.flipCard(mydiv);*/\n", " /*\n", " mydiv.addEventListener('click', function(){window.flipCard(mydiv);}, false);\n", " mydiv.addEventListener('keydown', function(event){window.checkKey(mydiv,event);}, true);\n", " */\n", " mydiv.onclick = function(){window.flipCard(mydiv);};\n", " //console.log(keyControl);\n", " if (keyControl == \"True\"){\n", " mydiv.onkeydown = function(event){window.checkKey(mydiv,event);};\n", " }\n", " /* mydiv.addEventListener('keydown', function(event){event.stopPropagation(); console.log(event); event.preventDefault();}, true); */\n", " /*mydiv.onkeypress = function(event){console.log(event); event.preventDefault();};*/\n", "\n", " //console.log(mydiv);\n", "\n", " var cards=eval('cards'+id);\n", " mydiv.dataset.cardnum=0;\n", " mydiv.dataset.numCards=cards.length;\n", " mydiv.addEventListener('swiped-left', function(e) {\n", " /*\n", " console.log(e.detail);\n", " console.log(id);\n", " */\n", " checkFlip(id);\n", " }, {once: true});\n", "\n", " var cardnum=0;\n", " \n", " for (var i=0; i<2; i++) {\n", " \n", " var flipper;\n", " if (i==0){\n", " flipper=createOneCard(mydiv, true, cards, cardnum);\n", " }\n", " else {\n", " flipper=createOneCard(mydiv, false, cards, cardnum);\n", " }\n", "\n", " mydiv.append(flipper);\n", " if (typeof MathJax != 'undefined') {\n", " var version = MathJax.version;\n", " if (typeof version == 'undefined') {\n", " setTimeout(function(){\n", " var version = MathJax.version;\n", " console.log('After sleep, MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([flipper]);\n", " }\n", " }, 500);\n", " } else{\n", " console.log('MathJax version', version);\n", " if (version[0] == \"2\") {\n", " MathJax.Hub.Queue([\"Typeset\", MathJax.Hub]);\n", " } else if (version[0] == \"3\") {\n", " MathJax.typeset([flipper]);\n", " }\n", " }\n", " } else {\n", " console.log('MathJax not detected');\n", " }\n", "\n", "\n", " cardnum = (cardnum + 1) % mydiv.dataset.numCards;\n", " }\n", " mydiv.dataset.cardnum = cardnum;\n", "\n", " var next=document.getElementById(id+'-next');\n", " if (cards.length==1) {\n", " // Don't show next if no other cards!\n", " next.style.pointerEvents='none';\n", " next.classList.add('hide');\n", " } else {\n", " next.innerHTML=\"Next >\";\n", " }\n", "\n", " if (grabFocus == \"True\" )\n", " mydiv.focus();\n", "\n", " return flipper;\n", "}\n", "\n", "\n", "\n", "\n", "\n", " function try_create() {\n", " if(document.getElementById(\"VjuizMLzzIon\")) {\n", " createCards(\"VjuizMLzzIon\", \"True\", \"False\");\n", " } else {\n", " setTimeout(try_create, 200);\n", " }\n", " };\n", " \n", "var cardsVjuizMLzzIon=[\n", " {\n", " \"front\": \"Signal déterministes à puissance finie non péridodique\",\n", " \"back\": \"$P=\\\\lim \\\\limits_{T \\\\to +\\\\infty} \\\\frac{1}{T} \\\\int_{- \\\\frac{T}{2}}^{\\\\frac{T}{2}} |x(t)|^2dt < \\\\infty$\"\n", " },\n", " {\n", " \"front\": \"Fonction d'autocorrélation\",\n", " \"back\": \" $R_x(\\\\tau)= \\\\lim \\\\limits_{T \\\\to +\\\\infty} \\\\frac{1}{T} \\\\int_{- \\\\frac{T}{2}}^{ \\\\frac{T}{2}} x(t)x^*(t-\\\\tau) dt$ \"\n", " },\n", " {\n", " \"front\": \"Densité spectrale de puissance (DSP)\",\n", " \"back\": \"$s_x(f) = \\\\textrm{TF}[R_x(\\\\tau)] = \\\\int_{\\\\mathbb{R}} R_x(\\\\tau) \\\\exp \\\\left(-j 2 \\\\pi f \\\\tau \\\\right) d\\\\tau$\"\n", " },\n", " {\n", " \"front\": \"Fonction d'intercorrélation\",\n", " \"back\": \"$R_{xy}(\\\\tau) = \\\\lim \\\\limits_{T \\\\to +\\\\infty} \\\\frac{1}{T} \\\\int_{- \\\\frac{T}{2}}^{ \\\\frac{T}{2}} x(t) y^*(t-\\\\tau) dt$\"\n", " },\n", " {\n", " \"front\": \"lien entre DSP et Transformée de Fourier\",\n", " \"back\": \"$$s_x(f)= {\\\\underset{T \\\\rightarrow \\\\infty }{\\\\lim }} \\\\frac{1}{T} \\\\left|X_T(f) \\\\right|^2$$ avec $$X_T(f)= \\\\int_{-T/2}^{T/2} x(t) \\\\exp(-j 2 \\\\pi f t)dt$$\"\n", " }\n", " \n", "];\n", "var frontColorsVjuizMLzzIon= [\"var(--asparagus)\", \"var(--terra-cotta)\", \"var(--cyan-process)\" ];\n", "var backColorsVjuizMLzzIon= [\"var(--dark-blue-gray)\" ];\n", "var textColorsVjuizMLzzIon= [\"var(--snow)\" ];\n", "try_create(); " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display_flashcards('./flashcards/'+'Chap2sec3.json')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 5 }