cours4.0/cours/SIN/02-signaux.md

3.4 KiB
Raw Blame History

title subject kernelspec
Les signaux Cours
name display_name
python3 Python 3

Définition

:::{prf:definition} Signal :nonumber: true Phénomène ou grandeur physique variables dans le temps, donnant une information sur létat du système qui les produit et que peut détecter un capteur.

Dictionnaire de lAcadémie française, 9e édition :::

En d'autres termes, un signal est une grandeur physique (tension, courant, pression, etc.) variable qui transporte une information.

Les flux de la chaîne d'information sont des signaux. On retrouve généralement en sortie du bloc Acquérir un signal électrique.

Les différents types de signaux

Les signaux logiques

Un signal logique ne peut prendre que deux valeurs : un niveau haut ("High") et un niveau bas ("Low").

:label: fig:sig-logique
```{code-cell} python
:tags: [remove-input]
import altair as alt
import numpy as np
import pandas as pd

rng = np.random.default_rng(25)

n = 16
t = np.arange(n+1)
s = rng.choice([0, 1], n+1)
s[-1] = s[-2]
data = pd.DataFrame({
  "t": t,
  "s": s,
})
alt.Chart(
  data
).mark_line(
  interpolate="step-after",
  strokeWidth=3,
).encode(
  alt.X("t:Q").axis(title="Temps (s)").scale(domain=(0,n)),
  alt.Y("s:Q", axis=alt.Axis(title="Signal logique", values=[0, 1], format=".0f")).scale(domain=(0,1)),
).properties(
  width="container",
  height=100,
)
```
Exemple de signal logique

Le signal logique en @fig:sig-logique est par exemple à l'état haut entre 2 s et 3 s, et à l'état bas entre 3 s et 6 s. Lorsque le signal passe de l'état bas à l'état haut (comme à 2 s), on parle de front montant. Dans le cas contraire (comme à 3 s), on parle de front descendant.

Les signaux analogiques

Un signal analogique est un signal qui peut prendre un ensemble continu de valeurs. Un exemple de signal analogique est donné en @fig:sig-analogique.

:label: fig:sig-analogique
```{code-cell} python
:tags: [remove-input]
import altair as alt
import numpy as np
import pandas as pd

rng = np.random.default_rng(25)

n = 20
t_max = 16

t = np.linspace(0, t_max, n)

s = 5 * rng.random(n)
s[-1] = s[-2]
data = pd.DataFrame({
  "t": t,
  "s": s,
})
alt.Chart(
  data
).mark_line(
  interpolate="basis",
  strokeWidth=3,
).encode(
  alt.X("t:Q").axis(title="Temps (s)").scale(domain=(0,t_max)),
  alt.Y("s:Q", axis=alt.Axis(title="Signal analogique")).scale(domain=(0,5)),
).properties(
  width="container",
  height=200,
)
```
Exemple de signal analogique

Les signaux numériques

Un signal numérique est un signal qui peut prendre un ensemble discret de valeur, c'est-à-dire un ensemble précis de valeurs distinctes (généralement des nombres entiers). Un exemple de signal analogique est donné en @fig:sig-numerique.

:label: fig:sig-numerique
```{code-cell} python
:tags: [remove-input]
import altair as alt
import numpy as np
import pandas as pd

rng = np.random.default_rng(25)

n = 16
t = np.arange(n+1)
s = rng.integers(0, 16, n+1)
s[-1] = s[-2]
data = pd.DataFrame({
  "t": t,
  "s": s,
})
alt.Chart(
  data
).mark_line(
  interpolate="step-after",
  strokeWidth=3,
).encode(
  alt.X("t:Q").axis(title="Temps (s)").scale(domain=(0,n)),
  alt.Y("s:Q", axis=alt.Axis(title="Signal numérique", values=np.arange(0, 16))).scale(domain=(0,15)),
).properties(
  width="container",
  height=200,
)
```
Exemple de signal numérique