enseignement scientifique (première) · Chapitre 12 · Exercice supplémentaire
Un programme qui numérise
Le son, une information à coder · niveau 2
Énoncé
On étudie le programme suivant.
from math import sin, pi
def numeriser(frequence, duree, f_ech, n_bits, u_max):
"""Renvoie la liste des entiers ecrits par le convertisseur."""
pas = u_max / 2**n_bits
n_points = int(f_ech * duree)
codes = []
for k in range(n_points):
t = k / f_ech # instant du k-ieme releve
u = u_max/2 * (1 + sin(2*pi*frequence*t))
codes.append(round(u / pas)) # niveau le plus proche
return codes
son = numeriser(440, 1.0, 44100, 16, 5.0)
print(len(son), "echantillons ;", max(son), "niveau maximal")
print("taille brute :", len(son)*16/8/1000, "ko")
Numérisation d'un son pur : le programme n'utilise aucune bibliothèque de traitement du signal, il applique la définition.
1. Que valent pas et n_points avec les valeurs de l'appel ? 2. Qu'affiche la dernière ligne ? 3. Où, dans ce programme, se produit l'échantillonnage ? Où se produit la quantification ? 4. On remplace par . Que va contenir la liste, et pourquoi est-ce trompeur ?
Un exercice à chercher : son corrigé n'est pas publié. Sur Adloun, le tuteur guide par questions, sans donner la réponse.
100 % gratuit
Cherche cet exercice avec le tuteur
- Cet exercice avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 5 autres exercices corrigés dans ce chapitre, et 4 à chercher avec le tuteur
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.