TP 02 : ETUDE DE LA NUMERISATION D’UN SIGNAL
1- Introduction
La conversion analogique- numérique d’un signal comporte plusieurs étapes :
Le filtrage passe-bas (filtre antirepliement) permet d’éliminer toutes
les fréquences supérieures n’obéissant pas à la règle de Shannon.
Ce filtrage est nécessairement analogique.
L’échantillonnage-blocage permet de transformer le signal
analogique continu en un ensemble de valeurs discrètes prélevées
à des instants réguliers Te.
La quantification permet de remplacer un nombre infini de valeurs
que peut prendre le signal par une suite finie de valeurs.
L’ensemble échantillonneur-bloqueur et quantificateur constitue un
CAN (convertisseur analogique-numérique).
Filtre Echantillonneur
x(t) antirepliement bloqueur Quantificateur
module 1 module 2 module 3
CAN Traitement
numérique
module 5 module 4
Filtre de
y(t) lissage CNA
Le traitement peut être un filtre numérique ou toute autre opération
qui ne peut se réaliser qu’en numérique.
Le convertisseur numérique-analogique redonne à chaque
séquence numérique une correspondance tension.
Le filtre de lissage permet, par élimination des fréquences
supérieures du spectre du signal, d’obtenir en temporel un signal
lissé (simili continu).
1
2- Echantillonnage [echant1]
a- Rappel théorique
- QU'EST-CE QUE L'ECHANTILLONNAGE ?
Les signaux primaires porteurs de l'information sont pratiquement toujours de type
analogique (valeurs de tension et temps continus). Parmi les supports de tels
signaux, on peut citer la cassette vidéo, la cassette audio ou encore le disque en
vinyle.
Si l'on veut traiter un signal par voie numérique (cas du DVD vidéo, du CD audio, et
bien sûr de l'ordinateur), il faut le représenter au préalable par une suite de valeurs
ponctuelles prélevées régulièrement au cours du temps (voir figure ci-dessous). Un
tel prélèvement est appelé échantillonnage. Notons que le signal échantillonné est
d'autant plus proche du signal initial que le pas d'échantillonnage est petit.
signal signal
analogique échantillonné
pas d'échantillonnage
0 0
t t
temps continu temps discret
Il existe plusieurs méthodes d'échantillonnage. Nous présentons ici les deux types
d'échantillonnage utilisés au cours de la manipulation.
Echantillonnage idéal
Ce type d'échantillonnage, comme son nom l'indique n'est pas
réalisable, mais il permet de comprendre plus facilement ce type de
traitement du signal.
y(t)
x (t)
x (t) 1
x
t -Te 0 Te 2Te3Te t
ШTe (t).
1
-Te 0 Te 2Te3Te t
2
y(t) = xe(t) = x(t). ШTe (t) = x(kTe ) . ( t kTe )
k
Le signal temporel est prélevé, ponctuellement, tous les instants Te appelé
période d'échantillonnage.
Le spectre de ce signal que l'on considère comme borné est modifié après
cette transformation comme dessiné ci-dessous :
spectre
borné
spectre
périodisé
1 n
Y(f) = Xe(f) = X(f) [(1/Te). Ш
1/Te (f)] =
Te n
X( f
Te
)
avec Fe = 1/Te
Le spectre du signal échantillonné est donc périodisé tous les Fe = 1/Te.
On peut penser, intuitivement, qu'il va exister une relation limite entre la
fréquence maximale du signal FM et celle Fe de l'échantillonnage.
On utilise alors la règle de Shannon qui dit que:
Fe > 2 Fmax du signal ou Fmax du signal < Fe/2
On évite alors le chevauchement des spectres appelé repliement ou
recouvrement qui entraîne une modification de l'information de départ comme
représenté ci-dessous.
Recouvrement
des spectres
3
Pour un signal sinusoïdal, l'échantillonnage idéal donne le spectre
suivant :
X(f)
x(t)
TF A/2
A
-f0 f0= 1/T0 f
t
-A
T0
x
Ш
TF
* Ш
1 1/Te
Te t -Fe Fe f
= xe(t)= x(t).ШTe(t) = Xe(f)= X(f)*Ш1/Te(f)
A TF A/2Te
t
-Fe -f0 f0 Fe f
-A Fe- f0
T0 -Fe+ f0 Fe+ f0
Le spectre élémentaire d'un cosinus, deux raies, de part et d'autre du 0, à la
fréquence f0 est périodisé tous les Fe lors de l'échantillonnage. Toutes les
raies ont, alors dans ce cas, la même amplitude.
Echantillonnage naturel
Sur un signal x(t), on prélève à intervalle de temps régulier T e des échantillons
de durée ( < Te), comme le montre la figure ci-dessous :
xe(t)
3Te 4Te 5Te
t
0 Te 2Te
Le signal résultant xe(t) s'écrit :
x (t) x(t) rect t nT
e 2 e
n
Obtenu par transformation de Fourier de xe(t), le spectre Xe(f) est donné par :
n
j
n
sin c n . X f
Te
X (f ) .e
e T T T
e n e e
4
Si le signal x(t) est sinusoïdal de fréquence F, alors :
Xe(f) sinc n f F n f F n
2Te n Te Te Te
D'où la représentation graphique suivante :
Echantillonnage bloqué
Dans ce cas, le signal x(t) est maintenu constant à chaque instant T e pendant
une durée ( < Te) :
xe(t)
3Te 4Te 5Te
t
0 Te 2Te
D'où l'expression de xe(t) :
xe(t) x(t). (t nTe) * rect t
n 2
Et par conséquent après transformation de Fourier :
n
X (f ) X f . sin c(f ) . e jf
e
n
e
T T
e
Enfin, si le signal x(t) est sinusoïdal de fréquence F, on peut écrire :
5
n n
X e (f ) sin c f . f ( F) sin c f . f ( F)
2Te n Te Te
On peut alors représenter Xe(f) de la manière suivante :
b- Simulation de l’échantillonnage
l’échantillonnage est représenté par le module 2 dans le diagramme global donné en
introduction.
L’échantillonnage-blocage peut être modélisé par le schéma ci-dessous.
x(t) signal continu
Pas en amplitude
y(t) signal
échantillonné
bloqué
variable
t
Te 2Te
Pas en temporel constant
Echantillonnage 6
Pour réaliser la simulation de l’échantillonnage-blocage d’un signal avec
Simulink, on ouvre une feuille Simulink que l'on nommera echant1.
On utilise le module Sample and Hold .
On accède à ce module par le chemin suivant :
Simulink Library Browser
Signal Processing Blockset
Signal Operations
Sample and Hold
Ce module est configuré comme suit :
Trigger type : Rising edge,
Initial condition: 1
Le module d’échantillonnage est excité par un signal sinusoïdal délivré par le
module Sine Wave .
On y accède par le chemin suivant :
Simulink Library Browser
Simulink
Sources
Sine Wave
Choisir comme fréquence de départ 1kHz (attention à l’unité, introduire:2*pi*1000)
Choisir une phase de : pi/2 (afin d’avoir un cosinus).
‘’Sample time’’ devrait être égal à 0 car on est censé travailler en signal ‘continu’
mais pour avoir de meilleurs résultats par la suite et pour que le signal ait quand
même l’apparence d’un signal continu, choisir un échantillonnage de
1/4000000.
L’horloge interne du module rythmant l’échantillonnage est réalisée par le module
Pulse Generator (même chemin que Sine Wave).
La période est fixée à 0.1 ms soit 1/10000 s.
Pour visualiser le signal d’entrée ainsi que le signal échantillonné, importer un
multiplexeur MUX ainsi qu’un oscilloscope Scope.
Pour le Multiplexeur, le chemin est le suivant :
Simulink Library Browser
Simulink
Signal Routing
Mux
Pour l’oscilloscope, on suit :
Simulink Library Browser
Simulink
Sinks
Scope
Relier les différents blocs entre eux.
7
Dans Simulation – Parameters, fixer le temps de simulation à 1 ms.
Lancer la simulation.
Enregistrer ce fichier echant1.
Compte tenu des paramètres du générateur de signal et de l’horloge (T 0 , période
du signal ; Te, période d’échantillonnage) , combien d’échantillons observez-vous
sur une période du signal ?
Pour avoir une visualisation plein écran du résultat, utiliser le bouton ‘jumelles’.
Modifier T0 , par f0 = 2 , 5, 9, 12, 18 kHz .
A quoi correspond la fréquence f0 = 5 kHz pour votre système? Combien avez-
vous d’échantillons par période dans ce cas ?
Que constatez-vous pour les quatre autres valeurs de fo ? Justifier ce que vous
observez.
3- Quantification [quant22, quant23]
La quantification correspond au module 3 du schéma global.
Cette opération consiste à diviser en intervalles d’égale amplitude la plage de
tension que l’on veut coder.
La précision ou pas de quantification q est donnée par :
q = V / 2m avec V = plage de conversion et m = nombre de bits (ou
digits) du codage
Les schémas ci-dessous donnent un exemple de quantification à 8 niveaux permise
par un codage à 3 digits: quantification sans demi niveau et quantification avec demi
niveau.
x(t) continu
Pas en amplitude
110 6
101 5 z(t) signal
quantifié
100 4
constant
011 3
010 2
001 1
000 0
t
codage
niveau
niveau
N°
Pas en temporel variable
Quantification sans demi niveau (sans demi pas)
8
x(t) continu
Pas en amplitude
110 6
101 5 z(t) signal
quantifié
constant 100 4
011 3
010 2
001 1
000 0
t
codage
niveau
niveau
N°
Pas en temporel variable
Quantification avec demi niveau (demi pas)
Ci-dessous sont représentées les deux lois de quantification correspondantes ainsi
que l’erreur qu’elles engendrent.
Erreur = f(V)
Dans le cas d’une quantification avec demi niveau, voici ci-dessous l’erreur obtenue
en fonction du temps pour un signal sinusoïdal:
Erreur = f(t)
9
a- module de quantification [quant22]
Pour réaliser le système de quantification, il suffit de conserver le système
précédent dans lequel on supprime les modules Pulse Generator et Sample and
Hold. Ce dernier est remplacé par le module Quantizer.
Le chemin pour l’obtenir est le suivant :
Simulink Library Browser
Signal Processing Blockset
Quantizers
Uniform Encoder
Ce module va réaliser la quantification d’un signal en donnant une sortie en
niveaux, ce qui est le plus courant lors de la Conversion Analogique-Numérique.
Le module quantificateur Uniform Encoder est configuré ainsi :
Peak : 1
Bits 2
signed integer
Supprimer le multiplexeur.
Créer une nouvelle voie pour l’oscilloscope afin d'observer le signal quantifié car la
sortie en niveau du quantificateur n’est pas compatible avec celle en tension du Sine
Wave.
Pour ce faire, lorsque la fenêtre écran de l’oscilloscope est visible, au niveau de la
barre d’outil, cliquer sur le logo parameters, puis menu : General et enfin changer
number of axes.
Le temps de simulation choisi est de 1 ms.
Enregistrer ce fichier sous le nom quant22.
Observer le signal quantifié à l’oscilloscope. Comment est gradué l’axe des
ordonnées ? Vérifier précisément les amplitudes des différents niveaux et
préciser quel type de quantification effectue ce module.
Changer le nombre de bits du module quantificateur. Observer l’évolution de
l’amplitude du signal quantifié. Conclusion.
b- Module de décodage [quanterr23]
Conserver la simulation quant22 avec un codeur à 3 digits.
On introduit à la suite de ce système déjà réalisé, un module décodeur : Uniform
Decoder.
10
Le chemin pour l’obtenir est le suivant :
Simulink Library Browser
Signal ProcessiongBlockset
Quantizers
Uniform Decoder
Les paramètres du module décodeur sont les suivants :
Peak : 1
Bits 3
Overflow mode: Saturate
Output Type: Double
L’erreur de quantification va être obtenue par différence entre le signal de
sortie du système et le signal d’entrée.
Réaliser cette opération sachant que le module ‘’somme’’ (à modifier) se trouve
par le chemin :
Simulink Library Browser
Math Operations
Sum
Créer un multiplexeur à trois entrées afin de visualiser sur l’oscilloscope le signal
d’entrée, le signal quantifié et l’erreur de quantification.
Commenter l’observation de l’erreur de quantification. Donner l’amplitude de
l’erreur ainsi que sa valeur maximum et sa valeur minimum. Conclusion.
4- Conversion Analogique - Numérique [can4]
Afin de simuler une conversion analogique-numérique (CAN), on réalise
l’association des modules 2 et 3 du schéma global.
Assembler les éléments pour réaliser une conversion analogique-numérique
(CAN).
Garder les mêmes caractéristiques que précédemment pour les différents
modules. Le module convertisseur Uniform Encoder est configuré ainsi :
Peak : 1
Bits 4
signed integer
Le temps de simulation est choisi de 1 ms.
Enregistrer ce fichier sous le nom can4.
Observer le signal converti à l’oscilloscope. Comment est gradué l’axe des
ordonnées ? Vérifier précisément ses amplitudes
Changer le nombre de bits du module codeur. Observer l’évolution du signal de
sortie et de son amplitude. Conclusion.
Faire aussi varier la fréquence d’échantillonnage. Commentaires
11
5- Conversion CAN-CNA [ can-cna51]
La conversion analogique-numérique / numérique-analogique (CAN-CNA)
correspond à la mise en cascade des modules 2, 3 et 4 du schéma global présenté
en début de ce fascicule.
Pour réaliser la conversion analogique-numérique / numérique-analogique d’un
signal, on conserve le fichier précédent can4.
On introduit à la suite de ce système de conversion, déjà réalisé, le module
décodeur Uniform Decoder utilisé auparavant.
L’échantillonnage du Pulse Generator est fixé à 1/20000 s. Le nombre de bits du
module codeur est de 4.
Le temps de simulation est de 1 ms.
Visualiser ensemble, le signal d’entrée, le signal à la sortie de l’échantillonneur et
le signal à la sortie du décodeur.
Enregistrer cette simulation sous le nom can-cna51.
Comparer le signal seulement échantillonné avec le signal ayant subi la
conversion CAN-CNA. Commentaires.
Augmenter à 2 V l’amplitude du signal du signal d’entrée. Que constatez-vous ?
Faire varier le nombre de bits du codeur et du décodeur (de 4 à 32, par puissance
de 2)
Observer l’évolution de la précision sur le signal décodé.
Faire varier la fréquence d’échantillonnage (la diminuer jusqu’au cas critique). On
prendra soin de fixer le temps de simulation à 2 ms et d’observer une sinusoïde.
Reprendre les paramètres du début. Observez la différence entre cette simulation
et celle où vous n’aviez que la quantification.
6- Erreur de conversion [errconv6]
Pour l’estimation de l’erreur apportée par une conversion, le montage précédent est
modifié de la manière suivante :
L’erreur de conversion va être obtenue par soustraction entre le signal de sortie
du système et le signal d’entrée.
Réaliser cette opération de la même manière que pour la simulation erreur de
quantification (paragraphe 3-b- fichier quant23).
Le générateur d’entrée va dans un premier temps être une rampe d’amplitude
1 V de durée 2 ms.
Choisir une période de 1/10000 s pour l’horloge d’échantillonnage et un codage
sur 8 bits pour les deux modules.
12
Visualiser l’erreur à la sortie du soustracteur à l’aide d’un oscilloscope ainsi que
cette même erreur, le signal d’entrée et le signal de sortie sur un autre
oscilloscope.
On peut aussi contrôler les sorties échantillonnage et codeur avec pour chacune un
oscilloscope.
Lancer la simulation sur 1 ms.
Enregistrer ce fichier sous le nom errconv6.
Observer les différents oscilloscopes. Est-ce correct ?
Dans le cas de cette simulation, calculer l’erreur de quantification du CAN-CNA.
Comparer cette valeur à celle lue à l’oscilloscope. Commentaires
Changer le nombre de digits (16). Vérifier l’évolution de l’erreur. Justifier.
Introduire un signal sinusoïdal à l’entrée du système (1 kHz, 1 V).
Fixer l’horloge d’échantillonnage à 1/20000 s, le nombre de bits à 8.
Observer la conversion et l’erreur de conversion pour ce signal. La comparer à
celle observée lorsqu’il n’y avait que la quantification [quant23].
Changer l’horloge d’échantillonnage (1/40000 s) puis le nombre de bits.
Commentaires .
7- Filtre antirepliement, filtre de lissage [far71, farconv72,
convliss73, farconliss74]
La dernière étape dans la numérisation des signaux est, l’introduction des filtres
antirepliement et de lissage qui correspondent aux modules 1 et 5 du schéma
global.
Le filtre antirepliement (module 1), placé à l’entrée du système de conversion,
permet de rejeter tout signal ne respectant pas la condition de Shannon. C’est un
filtre analogique d’ordre élevé de fréquence de coupure inférieure à Fe/2 (Fe
fréquence d’échantillonnage du système).
Le filtre de lissage (module 5) placé à la sortie du système de conversion
reconstruit un signal analogique à partir du signal échantillonné bloqué de sortie.
C’est aussi un filtre analogique d’ordre élevé et de fréquence de coupure du même
ordre que celle du filtre antirepliement.
a- étude du filtre antirepliement [far71]
Le logiciel permet de synthétiser différents types de filtres, de tous ordres.
Pour notre problème, un filtre de Butterworth d’ordre 6, de fréquence de coupure
4 kHz lorsque la fréquence d’échantillonnage est de 10 kHz sera largement suffisant.
Ouvrir une fenêtre Simulink. Y déposer un générateur Sine Wave, un
oscilloscope et un multiplexeur.
13
Le filtre se trouve en parcourant le chemin suivant :
Simulink Library Browser
Signal Processing Blockset
Filtering
Filter Designs
Analog Filter design
Les paramètres à lui fixer sont :
Design method : Butterworth
Filter type : lowpass
Filter order : 6
Passband edge frequency : 2*pi*4000
Assembler les éléments pour étudier le filtre.
Le temps de simulation sera de 2 ms.
Enregistrer cette simulation sous le nom far71.
Visualiser le signal d’entrée et le signal de sortie pour différentes valeurs de
fréquence.
Que constatez-vous ?
Mesurer la pente du filtre pour vérifier son ordre.
b- effets du filtre antirepliement [farconv72]
Ce filtre est maintenant introduit à l’entrée du système CAN-CNA. Nous allons
étudier l’effet de ce filtre.
Recharger la simulation (horloge à 1/10000s, codeur à 4 bits) errconv6.
Supprimer les modules inutiles.
Faire les connexions pour avoir une CAN-CNA avec sorties sur oscilloscope
(entrée et sortie conversion visualisées ensemble).
Dupliquer ce système dans son ensemble et placer le nouveau système sous le
précédent.
Introduire, entre le générateur et l’entrée conversion de ce nouveau système, le
filtre antirepliement étudié auparavant.
Ne conserver q’un seul générateur Sine Wave pour les deux circuits.
Le temps de simulation sera de 1 ms.
Enregistrer cette simulation sous le nom farconv72.
Faire varier la fréquence du signal d ‘entrée : 1 kHz, 4 kHz, 8 kHz, 18 kHz. En
comparant l’affichage des deux oscilloscopes, que constatez-vous ?
Changer la fréquence d’échantillonnage. Que faut-il penser à faire ?
14
c- effets du filtre de lissage [convliss73]
Le filtre de lissage permettant de reconstruire le signal échantillonné est placé à la
sortie des modules de conversion.
Il a les mêmes caractéristiques que le filtre antirepliement.
Dans un premier temps, on étudie son effet sur le signal de sortie et on compare les
sorties avec et sans filtre de lissage.
On utilise le fichier précédent farconv72.
Il suffit de déconnecter le filtre antirepliement du deuxième système et de le
transposer sur la sortie entre le décodeur et le multiplexeur, il est alors un filktre
de lissage.
Visualiser le signal d’entrée ainsi que le signal avant (échantillonné) et après
(lissé) le filtre.
Le temps de simulation sera de 2ms.
Enregistrer cette simulation sous le nom convliss73.
Faire varier la fréquence du signal d ‘entrée : 1 kHz, 2 kHz, 8 kHz, 18 kHz. En
comparant l’affichage des deux oscilloscopes, que constatez-vous ?
Changer la fréquence d’échantillonnage. Que faut-il penser à faire ?
d- Système de conversion complet [farconvliss74]
Le système global présenté au début de ce texte peut être maintenant réalisé.
Il suffit de placer deux filtres analogiques, un à l’entrée, l’autre à la sortie du système
(voir système ci-dessous).
Reprendre le fichier précédent (convliss73). Dupliquer le filtre et le placer à
l’entrée du système afin d’avoir un filtre antirepliement (FAR) et un filtre de
lissage.
Le multiplexeur sera à 4 entrées pour le signal d’entrée, le signal à la sortie du
FAR, le signal à la sortie du CNA et le signal à la sortie du filtre de lissage.
Le temps de simulation sera de 2 ms.
Enregistrer cette simulation sous le nom farconvliss74.
Faire varier la fréquence du signal d ‘entrée : 1 kHz, 4 kHz, 5 kHz, 8 kHz, 18 kHz.
En comparant l’affichage des deux oscilloscopes, que constatez-vous ?
Conclusion.
15
16