Refactor signal examples in 02-signaux.md to improve clarity and consistency

This commit is contained in:
Edgar P. Burkhart 2025-02-10 18:34:49 +01:00
parent dd017fe510
commit 5691023d0c
Signed by: edpibu
GPG key ID: 9833D3C5A25BD227

View file

@ -33,15 +33,15 @@ et un niveau **bas** ("Low").
```{code-cell} python
:tags: [remove-input]
import altair as alt
import numpy as np
import pandas as pd
import random
random.seed(25)
rng = np.random.default_rng(25)
n = 16
t = range(n+1)
s = random.choices([0, 1], k=n)
s += s[-1:]
t = np.arange(n+1)
s = rng.choice([0, 1], n+1)
s[-1] = s[-2]
data = pd.DataFrame({
"t": t,
"s": s,
@ -49,24 +49,102 @@ data = pd.DataFrame({
alt.Chart(
data
).mark_line(
interpolate="step-after"
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", tickMinStep=1.0)).scale(domain=(0,1)),
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 @logique est par exemple à l'état haut entre 1 s et 3 s,
et à l'état bas entre 8 s et 11 s.
Lorsque le signal passe de l'état bas à l'état haut (comme à 1 s),
Le signal logique en @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 @analogique.
````{figure}
:label: 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 @numerique.
````{figure}
:label: 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
````