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 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
````