Numerisation et Traitement des Sons

Sommaire

Le Son

Le son est une vibration mécanique d'un fluide qui se propage sous forme d'ondes longitudinales grâce à la déformation élastique de ce fluide.

Personnage

Claude Elwood Shannon est née le 30 avril 1916 à Petoskey, dans l'état du Michigan. Il est un ingénieur en génie électrique et mathématicien. Il est l'un des pères de la théorie de l'information. Pendant la Seconde Guerre mondiale, Shannon travaille pour les services secrets de l'armée américaine, en cryptographie, chargé de localiser de manière automatique dans le code ennemi les parties signifiantes cachées au milieu du brouillage. Son travail est exposé dans un rapport secret (déclassifié dans les années 1980 seulement), qui donne naissance après-guerre à un article, A Mathematical Theory of Communication (1948), qui fut repris en 1949 sous forme de livre publié par l'université de l'Illinois avec les commentaires de Warren Weaver, coordonnateur (Mattelart et Mattelart, 2004) dans les services secrets. Cet ouvrage est centré autour de la problématique de la transmission du signal. avec son article "A Mathematical Theory of Communication" publié en 1948.

Format

Il existe une multitude de format different de numerisation audio, le plus connu du grand public
reste le fameux ".mp3", utilise nottament par Youtube.Glitch

une image de merde

Chapitre 1 : Caractéristiques des phénomènes ondulatoires

Projet :

Etape du projet
Etape Objectif Statut
[...] [...] [...]
1 Installer thonny ok
2 Configurer thonny ok
3 Tester la connection thonny-ESP32 ok
4 Mesurer la Distance avec le module ok
5 Récupérer les données ok
6 Tester le bargraphe NEOPIX ok
7 Liée le bargraphe au données ok
8 Classé les données en Liste en cour
9 Tester le bouton poussoir ok
10 Liée le bouton poussoir au données ok
11 réorganisation du code en POO ...
12 Tester la connexion en cours
13 Liée la connexion au code ...
14 ajouts supplémentaires dans le code Facultatif

Programmation Python


          """
Test - Mesure de distance
"""
from SOPROLAB_V2 import *
try :
from SOPROLAB_UltraSonV1 import *
print("Fonctionnement capteur de distance ....")
HCSR_connected = True
except :
print("Il semblerait que le capteur de distance ne soit pas branché !")
HCSR_connected = False
Liste = []
while HCSR_connected == True :
# Pour tester le module de test uniquement
for cptr in range ( 1000 ) :
if HCSR.distance_mm < 100 :
NEOPIX.bargraphe(1)
print ("Distance : {:4d} mm".format(HCSR.distance_mm) )
elif HCSR.distance_mm < 200 and HCSR.distance_mm > 101:
NEOPIX.bargraphe(2)
print ("Distance : {:4d} mm".format(HCSR.distance_mm) )
elif HCSR.distance_mm < 400 and HCSR.distance_mm > 201:
NEOPIX.bargraphe(3)
print ("Distance : {:4d} mm".format(HCSR.distance_mm) )
elif HCSR.distance_mm < 800 and HCSR.distance_mm > 401:
NEOPIX.bargraphe(4)
print ("Distance : {:4d} mm".format(HCSR.distance_mm) )
elif HCSR.distance_mm < 1200 and HCSR.distance_mm > 801:
NEOPIX.bargraphe(5)
print ("Distance : {:4d} mm".format(HCSR.distance_mm) )
elif HCSR.distance_mm < 1600 and HCSR.distance_mm > 1201:
NEOPIX.bargraphe(6)
print ("Distance : {:4d} mm".format(HCSR.distance_mm) )
elif HCSR.distance_mm < 2000 and HCSR.distance_mm > 1601:
NEOPIX.bargraphe(7)
print ("Distance : {:4d} mm".format(HCSR.distance_mm) )
elif HCSR.distance_mm < 4000 and HCSR.distance_mm > 2001:
NEOPIX.bargraphe(8)
print ("Distance : {:4d} mm".format(HCSR.distance_mm) )
else :
NEOPIX.bargraphe(1)
print ("Distance ++ : {:4d} mm".format(HCSR.distance_mm) )
print ("Distance ++ : {:4d} mm".format(HCSR.distance_mm) )
sleep_ms(10)
HCSR = False

Projet :

programmation objet
buton = pause
liste de tableau
créer un nv tableau quand dstce > -1


"""
Test - Mesure de distance
"""
from SOPROLAB_V2 import *
try :
    from SOPROLAB_UltraSonV1 import *
    print("Fonctionnement capteur de distance ....")
    HCSR_connected = True
except :
    print("Il semblerait que le capteur de distance ne soit pas branché ! ")
    HCSR_connected = False
Liste = []

while HCSR_connected == True :
# Pour tester le module de test uniquement
  for cptr in range ( 100 ) :
    if HCSR.distance_mm < 100 :
      NEOPIX.bargraphe(1)
      print ("Distance : {:4d} mm".format(HCSR.distance_mm) )
      Liste.append(HCSR.distance_mm)
    elif HCSR.distance_mm < 200 and HCSR.distance_mm > 101:
      NEOPIX.bargraphe(2)
      print ("Distance  : {:4d} mm".format(HCSR.distance_mm) )
      Liste.append(HCSR.distance_mm)
    elif HCSR.distance_mm < 400  and HCSR.distance_mm > 201:
      NEOPIX.bargraphe(3)
      print ("Distance  : {:4d} mm".format(HCSR.distance_mm) )
      Liste.append(HCSR.distance_mm)
    elif HCSR.distance_mm < 800  and HCSR.distance_mm > 401:
      NEOPIX.bargraphe(4)
      Liste.append(HCSR.distance_mm)
    elif HCSR.distance_mm < 1200  and HCSR.distance_mm > 801:
      NEOPIX.bargraphe(5)
      Liste.append(HCSR.distance_mm)
    elif HCSR.distance_mm < 1600  and HCSR.distance_mm > 1201:
      NEOPIX.bargraphe(6)
      Liste.append(HCSR.distance_mm)
    elif HCSR.distance_mm < 2000  and HCSR.distance_mm > 1601:
      NEOPIX.bargraphe(7)
      Liste.append(HCSR.distance_mm)
    elif HCSR.distance_mm < 4000  and HCSR.distance_mm > 2001:
      NEOPIX.bargraphe(8)
      Liste.append(HCSR.distance_mm)
    elif BP.etat == True :
      print("return")
    else :
      NEOPIX.bargraphe(1)
    sleep_ms(10)
  print(Liste)
  HCSR = False
        

Conversion et compression d'une liste de données :


        Liste_inter = 0
        Liste_final = 0
    
        for i in range(len(Liste)):
            if Liste:
                i = 0
            else:
                break
            for j in range(len(Liste)):
                if Liste[j] <= Liste[i] + 5 or Liste[j] <= Liste[i] - 5:
                    if Liste[j] == Liste[-1]:
                        Liste_inter = Liste_inter + [Liste[-1]]
                        del Liste[i:j+1]
                    else:
                        Liste_inter=Liste_inter + [Liste[j]]
                else:
                    nbr_multiple = len(Liste_inter)
                    for n in range(len(Liste_inter)):
                        if Liste_inter == False:
                            break
                        else:
                            Liste_inter.pop()
                    Liste_final = Liste_final + ["{nbr_multiple}x{Liste[i]}"]
                    del Liste[i:j]
                    break
        
        print(Liste_final)