Codage et numération

publicité
ECOLE SUPERIEURE DES SCIENCES INFORMATIQUES
JEAN-PAUL STROMBONI
ELECTRONIQUE NUMERIQUE
16/04/2017
Page 1
TD 2 : Codage, conversion et traitement
Objectif : faire le lien entre électronique numérique et informatique, puisque les calculs
dans les ordinateurs sont en définitive effectués par des composants et des fonctions
électroniques qui utilisent les propriétés arithmétiques et logiques des nombres binaires.
1. Traitement des signaux en binaire
On veut traiter des échantillons numériques de sons multimédia, codés sur 8bit en
complément à 2 selon le principe suivant. Soit N un tel code, variant donc entre  128 et 127 ,
la valeur de l’échantillon est en fait N / 128 .
1. donner les bornes positive et négative des échantillons
2. quels sont les codes prévisibles pour 0.5 ,  0.2 , 0.25 et  0.6 ?
3. on note e(n) l’échantillon n mesuré, et s(n)  0.75e(n) l’échantillon après traitement,
proposer une manière de calculer s(n) en binaire basée sur la multiplication des deux
membres de l’équation précédente par 256 . On vérifiera dans le cas où e(n)  0.4
constant.
4. si on « dérive » maintenant le signal e(n) en faisant s(n)  e(n)  e(n  1) , quel est le
résultat si e(n  0)  0.5 puis si e(n  0)  (1) n  0.5 ?
5. Enfin, expliquer en détail comment mettre en oeuvre le filtre passe bas suivant
s (n)  0.25s (n  1)  0.75e(n) on dispose d’un multiplicateur d’entiers sur 16 bits.
2. Calcul binaire à précision donnée
on dispose d’un additionneur binaire sur 16 bits pour réaliser la soustraction   2 avec une
incertitude maximale de 0.001 . Indiquer comment on place le point décimal, et le procédé de
la soustraction. Vérifier le résultat obtenu, on prend   3.142 et 2  1.414 , on précise que
int( 3.142 * 212 )  12870  $3246 et int( 1.414 * 212 )  5792  $16 A0
3. Fonctions de conversion analogique numérique et réciproque
Le CAN d’une carte son numérise sur B bit un signal sonore s tension électrique entre  1V et
1V issue d’un microphone, en procédant comme suit : l’intervalle de variation de s est
découpé en 2 B intervalles égaux adjacents et le convertisseur leur attribue un code de 0 autour
de s  1jusqu’à 2 B  1 pour le dernier intervalle autour de s  1V .
1. prenons B  3 pour simplifier, préciser le nombre d’intervalles de quantification et
leur largeur (ou pas de quantification)
2. tracer la caractéristique du convertisseur, en abscisse s et en ordonnée le code associé
3. comment passer au code en complément à deux pour les valeurs négatives
4. le convertisseur dans l’autre sens ou CNA, associe à chaque code binaire i la valeur
de s au centre de l’intervalle de quantification i . Dresser la caractéristique d’entrée
sortie de la chaîne CAN – CNA. Où apparaît l’erreur de quantification ? Quelle est
l’erreur maximale possible ?
5. Donner l’expression d’un signal sinusoïdal d’amplitude unité et de fréquence 1kHz ,
on représentera ce signal sur une période, et on l’échantillonnera à 8kHz sur B  3bit .
Faire apparaître l’erreur de quantification, comment faudrait il choisir B si on impose
à cette erreur de rester inférieur au bruit électronique qui est de l’ordre de 1mV ?
-1-
ECOLE SUPERIEURE DES SCIENCES INFORMATIQUES
JEAN-PAUL STROMBONI
ELECTRONIQUE NUMERIQUE
16/04/2017
Page 2
4. Coder en ASCII pour transmettre
Coder le jour et la date « Jeudi 27 » en ASCII sur 8 bits d’abord sans parité , puis avec une
parité paire, et enfin en rajoutant un octet final dit Checksum ou CRC (Cyclic Redondancy
Check) calculé en faisant la somme des codes ASCII modulo 256. Pourquoi faire ceci ?
5. Soustraction par addition du complément à deux
Pourquoi en définitive peut on calculer a  b ( a et b , quantités binaires exprimées sur n bit)
en utilisant une addition ?
6. Complexité
Soit un affichage de D digits en base B qui permet de représenter des nombres entiers variant
de 0 à M . Si on définit la complexité de cet affichage comme D  B , montrer que cet
indicateur passe par un minimum à M constant pour une valeur à déterminer. Interprétation ?
7. Multiplier par additions et décalages
On multiplie deux nombres binaires A  a K a K 1 a1a0 et B  bL b0 pour obtenir un
résultat R  rZ  r0 , par exemple on fera le produit de A  $7F par B  $5 pour illustrer. On
demande :
1. combien de bits sont nécessaires pour contenir le résultat
2. et de préciser un algorithme calculant A  B à partir de décalages (arithmétiques) et
d’additions
8. Compresser
L’application de la loi mu   law à un échantillon sonore numériser permet de compresser la
taille nécessaire dans un rapport 2 / 3 , c’est à dire que l’on admet généralement que l’on peut
passer ainsi de 12bit à 8bit en utilisant le fait que les « petites » valeurs de signal sont plus
fréquentes que les « grandes ».
1. analyser la fonction ulaw2linear en langage C, pour déterminer la composition d’un
octet de ce code
2. indiquer la valeur d’échantillon associée à $B7 et à $71
-2-
Téléchargement