iut annecy mph-mc/2009-2010 programmation de systèmes embarqués 1 dernière mise à jour...
Post on 03-Apr-2015
105 Views
Preview:
TRANSCRIPT
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 1
Dernière mise à jour :24/10/2008
Intervenants Myriam Chesneau Jean-Noël Martin
Responsable du document : Myriam Chesneau
Auteurs du document :
Myriam Chesneau / Thierry Suaton
TP : 18 h
Cours - TD : 12 h
Répartition horaire :
Programmation des systèmes embarqués
2009/2010
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 2
Programmation des systèmes embarqués Programmation des systèmes embarqués
Les bases
CH 1 . Introduction au microcontrôleur :
Présentation d’un microcontrôleur élémentaire et application dans le cadre de l’instrumentation
CH 2 . Bases de filtrage analogique
Rappels sur les représentations temps-fréquence, présentation des filtres et gabarits, exemple de réalisation d’un filtre analogique
CH 3. Introduction au filtrage numérique
Outils mathématiques utilisés pour le filtrage numérique, présentation et principe de réalisation des filtres RII et RIF
Ouverture
en fin de module ISA (instrumentation spécifique : audionumérique) ouverture sur les DSp et FPGA, qui permettent de faire du filtrage temps réel et embarqué.
En TP 4 : implémentation d’un filtre sur DSP
IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués3
Ch 1 : Introduction au microcontrôleurCh 1 : Introduction au microcontrôleur
Un microcontrôleur comprend
- Une unité de traitement de l’information de type microprocesseur
- Des périphériques internes
Il permet la réalisation d’applications autonomes sans ajout de composants externes
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 4
1.1 Schéma de principe
Mémoire FLASH pour
stocker le programme
(permanente)
Mémoire RAM de travail
(volatile)
Mémoire EEPROM
pour stocker les données
(permanente)
Unité
-décodage instructions
-traitement
-calculs
Timer
Compteur
Ports
I/O
Horloge
Circuits de mise en route
et de veille
alimentations1.1. Présentation du circuitPrésentation du circuit
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 5
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 6
1.2 Les mémoires
La mémoire flash : (16F84)
contient le programme compilé
possède 1024 emplacements de 14 bits (taille d’une instruction)
conserve les données hors tension
La RAM
permet le stockage des données temporaires nécessaires à l’exécution du programme
possède 68 octets + 15 registres spécialisés de 8 bits
son contenu est perdu en cas de coupure
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 7
L’EEPROM
contient des données produites par le programme
conserve les données hors tension
1.3 Unité « centrale »
Elle récupère les instructions du programme, les décode et les exécute.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 8
1.4 L’horloge
Elle reçoit un signal périodique issu d’un oscillateur, et fabrique la référence « temps » du système.
Une instruction élémentaire est en général exécutée en 1 cycle, soit 4 périodes du signal de l’oscillateur.
Avec un oscillateur à 4 MHz, un µc PIC16F84-04 peut effectuer un million (4 M / 4) instructions simples.
Horlogeoscillateur externe : fosc
fo = fosc/4
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 9
1.5 Les circuits de mise en route et de veille
Ils permettent
de réaliser une bonne mise sous tension du système,
de le mettre en veille en cas de non utilisation,
de sortir convenablement du mode veille.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 10
2. Les périphériques2. Les périphériques
2.1 Ports d’entrées – sorties :
Le port A fournit 5 entrées - sorties : RA0 – RA4
RA0 – RA3 :
En entrée : comprennent les niveaux TTL En sortie : délivrent des niveaux TTL : 0 ou 5 V
RA4
En entrée : trigger de Schmitt pour convertir en TTL (cf TD EON)En sortie : drain ouvertPeut être connectée à l’entrée du timer pour du
comptage
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 11
Le port B fournit 8 entrées – sorties
RB0 – RB7 délivrent et reçoivent des niveaux TTL
En entrée : peuvent être connectées au 5 V par programme
de plus
RB0 peut être utilisée pour une interruption externe, elle fonctionne alors en trigger de Schmitt
RB6 et RB7 sont utilisées pour charger le programme en mémoire (attention, ne pas les utiliser pour une autre tâche au moment du chargement)
Si RB4 à RB7 sont en entrée, on peut décider par programme de générer une interruption si la valeur d’une de ces entrées a changé.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 12
2.2 Le compteur – timer
Le compteur-timer possède 8 bits.
Il compte les fronts montants ou descendants présents sur son entrée ( 0,1,…. 255=FF)h)
Le timer-compteur est associé à un registre TMR0 (Timer 0)
En fin de compte : passage de 255 à 0, un bit d’un registre spécifique est mis à 1 : c’est le bit de débordement (overflow).
Clk Out
Compteur
Entrée Sortie non accessible
TMR0
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 13
Un diviseur de fréquence (Prescaler) permet de diviser la fréquence du signal à appliquer en entrée du compteur
La fréquence peut être divisée par 2, 4, 8, 16, 32, 64, 128 ou 256.
Clk Out
Compteur
EntréeDiviseur
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 14
Comme le compteur-timer d’une carte d’acquisition, le compteur
peut être utilisé :
En compteur
Le signal d’entrée du compteur est externe, il est connecté sur la ligne 4 du port A
Le compte s’incrémente sur chaque front de l’horloge
Il est accessible dans le registre TMR0
Clk Out
Compteur
EntréeDiviseur ou pas
Source ExterneRA4 = T0CKl
TMR0
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 15
En timer
Le signal d’entrée du compteur est celui de l’horloge(fo = fosc/4 = 1 MHz)
Le compte s’incrémente sur chaque front de l’horloge
On peut positionner le compte de départ à une valeur choisie dans le registre TMR0.
On utilise le bit de débordement pour mesurer le temps écoulé entre le départ et « l’arrivée à 0 ».
Horlogefosc
foClk Out
Compteur
Diviseur ou pas
TMR0
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 16
3. Les registres du PIC3. Les registres du PIC
Les registres spécialisés du PIC permettent
de définir le fonctionnement du PIC
de s’informer sur l’état du PIC
de configurer les périphériques
de communiquer (lecture / écriture) avec les périphériques
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 17
3.1 Le registre des interruptions
INTCON
permet le contrôle des interruptions et leur localisation et
indique la fin de compte du timer
GIE EEIE TOIE INTE RBIE TOIF INTF RBIF
Int non masquées autorisées
Int EEPROM autorisée
Int dépast timer autorisée
Int externe (RB0/INT) autorisée
Int Changt RB4-7 autorisée
Dépast timer
Int externe
Changt RB4-7
1 : oui
0 : non
1 : oui
0 : non
1 : oui
0 : non
1 : oui
0 : non
1 : oui
0 : non
1 : oui
0 : non
1 : oui
0 : non
1 : oui
0 : non
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 18
3.2 Les registres des ports
TRISA : indique la direction des lignes du port A
1 : entrée, 0 : sortie
PORTA : lecture – écriture du contenu du port A
TRISB : indique la direction des lignes du port B
1 : entrée, 0 : sortie
PORTB : lecture – écriture du contenu du port B
X X X Dir RA4
Dir RA3
Dir RA2
Dir RA1
Dir RA0
Dir RB7
Dir RB6
Dir RB5
Dir RB4
Dir RB3
Dir RB2
Dir RB1
Dir RB0
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 19
3.3 Les registres du timer
TMR0 permet d’écrire et de lire le compte du timer/compteur
INTCON permet de connaître l’état du bit de débordement
( dépassement timer = TOIF = timer output interrupt flag)
OPTION permet de définir, entre autres, les paramètres du
timer/compteur
source de l’entrée du compteur
utilisation du diviseur
valeur du diviseur
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 20
OPTION
A la mise sous tension, tous les bits sont positionnés à 1.
NOT RBU INTEDG TOCS TOSE PSA PS2 PS1 PS0
RBi à Vcc Interruption externe
Source d’horloge
Front source externe
Diviseur d’horloge
Sélection du diviseur d’horloge
1 : non
0 : oui
1 : front +
0 : front -
1 : externe(*)
0 : fosc/4
1 : front –
0 : front +
1 : watchdog
0 : timer
Timer :
000 : 2
001 : 4
…
111 : 256
Watchdog :
000 : 1
001 : 2
…
111 : 128RB0 / INT (*)
RB4/TOCKl
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 21
4. Programmation4. Programmation
4.1 Procédure et logiciels
Pour utiliser le PIC, il faut respecter les phases suivantes :
1. Écriture du programme dans un langage évolué
2. Traduction du programme en langage PIC (type assembleur : 35 instructions)
3. Transfert du fichier obtenu en mémoire flash du PIC
4. Mise en fonctionnement du PIC
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 22
Le positionnement d’une broche du PIC permet de choisir entre les
modes
Chargement du programme (PGN) pour la phase 3
Normal (RUN) pour la phase 4
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 23
Nous utiliserons
L’éditeur de texte ConText pour écrire le programme en langage C : fichier xxx.c, puis à partir de cette éditeur, nous appellerons :
Cc5x pour la création du fichier en langage PIC : xxx.exe, puis
NTPicprogVf pour le transfert de ce fichier de l’ordinateur vers la mémoire flash du PIC par liaison série
Tous ces logiciels sont libres
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 24
4.2 Adresse des registres
Chaque registre possède une adresse dans la RAM :
Exemple : PORTB est un registre 8 bits situé à l’adresse 06 de la RAM
Dans le logiciel utilisé, le nom d’un registre coïncide avec son
adresse
PORTB = 0b01011100permet d’écrire les 8 bits 01011100 à l’adresse 06 de la RAM
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 25
On peut utiliser les bases 2, 10 ou 16 :
PORTB = 0b01011100 ;
PORTB =92 ;
PORTB = 0x5C ;
Pour désigner le bit n°i du registre XXX, on utilise XXX.I
Exemple TRISA.0 désigne le bit 0 du registre TRISA.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 26
Grâce à l’ajout d’un fichier en tête spécial (16f84.h), un nom est
associé à chaque bit de certains ports :
RA0 = 1 ;
équivaut à
PORTA.0 = 1;
et permet de mettre à 1 le bit 0 du port A sans modifier les autres.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 27
On peut ajouter de telles définitions au sein du programme :
(en C)
# define TOIF INTCON.2
permet de nommer TOIF le bit n°2 du registre des interruptions
INTCON
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 28
4.3 Exemple de programmation des ports
Pour utiliser les lignes des ports A et B, il faut :
Définir la direction des lignes : entrée ou sortie
Écrire sur les lignes en sortie ou lire les lignes en entrée
On peut travailler sur un port en entier ou sur une ligne :
TRISA.0 = 0;TRISB.5 = 1;RA0 = RB5;
TRISB = 0b00000000;PORTB = 0b01010101;
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 29
4.4 Programmation du timer (voir exemples en TD)
Clk Out
CompteurDiviseur
Source ExterneRA4 = T0CKl
TMR0
Horlogefosc fo
OPTION.4TOSE : source
edge
OPTION.5TOCS : clock
source
OPTION.3PSA
OPTION.210PS2 PS1 PS0
prescaler
INTCON.2
TOIF
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 30
Remarques complémentaires
On travaille principalement avec des bits ou des octets.
On peut utiliser la représentation binaire avec le logiciel ConText
unsigned char octet;
octet = 0b11001110;
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 31
5. Interruptions5. Interruptions
5.1 généralités
programme utilisateurarrivée
interruption
traitement de l'interruption : lecture et sauvegarde
nécessité de mémoriser l'endroit, les variables….
1
2
3
4
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 32
1. demande d’interruption
2. sauvegarde du contexte
3. traitement de l'interruption en exécutant des lignes de programme : lecture et stockage des données
4. restitution du contexte et reprise de la tâche initiale
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 33
5.2 Sources d’interruption
Le PIC utilisé en possède 4, le programme en cours peut-être
interrompu si
un front (+ ou -) est présent sur RB0
une des lignes RB4 à RB7 change d’état (lignes placées en entrée)
le timer atteint la fin de son cycle (débordement)
une écriture dans l’EEPROM est terminée
Pour utiliser une interruption, il faut
autoriser les interruptions en général
autoriser une (ou +) interruptions en particulier
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 34
5.3 cas du PIC
Voir documentation en TP pour la programmation
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 35
En guise d’introduction au filtrage…En guise d’introduction au filtrage…
Extrait de l’article «Le filtrage numérique des signaux n’est pas qu’un filtre analogique numérisé… » paru dans la revue Mesures n° 749 Novembre 2002
Le filtrage est une étape essentielle dans une chaîne d’acquisition de données. Il permet d’isoler une fréquence particulière ou d’éliminer des fréquences parasites.
Couramment utilisés, les filtres analogiques manquent de précision et sont limités en types de gabarit disponibles.
Le filtrage numérique n’a pas ces limitations. Il utilise des algorithmes de calcul implémentés dans des DSP ou des FPGA.
Avantages : pas de dérive, filtres exotiques, filtres facilement modifiables…
IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués36
Ch 2. Bases de filtrage analogiqueCh 2. Bases de filtrage analogique
Un filtre analogique reçoit en entrée un signal en tension x(t) et délivre en sortie le signal filtré y(t).
Le filtre modifie le spectre du signal d’entrée.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 37
1.1.Ce que vous savez déjà …Ce que vous savez déjà …
1.1 Représentations temps/fréquence : rappels
Un signal peut être décrit dans le domaine du temps ou dans le
domaine des fréquences.
Dans le domaine temporel, on observe s(t) à l’oscilloscope
Dans le domaine fréquentiel, on observe S(f) à l’analyseur de spectre
S(f) est la transformée de Fourier de s(t)C’est une grandeur complexe : module + phase.
On appelle spectre (bilatéral) le module de S(f)
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 38
Exemple :
Informations données par le chronogramme :
Informations données par le spectre (donné ici pour f>0) :
0.00 0.02 0.04 0.06 0.08 0.10 0.12-1.5
-1.0
-0.5
0.0
0.5
1.0
1.5
t
x(t)
0 50 100 150 200 250 300 350 4000.00
0.05
0.10
0.15
0.20
0.25
0.30
0.35
0.40
t
x(t)
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 39
La FFT est une approximation de la transformée de Fourier d’un
signal s(t)
échantillonné à Féch
observé sur une durée Tobs ( Tobs = Néch / Féch)
Le module de la FFT de s(t) coïncide avec |S(f)|
si le signal est convenablement échantillonné et observé.
pour 0 < f < Féch/2.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 40
1.2 Filtres analogiques
En électricité et en électronique, on a déjà rencontré des filtres
analogiques :
Filtre passe-bas RC
Filtre résonnant RLC
Filtre actif AOP + R + C
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 41
Les filtres qui ne nécessitent pas d’alimentation sont appelés filtres
passifs :
RC
RLC
À quartz
À lignes imprimées
Les filtres alimentés sont appelés filtres actifs :
AOP + R + C
Transistors + R + C
À capacités commutées
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 42
On s’intéresse ici à la conception de filtres actifs à amplificateurs
opérationnels, résistances et condensateurs, à partir d’un cahier
des charges précis : le gabarit.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 43
2. Filtre et gabarit2. Filtre et gabarit
Un filtre permet de traiter différemment les différentes
composantes spectrales d’un signal.
FiltreH(f) = Y(f)/X(f)
x(t)X(f)
y(t) Y(f)
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 44
2.1 Filtre idéal - Filtre réel
Un filtre idéal
transmet les composantes situées dans sa bande passante
supprime les composantes situées en dehors de sa bande passante
Un tel filtre n’est pas réalisable.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 45
Un filtre réel ne supprime pas complètement les composantes hors
bande, mais les atténue, d’autant plus fortement que son ordre est
élevé.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 46
Un gabarit représente les bornes de gain admises dans diverses
bandes de fréquence.
Bande passante : gain nominal (0 dB souvent) + erreur maximum admise (a)
Bande atténuée : gain maximum admissible : b
Bande passante fp et bande atténuée fa.
(sélectivité k = fp/fa)
Rq : rien n’est précisé sur un tel gabarit en termes de phase.
Exemple du filtre passe-bas de fréquence de coupure fp à « a » dB.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 47
2.2 Les 4 grandes familles de filtres
Passe bas
|H(f)| 20 log (|H(f)| échelle log en f
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 48
Passe haut
|H(f)| 20 log (|H(f)| échelle log en f
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 49
Passe bande
Coupe bande
Rq : se familiariser avec ces deux représentations, utilisées fréquemment et
« mélangées ».
|H(f)| 20 log (|H(f)| échelle log en f
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 50
3. Réalisation pratique : cas du passe-bas3. Réalisation pratique : cas du passe-bas
3.1 Transformation du cahier des charges en gabarit
fp fa0 dB
a dB
b dB
f
20 log T
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 51
3.2 Normalisation
La normalisation permet d’obtenir des résultats utilisables pour
tous les filtres des 4 familles citées ci-dessus.
on pose
alors
pp ff
xsfjf
s
11
p
a
ff
x1 x1
0 dB
a dB
b dB
x
20 log T
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 52
3.3 Choix d’une fonction |T(x)|
|T(x)| doit passer dans la canal défini par le gabarit.
Exemple :
Fonction de transfert de Butterworth pour a = -3 dB :
, n ordre du filtre
Pour x = 1 ( f = fp) TdB (1) = -3 dB. n est choisi pour obtenir TdB (x1) b
Autres fonctions : Bessel, Tchebychev
nxxT
21
1)(
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 53
3.4 Choix d’une fonction T(x) ayant ce module
Pour un filtre de Butterworth -3dB :
T(s) = 1/P(s)
Ordre P(s)
1 1 + s
2 1 + 2 s + s²
3 1 + 2s + 2s² + s3
ou (1 + s)(1 + s + s²)
4 1 + 2,613s + 3,414s² + 2,613s3 + s4
ou (1 + 0,7653s + s²)(1 + 1,848s + s²)
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 54
3.5 Choix d'un montage électronique
1. T(s) -> H(f) avec s = j f/fp
2. T(s) est un produit de fonctions de transfert du premier et du second ordre :
les cellules du premier ordre son réalisées avec des structures passives RC.
les cellules du second ordre à partir de structures actives.
3. Choix des composants et vérification / gabarit
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 55
Exemple de cellule du second ordre : la cellule de Sallen Key :
Z4
+
-Z1
Z2
Z3
4131314 )11
YYZZZZYH
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 56
Pour un filtre passe-bas du second ordre
R = Z1 = Z3
Y2 = jC2
Y4 = jC1
212
1
22
1
21
1)(
CCRfet
C
Cmavec
ff
ff
jm
fH p
pp
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 57
4. Généralisation : passe-haut, passe-bande4. Généralisation : passe-haut, passe-bande
Dans le cas d’un filtre passe-haut, passe bande ou coupe-bande,
la normalisation permet de se ramener à un gabarit normalisé de type passe- bas, comme spécifié ci-dessous
les étapes 3 et 4 sont inchangées ( §3.3 et § 3.4)
on revient à une fonction de transfert par dé-normalisation, en remplaçant s par sa valeur en fonction de j, f et fp.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 58
4.1 Normalisation d’un passe – haut
11
1
a
ppp
p f
fxalors
f
fxs
jf
f
fjf
s
20 log H
fa fp0 dB
a dB
b dB
1 x1 0 dB
a dB
b dB
x
20 log T
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 59
4.2 Normalisation d’un passe-bande
),max( '2
'1121
12
xxxetsxetfffoetff
fQavec
jff
fjf
Qs oo
o
f’1 f1 fo f2 f’20 dB
a dB
b dB
f
20 log H
1 x10 dB
a dB
b dB
f
20 log T
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 60
En guise de conclusion sur les filtres En guise de conclusion sur les filtres analogiques…analogiques…
Extrait du même article…
Les filtres analogiques se distinguent par
une facilité de mise en œuvre,
un fonctionnement à des fréquences qui peuvent atteindre quelques gigahertz.
Le revers de la médaille réside dans la sensibilité de ces
composants aux conditions externes (température, humidité).
La non-maîtrise de leurs tolérances nuit également à la précision
du filtrage… surtout dans le cas de filtres exigeants.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 61
Et d’introduction sur les filtres numériques…Et d’introduction sur les filtres numériques…
Extrait du même article…
Pour s’affranchir des limites des composants traditionnels, il existe
une alternative : les filtres numériques.
Les judicieux assemblages de résistances, de capacités,
d’amplificateurs opérationnels des filtres analogiques sont ici
remplacés par des algorithmes de calcul implémentés dans des
microprocesseurs DSP ou des composants spécifiques du type
FPGA.
IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués62
Ch 3. Introduction au filtrage Ch 3. Introduction au filtrage numérique numérique
Un filtre numérique reçoit en entrée une valeur numérique xn et délivre en sortie une valeur numérique yn fonction de l’entrée xn, des entrées précédentes xn-i et des sorties précédentes yn-j
Il est décrit par une équation de récurrence :
yn = f(xn, xn-i, yn-j)
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 63
1.1.Filtre numériqueFiltre numérique
1.1 Définition
Un filtre numérique est un algorithme de calcul qui transforme
une séquence de nombre {xn}
en une autre séquence de nombres : {yn}.
Le calcul algorithmique est effectué par
Le µP d’un microordinateur
Le DSP d’une carte son
Un FPGA ( circuit logique programmable après sa conception)
{xn} {yn}Filtre numérique
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 64
La séquence d’entrée {xn} est issue de la discrétisation d’un signal
analogique x(t) aux instants nTe : x(nTe) = xn
La séquence de sortie {yn}, un fois transformée en tension, devient
la signal de sortie y(t) du filtre équivalent.
[1] La discrétisation est double : échantillonnage (temps) et quantification (valeur). Nous ne tenons
pas compte ici de l’erreur introduite par cette dernière (l’erreur de quantification), on suppose que la
résolution de convertisseur est « suffisamment » élevée!
Echantillonneur-Bloqueur (Féch)
+CAN
Filtre numérique
{hn} H(z)
{xn} {yn}
CNA
+ Lissage éventuel
x(t) y(t)
Filtre
anti-repliement
(FAR)
x(t) y(t)Filtre
numérique utilisé
analogiquement
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 65
1.2 Equation de récurrence
La relation générale entre les séquences {xn} et {yn} est
Si les aj sont nuls, le filtre est dit itératif ou non-récursif
Si les aj ne sont pas nuls, il est dit récursif.
jn
N
jj
M
kknkn yaxby
10
..
NrnnMnMnnn yayayaxbxbxby ...... 2211110
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 66
1.3 Exemple de filtre non récursif
Équation de récurrence :
Réponse :
Les filtres non–récursifs sont à réponse impulsionnelle finie : RIF
Ils sont toujours stables.
21
nnn
xxy
xn
n
xn-1
n
yn
n
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 67
1.4 Exemples de filtres récursifs
Ex 1 équation de récurrence :
La réponse à l’impulsion est hn = ½ (1/2)n
Ce filtre possède une réponse impulsionnelle infinie, mais il est
stable.
21
nnn
yxy
n 0 1 2 3 4
xn 1 0 0 0 0
yn-1 0 1/2 1/4 1/8 1/16
yn 1/2 1/4 1/8 1/16 1/32xn
n
yn
n
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 68
Ex 2 équation de récurrence :
La réponse à l’impulsion est hn = (2)n.
La séquence de sortie est divergente.
Ce filtre possède une réponse impulsionnelle infinie, il est instable.
Les filtres récursifs sont à réponse impulsionnelle infinie : RII
Ils ne sont pas toujours stables.
1.2 nnn yxy
n 0 1 2 3 4
xn 1 0 0 0 0
yn-1 0 1 2 4 8
yn 1 2 4 8 16
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 69
2. Fonctions de transfert et Réponse Imp2. Fonctions de transfert et Réponse Imp
2.1 Transformée en z
On définit la transformée en z d’un signal échantillonné {xn}
par
Un formalisme plus complet permet de montrer que la transformée en z est l’équivalent, dans le monde numérique, de la transformée de Laplace, l’outil mathématique des signaux causaux de l’analogique.
0
.)(n
nn
n xzxTZzX
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 70
Ex :
Le signal {yn} = {xn-1} a pour transformée en z :
)(
...
...
..)(
1
22
11
01
23
12
01
01
0
zXz
xzxzxz
xzxzxz
xzyzzYn
nn
nn
n
xn
nn
yn
n
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 71
On retiendra la propriété fondamentale :
TZ[xn-1] = z-1 TZ[xn] = z-1.X(z)
Qui s’étend à tout retard :
TZ[xn-k] = z-k TZ[xn] = z-k.X(z)
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 72
2.2 Fonction de transfert en z
On définit la fonction de transfert d’un filtre numérique par :
Ex :
La fonction de transfert du filtre numérique qui retarde d’une unité
s’écrit alors
1
X(z)Y(z)
)( zzH
X(z) Y(z)Filtre
numérique
X(z)Y(z)
)( zH
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 73
Généralisation à un filtre quelconque :
En regroupant les termes en Y(z) :
N
j
jj
M
k
kk zYzazXzbzY
10
)(..)(..)(
jn
N
jj
M
kknkn yaxby
10
..
N
j
jj
M
k
kk
za
zb
zXzY
zH
1
0
.1
.
)()(
)(
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 74
2.3 Réponse impulsionnelle
Soit {hn} la réponse d’un filtre à une impulsion xn = n
La fonction de transfert H(z) du filtre est la transformée en z de hn :
La séquence de sortie du filtre peut être obtenue par convolution de la
séquence d’entrée avec la réponse impulsionnelle :
xn= n
nn
yn=hn
n
0
.)(n
nn
n hzhTZzH
kknknn
kknknnn xhxhhxhxy ..
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 75
2.4 Filtre équivalent Ht
En ajoutant les convertisseurs adéquats, on obtient, à partir du
filtre numérique (algorithme) un filtre équivalent utilisable avec des
signaux analogiques, et qui peut donc remplacer un filtre
analogique :
On déduit la fonction de transfert du filtre analogique Ht ainsi
constitué en remplaçant z-1 par e-2jfTe = e-2jf/Féch dans H(z).
Conséquence :
Ht(f) est périodique de période Féch, comme e-2jf/Féch .
Echantillonneur-Bloqueur (Féch)
+CAN
Filtre numérique
{hn} H(z)
{xn} {yn}
CNA
+ Lissage éventuel
x(t) y(t)
Filtre
anti-repliement
(FAR)
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 76
Remarque
Un filtre qui, à chaque instant nTe, reçoit xn et délivre xn-1 retarde le signal d’entrée de Te.
En utilisant les propriétés de la transformée de Fourier :
TF (x(t-a)) = X(f) e-2jfa,
cette opération de retard temporel correspond dans le domaine fréquentiel à une multiplication par e-2jfTe.
Ce qui justifie le fait de poser z-1 = e-2jfTe pour retourner dans le domaine analogique.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 77
Ex :
Soit un filtre issu d'un filtre numérique passe-bas parfait.
Un tel filtre ne remplit son rôle que pour des signaux de fréquence f
< Féch/2, soit des signaux "convenablement" échantillonnés.
Féch/2
|Ht(f)|
f
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 78
D’où…
Tout filtre numérique est précédé d'un filtre passe-bas analogique
qui élimine toute composante qui ne satisfait au théorème
d'échantillonnage, c’est-à-dire toute composante de fréquence
supérieure à Féch/2
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 79
2.5 Les types de filtres
Un filtre numérique peut être construit
pour avoir un effet le plus proche possible d’un filtre analogique connu : ce sont les filtres à réponse impulsionnelle infinie, récursifs.
pour avoir un effet le plus proche possible d’un filtre analogique idéal : ce sont les filtres à réponse impulsionnelle finie, non-récursifs.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 80
3. Filtres à réponse impulsionnelle finie3. Filtres à réponse impulsionnelle finie
3.1 Méthode d’échantillonnage de la réponse impulsionnelle
On part d'une fonction de transfert H(f) idéale
On calcule sa réponse impulsionnelle h(t) par transformée de Fourier inverse
On échantillonne cette réponse pour obtenir {hn}
Ces échantillons sont les coefficients du filtre, ils permettent d’écrire la relation de récurrence
kknkn xhy .
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 81
Mais…
La formule générale
n’est utilisable avec un calculateur que si le nombre de termes de la suite est fini.
La sortie ne peut pas dépendre des entrées futures (système causal) donc n-k n, soit k 0.
L’équation de récurrence devient
Elle comporte N termes, les N coefficients non nuls de la réponse
impulsionnelle : RIF.
kknkn xhy .
1
0)1(122110 ....
N
kknkNnNnnnn xhxhxhxhxhy
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 82
Illustration
1. Filtre idéal, ici passe-bas de fréquence de coupure 100 Hz
2. Calcul de la réponse impulsionnelle = TF-1(H(f))
Réponse impulsionnelle infinie : non réalisable.
-200 -150 -100 -50 0 50 100 150 2000.0
0.2
0.4
0.6
0.8
1.0
H(f)
fréquence-0.03 -0.02 -0.01 0.00 0.01 0.02 0.03
-20
0
20
40
60
80
100
h(t)
t
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 83
Nécessité de ne garder que la partie « essentielle »
3. Fenêtrage de la réponse impulsionnelle :
3. Fenêtrage de la réponse impulsionnelle.
-0.03 -0.02 -0.01 0.00 0.01 0.02 0.03-1.0
-0.5
0.0
0.5
1.0
1.5
2.0
h(t)
t -0.03 -0.02 -0.01 0.00 0.01 0.02 0.03
-20
0
20
40
60
80
100
h(t)
t = 3. Fenêtrage de la réponse impulsionnelle.
-0.03 -0.02 -0.01 0.00 0.01 0.02 0.03
-20
0
20
40
60
80
100
h(t)
t =-0.03 -0.02 -0.01 0.00 0.01 0.02 0.03
-20
0
20
40
60
80
100
h(t)
t
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 84
Conséquences
Tronquer la réponse impulsionnelle, pour obtenir une somme finie, équivaut à multiplier la réponse impulsionnelle par une fenêtre rectangulaire, donc à convoluer la réponse fréquentielle par un sinus cardinal.
Conséquences : introduction d'oscillations dans les bandes passantes et atténuées de la réponse fréquentielle et élargissement de la zone de transition.
L'erreur due à cette troncature sera atténuée en appliquant une fenêtre de pondération non rectangulaire (ex : Hamming)
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 85
4. Echantillonnage de cette réponse pour obtenir hn
Conséquence
Périodisation de la réponse en fréquence à 1/Tech
-0.03 -0.02 -0.01 0.00 0.01 0.02 0.03
-20
0
20
40
60
80
100
h(t)
t
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 86
5. Décalage pour assurer la causalité
Conséquence :
Déphasage, linéaire en fréquence.
-0.01 0.00 0.01 0.02 0.03 0.04
-20
0
20
40
60
80
100
h(t)
t
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 87
3.2 Influence des fenêtres et du nombre de points
0 2 4 6 8 10 12 14 16 18 20 22-0.1
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.500.0
0.2
0.4
0.6
0.8
1.0
1.2
f/Fe
Ht(
f)
Passe bas idéal 21 échantillons f o = 0,3 Fe f enêtre rectangulaire
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 88
0 5 10 15 20 25 30 35 40 45 50 55-0.1
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.500.0
0.2
0.4
0.6
0.8
1.0
1.2
f/Fe
Ht(
f)
Passe bas idéal 51 échantillons f o = 0,3 Fe f enêtre rectangulaire
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 89
0 5 10 15 20 25 30 35 40 45 50 55-0.1
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.500.0
0.2
0.4
0.6
0.8
1.0
1.2
f/Fe
Ht(
f)
Passe bas idéal 51 échantillons f o = 0,3 Fe f enêtre de Hamming
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 90
Remarques
Un tel filtre est appelé
Filtre à réponse impulsionnelle finie (RIF)
Filtre itératif ( yn ne dépend que des xn-i) ou non-récursif
Filtre à phase linéaire.
Une méthode équivalente à celle présentée consiste à calculer les
{hn} par périodisation de H(f) et décomposition en série de Fourier,
puis effectuer un fenêtrage.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 91
3.3 Autres méthodes
La méthode de la réponse impulsionnelle finie fait coïncider les
réponses impulsionnelles souhaitée et réelle, mais introduit des
erreurs sur la réponse fréquentielle.
Une autre méthode permet d’être plus fidèle en fréquence.
Il s’agit de la méthode d’échantillonnage de la réponse en
fréquence souhaitée : on impose que la fonction de transfert passe
par certains points de H(f), et n'ondule pas trop entre ces points.
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 92
Et toujours extrait du même article…
«
Pour une détermination optimale des coefficients, on fait appel aux
algorithmes Parks-McClellan et Remez. Cette méthode est basée sur une
distribution uniforme de l’ondulation sur l’ensemble de la bande passante et
de l’affaiblissement sur toute la bande de réjection. Les filtres FIR résultants
ou filtres “equiripple” sont nettement plus performants que les filtres FIR
fenêtrés et leur réponse en phase est également linéaire. La méthode
recherche itérativement les paramètres afin qu’avec un ordre minimal, le
gabarit soit respecté au mieux. Par rapport à un filtre FIR fenêtré, l’ordre
d’un filtre FIR “equi-ripple” est nettement inférieur (à gabarit identique).
L’ondulation dans la bande passante et l’affaiblissement minimal dans la
bande de réjection sont configurables séparément. »
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 93
4. Filtres à réponse impulsionnelle infinie4. Filtres à réponse impulsionnelle infinie
4.1 Principe
On part d'un filtre réalisable en analogique, de fonction de transfert
H(f), obtenue comme expliqué dans le cours "filtrage analogique".
On exprime la fonction de transfert obtenue H(f) en fonction de la
variable de Laplace p = j= j 2f : H(p)
On remplace la variable p par une fonction de z, cette
transformation doit permettre d'obtenir Ht(f) le plus proche possible
de H(f).
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 94
On obtient une fonction de transfert en z que l’on peut mettre sous
la forme :
Cette expression permet de calculer la valeur de yn en fonction de
xn et des échantillons précédents :
NN
MM
zazaza
zbzbzbbzH
...1
...)(
22
11
22
110
NnNnnMnMnnn yayayaxbxbxby ...... 2211110
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 95
Démonstration :
11
110
1)(
za
zbbzH
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 96
Remarques :
Si les ai sont nuls, on retrouve un filtre à RIF avec bi = hi, sinon, un tel filtre possède une réponse implusionnelle infinie.
yn est calculé de manière récursive (en utilisant les yn-i)
Un tel filtre est appelé
Filtre à réponse impulsionnelle infinie (RII)
Filtre récursif
Filtre transversal
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 97
4.2 Cas de la transformée bilinéaire
Le passage de l’analogique au numérique, si les signaux sont
échantillonnés à la fréquence Féch = 1/Te, se fait par :
Cette transformation effectue une compression en fréquence : une
fréquence f0 d’un filtre analogique H(f) devient pour le filtre
numérique Ht(f)
1
1
112
zz
Tp
e
)arctan(1
0 eoe
t TfT
f
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 98
Ainsi, l’intervalle de fréquences [0, [ est transformé en [0,
Féch/2[.
Donc si on souhaite obtenir un filtre numérique Ht(f) de fréquence
de coupure fto, il faut partir d’un filtre de fréquence de coupure :
Remarque :
pour f << Féch, cette compression est très faible.
)(1
00 ete
TftgT
f
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 99
4.3 Exemple (à compléter en TD)
Filtre passe bas du premier ordre, Féch = 10 000 Hz
Fréquence de coupure souhaitée = 1 000 Hz
H(f) =
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 100
Calcul de la fréquence de coupure analogique à prévoir :
fc =
H(p) =
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 101
Transformée bilinéaire :
H(z) =
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 102
Equation de récurrence :
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 103
5. Mises en œuvre 5. Mises en œuvre
5.1 Mise en œuvre
Analog Input 0
échantillonnage + numérisation CAN
de la carte d’acquisition
Calculateur
PC + programme
Analog Output 0
restitution
CNA de la carte d’acquisition
x(t) xn yn y(t)
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 104
5.2 Performances
RIF RI I
+ - + - simple à concevoir
stable phase linéaire
réponse impulsionnelle
connue directement
nombre de coefficients
élevé : retard
sortie/entrée bien adapté au temps différé
transposition directe des
filtres analogiques nombre de coefficients
réduit : filtre temps réel
phase non linéaire instabilité
possible (si mauvaise
précision des coefficients)
IUT ANNECY MPh-MC/2009-2010
Programmation de systèmes embarqués 105
En guise de conclusion sur les filtres…En guise de conclusion sur les filtres…
Et toujours extrait du même article…
top related