{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Signaux élémentaires\n", "\n", "Différents signaux seront régulièrement utilisés dans le cours : ils sont définis ici.\n", "La plupart peuvent être définis à temps continu ou à temps discret." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sinusoïde\n", "\n", "En temps continu, la sinusoïde a pour expression :\n", "\n", "$$\n", " x(t) = A \\sin(2 \\pi f t + \\varphi)\n", "$$\n", "\n", "dont les [paramètres](https://vincmazet.github.io/spetsi/sinus.html) sont :\n", "* $A$ est l'_amplitude_,\n", "* $f$ est la _fréquence_,\n", "* $\\varphi$ est la _phase_.\n", " Remarquez que si $\\varphi=0$, alors $x(t)$ est un sinus,\n", " et si $\\varphi=\\pi/2$, alors $x(t)$ est un cosinus.\n", "\n", "La sinusoïde en temps continu est [périodique](https://fr.wikipedia.org/wiki/Fonction_p%C3%A9riodique) de période $1/f$ ou, de manière équivalente, de fréquence $f$.\n", "\n", "En temps discret, la sinusoïde a la même expression :\n", "\n", "$$\n", " x[n] = A \\sin(2 \\pi f n + \\varphi)\n", "$$\n", "\n", "Le sinus est créé en Python avec la fonction [`numpy.sin`](https://numpy.org/doc/stable/reference/generated/numpy.sin.html).\n", "\n", "```{figure} sinusoide.svg\n", "---\n", "width: 700px\n", "name: F:sinusoide\n", "---\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exponentielle complexe\n", "\n", "En temps continu, l'exponentielle complexe a pour expression :\n", "\n", "$$\n", " x(t) = \\exp(j 2 \\pi f t + \\varphi)\n", " = \\cos(2 \\pi f t + \\varphi) + j \\sin(2 \\pi f t + \\varphi)\n", "$$\n", "\n", "En temps discret, c'est la même expression (en remplaçant les parenthèses dans $x(t)$ par des crochets). L'exponentielle est créée en Python avec la fonction [`numpy.exp`](https://numpy.org/doc/stable/reference/generated/numpy.exp.html),\n", "et le nombre complexe $j$ est obtenu avec `1j`.\n", "\n", "À cause du nombre complexe $j$, le signal est à valeurs complexes.\n", "Pour le représenter, il faut être dans un espace à trois dimensions (la variable, la partie réelle et la partie imaginaire).\n", "De cette manière, l'exponentielle complexe ressemble à une queue de cochon, ou un tire-bouchon.\n", "Remarquez que la variable $f$, souvent appelée fréquence, peut tout à fait être négative : dans ce cas, l'exponentielle complexe tourne dans le sens inverse.\n", "\n", "```{figure} expo.svg\n", "---\n", "name: F:expo\n", "---\n", "```\n", "\n", "
\n", "\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sinus cardinal\n", "\n", "Le sinus cardinal, noté $\\mathrm{sinc}$, a pour définition :\n", "\n", "```{margin}\n", "Le cas où $t=0$ est à considérer à part puisque la division par $t=0$ n'est pas possible.\n", "```\n", "\n", "$$\n", " \\mathrm{sinc}(t) =\n", " \\begin{cases}\n", " \\displaystyle \\frac{\\sin(\\pi t)}{\\pi t} &\\text{si}\\quad t \\neq 0 \\\\\n", " 1 &\\text{si}\\quad t = 0\n", " \\end{cases}\n", "$$\n", "\n", "Un sinus cardinal ressemble à un cosinus donc l'amplitude décroît lorsqu'on s'éloigne de $t=0$.\n", "\n", "Encore une fois, le sinus cardinal à temps discret a la même expression (avec des crochets à la place des parenthèses).\n", "Le sinus cardinal est obtenu en Python avec la fonction [`numpy.sinc`](https://numpy.org/doc/stable/reference/generated/numpy.sinc.html).\n", "\n", "```{figure} sinc.svg\n", "---\n", "width: 700px\n", "name: F:sinc\n", "---\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## Échelon\n", "\n", "L'échelon (également appelé fonction de Heaviside) a pour définition :\n", "\n", "$$\n", " u(t) =\n", " \\begin{cases}\n", " 0 &\\text{si}\\quad t < 0 \\\\\n", " 1 &\\text{si}\\quad t \\geq 0\n", " \\end{cases}\n", "$$\n", "\n", "L'échelon est donc nul pour $t<0$ et égal à 1 sinon.\n", "Il existe aussi une version à temps discret.\n", "\n", "```{figure} echelon.svg\n", "---\n", "width: 700px\n", "name: F:echelon\n", "---\n", "```\n", "\n", "Il n'existe pas de fonction permettant de générer un échelon en Python : il faut passer par des instructions spécifiques, comme par exemple dans le code suivant :" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "