Aller au contenu

Écrêtage des valeurs d'un tableau⚓︎

L'écrêtage d'un signal consiste à limiter l'amplitude du signal entre deux valeurs x_min et x_max. On peut également appliquer cela aux valeurs d'un tableau. Voici par exemple un tableau valeurs que l'on a écrêté entre \(-150\) et \(150\) pour donner le tableau valeurs_ecretees :

🐍 Script Python
valeurs          = [34, 56, 89, 134, 152, 250, 87, -34, -187, -310]
valeurs_ecretees = [34, 56, 89, 134, 150, 150, 87, -34, -150, -150]

Question 1⚓︎

Compléter une fonction limite_amplitude qui prend en paramètre un nombre x ainsi que deux nombres x_min et x_max avec x_min <= x_max et qui renvoie :

  • x si x est compris entre x_min et x_max,
  • x_min si x est plus petit que x_min,
  • x_max si x est plus grand que x_max.

Exemple

🐍 Console Python
>>> limite_amplitude(34, -150, 150)
34
>>> limite_amplitude(-187, -150, 150)
-150

Question 2⚓︎

Compléter la fonction ecrete ci-dessous qui prend en paramètre un tableau de valeurs ainsi que x_min et x_max avec x_min <= x_max et renvoie un tableau des valeurs écrêtées entre x_min et x_max.

Exemple

🐍 Console Python
>>> valeurs = [34, 56, 89, 134, 152, 250, 87, -34, -187, -310]
>>> ecrete(valeurs, -150, 150)
[34, 56, 89, 134, 150, 150, 87, -34, -150, -150]
###
# testsbksl-nlvaleurs = [34, 56, 89, 134, 152, 250, 87, -34, -187, -310]bksl-nlattendu = [34, 56, 89, 134, 150, 150, 87, -34, -150, -150]bksl-nlresultat = ecrete(valeurs, -150, 150)bksl-nlassert attendu == resultat, f"Erreur, la fonction a renvoyé {resultat}"bksl-nlbksl-nl# autres testsbksl-nlbksl-nl# Question 1 :bksl-nlbksl-nlassert limitepy-undamplitude(-15, -10, 10) == -10, "-15 est trop petit (pas entre -10 et 10), on écrête"bksl-nlassert limitepy-undamplitude(-10, -10, 10) == -10bksl-nlassert limitepy-undamplitude( -8, -10, 10) == -8bksl-nlassert limitepy-undamplitude( 7, -10, 10) == 7bksl-nlassert limitepy-undamplitude( 10, -10, 10) == 10bksl-nlassert limitepy-undamplitude( 18, -10, 10) == 10, "18 est trop grand (pas entre -10 et 10), on écrête"bksl-nlbksl-nlassert limitepy-undamplitude(209, 210, 220) == 210, "209 est trop petit (pas entre 210 et 220), on écrête"bksl-nlassert limitepy-undamplitude(210, 210, 220) == 210bksl-nlassert limitepy-undamplitude(215, 210, 220) == 215bksl-nlassert limitepy-undamplitude(220, 210, 220) == 220bksl-nlassert limitepy-undamplitude(221, 210, 220) == 220, "221 est trop grand (pas entre 210 et 220), on écrête"bksl-nlbksl-nlbksl-nl# Question 2 :bksl-nlbksl-nlvaleurs = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]bksl-nlattendu = [5, 5, 5, 5, 5, 5, 6, 7, 8, 9, 10, 10, 10, 10]bksl-nlresultat = ecrete(valeurs, 5, 10)bksl-nlassert resultat == attendu, f"Erreur avec {valeurs}"bksl-nlbksl-nlvaleurs = [-13, -4, 6, 5, 8, -3, -12, -3, 0, 6, 7]bksl-nlattendu = [-10, -5, -5, -5, -5, -5, -10, -5, -5, -5, -5]bksl-nlresultat = ecrete(valeurs, -10, -5)bksl-nlassert resultat == attendu, f"Erreur avec {valeurs}"bksl-nlbksl-nlvaleurs = [7, 8, 3, 9, 8, 7, 2, 4, 8, 9, 0, 1, 5, 8, 8, 8, 4, 5, 4, 5]bksl-nlattendu = [7, 8, 3, 9, 8, 7, 2, 4, 8, 9, 0, 1, 5, 8, 8, 8, 4, 5, 4, 5]bksl-nlresultat = ecrete(valeurs, 0, 10)bksl-nlassert resultat == attendu, f"Erreur avec {valeurs}"bksl-nlbksl-nlvaleurs = []bksl-nlattendu = []bksl-nlresultat = ecrete(valeurs, 0, 10)bksl-nlassert resultat == attendu, f"Erreur avec {valeurs}"bksl-nlbksl-nl 5/5

def limitepy-undamplitude(x, xpy-undmin, xpy-undmax):bksl-nl ...bksl-nlbksl-nldef ecrete(valeurs, xpy-undmin, xpy-undmax):bksl-nl valeurspy-undecretees = ...bksl-nl for ...:bksl-nl y = limitepy-undamplitude(...)bksl-nl valeurspy-undecretees.append(...)bksl-nl return valeurspy-undecreteesbksl-nlbksl-nlbksl-nl# testsbksl-nlvaleurs = [34, 56, 89, 134, 152, 250, 87, -34, -187, -310]bksl-nlattendu = [34, 56, 89, 134, 150, 150, 87, -34, -150, -150]bksl-nlresultat = ecrete(valeurs, -150, 150)bksl-nlassert attendu == resultat, f"Erreur, la fonction a renvoyé {resultat}"bksl-nlbksl-nlNone

A

Z

Retour en haut de la page