Adloun

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

Commencer avec le tuteur, 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.

Le cours du chapitre · Tous les exercices du chapitre

Chercher avec le tuteur →