Vous êtes sur la page 1sur 105

IUT ANNECY MPh-MC/2009-2010

Programmation de systmes embarqus


1
Dernire mise jour :24/10/2008
Intervenants
Myriam Chesneau
Jean-Nol Martin

Responsable du document :
Myriam Chesneau

Auteurs du document :

Myriam Chesneau / Thierry Suaton

TP : 18 h
Cours - TD : 12 h
Rpartition horaire :
Programmation des
systmes embarqus
2009/2010
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
2
Programmation des systmes embarqus

Les bases

CH 1 . Introduction au microcontrleur :
Prsentation dun microcontrleur lmentaire et application dans le cadre de linstrumentation

CH 2 . Bases de filtrage analogique
Rappels sur les reprsentations temps-frquence, prsentation des filtres et gabarits, exemple
de ralisation dun filtre analogique

CH 3. Introduction au filtrage numrique
Outils mathmatiques utiliss pour le filtrage numrique, prsentation et principe de ralisation
des filtres RII et RIF

Ouverture
en fin de module ISA (instrumentation spcifique : audionumrique) ouverture sur les DSp et
FPGA, qui permettent de faire du filtrage temps rel et embarqu.
En TP 4 : implmentation dun filtre sur DSP
IUT ANNECY MPh-MC/2009-2010 Programmation de systmes embarqus
3
Ch 1 : Introduction au microcontrleur
Un microcontrleur comprend
- Une unit de traitement de linformation de type microprocesseur
- Des priphriques internes
Il permet la ralisation dapplications autonomes sans ajout de
composants externes
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
4
1.1 Schma de principe
Mmoire
FLASH pour
stocker le
programme
(permanente)
Mmoire RAM
de travail
(volatile)
Mmoire
EEPROM
pour stocker
les donnes
(permanente)
Unit
-dcodage instructions
-traitement
-calculs
Timer
Compteur
Ports
I/O


Horloge
Circuits de
mise en route
et de veille
alimentations
1. Prsentation du circuit
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
5
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
6

1.2 Les mmoires
La mmoire flash : (16F84)
contient le programme compil
possde 1024 emplacements de 14 bits (taille dune instruction)
conserve les donnes hors tension
La RAM
permet le stockage des donnes temporaires ncessaires
lexcution du programme
possde 68 octets + 15 registres spcialiss de 8 bits
son contenu est perdu en cas de coupure

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
7

LEEPROM
contient des donnes produites par le programme
conserve les donnes hors tension

1.3 Unit centrale
Elle rcupre les instructions du programme, les dcode et les
excute.



IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
8

1.4 Lhorloge
Elle reoit un signal priodique issu dun oscillateur, et fabrique
la rfrence temps du systme.




Une instruction lmentaire est en gnral excute en 1 cycle,
soit 4 priodes du signal de loscillateur.

Avec un oscillateur 4 MHz, un c PIC16F84-04 peut effectuer
un million (4 M / 4) instructions simples.


Horloge
oscillateur
externe : f
osc
fo = f
osc
/4
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
9


1.5 Les circuits de mise en route et de veille
Ils permettent
de raliser une bonne mise sous tension du systme,
de le mettre en veille en cas de non utilisation,
de sortir convenablement du mode veille.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
10
2. Les priphriques
2.1 Ports dentres sorties :
Le port A fournit 5 entres - sorties : RA0 RA4
RA0 RA3 :
En entre : comprennent les niveaux TTL
En sortie : dlivrent des niveaux TTL : 0 ou 5 V

RA4
En entre : trigger de Schmitt pour convertir en TTL
(cf TD EON)
En sortie : drain ouvert
Peut tre connecte lentre du timer pour du comptage

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
11

Le port B fournit 8 entres sorties
RB0 RB7 dlivrent et reoivent des niveaux TTL
En entre : peuvent tre connectes au 5 V par programme

de plus
RB0 peut tre utilise pour une interruption externe, elle
fonctionne alors en trigger de Schmitt
RB6 et RB7 sont utilises pour charger le programme en
mmoire (attention, ne pas les utiliser pour une autre tche au moment du
chargement)
Si RB4 RB7 sont en entre, on peut dcider par programme de
gnrer une interruption si la valeur dune de ces entres a
chang.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
12

2.2 Le compteur timer
Le compteur-timer possde 8 bits.




Il compte les fronts montants ou descendants prsents sur son
entre ( 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 dun registre
spcifique est mis 1 : cest le bit de dbordement (overflow).
Clk Out
Compteur
Entre Sortie non
accessible
TMR0
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
13


Un diviseur de frquence (Prescaler) permet de diviser la
frquence du signal appliquer en entre du compteur

La frquence peut tre divise par 2, 4, 8, 16, 32, 64, 128 ou
256.

Clk Out
Compteur
Entre
Diviseur
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
14

Comme le compteur-timer dune carte dacquisition, le compteur
peut tre utilis :
En compteur
Le signal dentre du compteur est externe, il est connect sur
la ligne 4 du port A
Le compte sincrmente sur chaque front de lhorloge
Il est accessible dans le registre TMR0


Clk Out
Compteur
Entre
Diviseur
ou pas
Source
Externe
RA4 = T0CKl
TMR0
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
15

En timer
Le signal dentre du compteur est celui de lhorloge
(fo = fosc/4 = 1 MHz)
Le compte sincrmente sur chaque front de lhorloge
On peut positionner le compte de dpart une valeur choisie
dans le registre TMR0.
On utilise le bit de dbordement pour mesurer le temps coul
entre le dpart et larrive 0 .
Horloge
f
osc
fo
Clk Out
Compteur
Diviseur
ou pas
TMR0
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
16
3. Les registres du PIC
Les registres spcialiss du PIC permettent
de dfinir le fonctionnement du PIC
de sinformer sur ltat du PIC
de configurer les priphriques
de communiquer (lecture / criture) avec les priphriques
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
17

3.1 Le registre des interruptions
INTCON
permet le contrle des interruptions et leur localisation et
indique la fin de compte du timer


GIE EEIE TOIE INTE RBIE TOIF INTF RBIF
Int non
masques
autorises
Int
EEPROM
autorise
Int dpast
timer
autorise
Int externe
(RB0/INT)
autorise
Int
Changt
RB4-7
autorise
Dpast
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 systmes embarqus
18

3.2 Les registres des ports
TRISA : indique la direction des lignes du port A
1 : entre, 0 : sortie


PORTA : lecture criture du contenu du port A

TRISB : indique la direction des lignes du port B
1 : entre, 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 systmes embarqus
19

3.3 Les registres du timer
TMR0 permet dcrire et de lire le compte du timer/compteur

INTCON permet de connatre ltat du bit de dbordement (
dpassement timer = TOIF = timer output interrupt flag)

OPTION permet de dfinir, entre autres, les paramtres du
timer/compteur
source de lentre du compteur
utilisation du diviseur
valeur du diviseur
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
20


OPTION






A la mise sous tension, tous les bits sont positionns 1.

NOT RBU INTEDG TOCS TOSE PSA PS2 PS1 PS0
RBi Vcc Interruption
externe
Source
dhorloge
Front
source
externe
Diviseur
dhorloge
Slection du diviseur dhorloge
1 : non
0 : oui
1 : front +
0 : front -
1 :
externe(*)
0 : f
osc
/4
1 : front

0 : front
+
1 :
watchdog
0 : timer
Timer :
000 : 2
001 : 4

111 : 256
Watchdog :
000 : 1
001 : 2

111 : 128
RB0 / INT (*)
RB4/TOCKl
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
21
4. Programmation
4.1 Procdure 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 mmoire flash du PIC
4. Mise en fonctionnement du PIC
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
22


Le positionnement dune 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 systmes embarqus
23

Nous utiliserons

Lditeur de texte ConText pour crire le programme en
langage C : fichier xxx.c, puis partir de cette diteur, nous
appellerons :
Cc5x pour la cration du fichier en langage PIC : xxx.exe, puis
NTPicprogVf pour le transfert de ce fichier de lordinateur vers
la mmoire flash du PIC par liaison srie

Tous ces logiciels sont libres
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
24

4.2 Adresse des registres
Chaque registre possde une adresse dans la RAM :
Exemple : PORTB est un registre 8 bits situ ladresse 06 de la
RAM

Dans le logiciel utilis, le nom dun registre concide avec son
adresse
PORTB = 0b01011100
permet dcrire les 8 bits 01011100 ladresse 06 de la RAM

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
25

On peut utiliser les bases 2, 10 ou 16 :
PORTB = 0b01011100 ;
PORTB =92 ;
PORTB = 0x5C ;

Pour dsigner le bit ni du registre XXX, on utilise XXX.I
Exemple TRISA.0 dsigne le bit 0 du registre TRISA.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
26

Grce lajout dun fichier en tte spcial (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 systmes embarqus
27


On peut ajouter de telles dfinitions au sein du programme :
(en C)

# define TOIF INTCON.2
permet de nommer TOIF le bit n2 du registre des interruptions
INTCON
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
28

4.3 Exemple de programmation des ports
Pour utiliser les lignes des ports A et B, il faut :
Dfinir la direction des lignes : entre ou sortie
crire sur les lignes en sortie ou lire les lignes en entre

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 systmes embarqus
29

4.4 Programmation du timer (voir exemples en TD)

Clk Out
Compteur
Diviseur

Source
Externe
RA4 = T0CKl
TMR0
Horloge
f
osc
fo
OPTION.4
TOSE : source
edge
OPTION.5
TOCS :
clock
source
OPTION.3
PSA
OPTION.210
PS2 PS1 PS0
prescaler
INTCON
.2
TOIF
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
30


Remarques complmentaires

On travaille principalement avec des bits ou des octets.
On peut utiliser la reprsentation binaire avec le logiciel ConText
unsigned char octet;
octet = 0b11001110;

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
31
5. Interruptions
5.1 gnralits


programme
utilisateur
arrive
interruption
traitement de
l'interruption :
lecture et
sauvegarde
ncessit de
mmoriser
l'endroit, les
variables.
1
2
3
4
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
32


1. demande dinterruption
2. sauvegarde du contexte

3. traitement de l'interruption en excutant des lignes de
programme : lecture et stockage des donnes

4. restitution du contexte et reprise de la tche initiale




IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
33

5.2 Sources dinterruption
Le PIC utilis en possde 4, le programme en cours peut-tre
interrompu si
un front (+ ou -) est prsent sur RB0
une des lignes RB4 RB7 change dtat (lignes places en
entre)
le timer atteint la fin de son cycle (dbordement)
une criture dans lEEPROM est termine
Pour utiliser une interruption, il faut
autoriser les interruptions en gnral
autoriser une (ou +) interruptions en particulier
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
34


5.3 cas du PIC
Voir documentation en TP pour la programmation



IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
35
En guise dintroduction au filtrage
Extrait de larticle Le filtrage numrique des signaux nest
pas quun filtre analogique numris paru dans la revue
Mesures n 749 Novembre 2002

Le filtrage est une tape essentielle dans une chane
dacquisition de donnes. Il permet disoler une frquence
particulire ou dliminer des frquences parasites.
Couramment utiliss, les filtres analogiques manquent de
prcision et sont limits en types de gabarit disponibles.
Le filtrage numrique na pas ces limitations. Il utilise des
algorithmes de calcul implments dans des DSP ou des FPGA.
Avantages : pas de drive, filtres exotiques, filtres facilement
modifiables

IUT ANNECY MPh-MC/2009-2010 Programmation de systmes embarqus
36
Ch 2. Bases de filtrage analogique
Un filtre analogique reoit en entre un signal en tension x(t) et
dlivre en sortie le signal filtr y(t).
Le filtre modifie le spectre du signal dentre.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
37
1. Ce que vous savez dj

1.1 Reprsentations temps/frquence : rappels
Un signal peut tre dcrit dans le domaine du temps ou dans le
domaine des frquences.
Dans le domaine temporel, on observe s(t) loscilloscope
Dans le domaine frquentiel, on observe S(f) lanalyseur de
spectre
S(f) est la transforme de Fourier de s(t)
Cest une grandeur complexe : module + phase.
On appelle spectre (bilatral) le module de S(f)
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
38

Exemple :
Informations donnes par le chronogramme :

Informations donnes 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 400
0.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 systmes embarqus
39

La FFT est une approximation de la transforme de Fourier dun
signal s(t)
chantillonn Fch
observ sur une dure Tobs ( Tobs = Nch / Fch)

Le module de la FFT de s(t) concide avec |S(f)|
si le signal est convenablement chantillonn et observ.
pour 0 < f < Fch/2.

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
40

1.2 Filtres analogiques
En lectricit et en lectronique, on a dj rencontr des filtres
analogiques :
Filtre passe-bas RC
Filtre rsonnant RLC
Filtre actif AOP + R + C

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
41

Les filtres qui ne ncessitent pas dalimentation sont appels filtres
passifs :
RC
RLC
quartz
lignes imprimes
Les filtres aliments sont appels filtres actifs :
AOP + R + C
Transistors + R + C
capacits commutes

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
42


On sintresse ici la conception de filtres actifs amplificateurs
oprationnels, rsistances et condensateurs, partir dun cahier
des charges prcis : le gabarit.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
43
2. Filtre et gabarit
Un filtre permet de traiter diffremment les diffrentes
composantes spectrales dun signal.

Filtre
H(f) = Y(f)/X(f)

x(t)
X(f)
y(t)
Y(f)
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
44

2.1 Filtre idal - Filtre rel
Un filtre idal
transmet les composantes situes dans sa bande passante
supprime les composantes situes en dehors de sa bande
passante





Un tel filtre nest pas ralisable.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
45

Un filtre rel ne supprime pas compltement les composantes hors
bande, mais les attnue, dautant plus fortement que son ordre
est lev.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
46

Un gabarit reprsente les bornes de gain admises dans diverses
bandes de frquence.
Bande passante :
gain nominal (0 dB souvent)
+ erreur maximum admise (a)
Bande attnue :
gain maximum admissible : b
Bande passante f
p
et
bande attnue f
a
.

(slectivit k = fp/fa)

Rq : rien nest prcis sur un tel gabarit en termes de phase.
Exemple du filtre passe-bas de
frquence de coupure f
p
a dB.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
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 systmes embarqus
48

Passe haut

|H(f)| 20 log (|H(f)| chelle log en f

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
49

Passe bande








Coupe bande
Rq : se familiariser avec ces deux reprsentations, utilises frquemment et
mlanges .
|H(f)| 20 log (|H(f)| chelle log en f

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
50
3. Ralisation pratique : cas du passe-bas
3.1 Transformation du cahier des charges en gabarit


fp fa
0 dB

a dB


b dB
f
20 log| T|
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
51

3.2 Normalisation
La normalisation permet dobtenir des rsultats utilisables pour
tous les filtres des 4 familles cites ci-dessus.

on pose

alors
|
|
.
|

\
|
= =
|
|
.
|

\
|
=
p p
f
f
x s
f
jf
s
1
1
>
|
|
.
|

\
|
=
p
a
f
f
x
1 x
1

0 dB

a dB


b dB
x
20 log| T|
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
52

3.3 Choix dune fonction |T(x)|
|T(x)| doit passer dans la canal dfini par le gabarit.
Exemple :
Fonction de transfert de Butterworth pour a = -3 dB :
, n ordre du filtre

Pour x = 1 ( f = f
p
) T
dB
(1) = -3 dB.

n est choisi pour obtenir TdB (x1) s b


Autres fonctions : Bessel, Tchebychev
n
x
x T
2
1
1
) (
+
=
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
53

3.4 Choix dune 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 + s
3

ou (1 + s)(1 + s + s)
4
1 + 2,613s + 3,414s + 2,613s
3
+ s
4

ou (1 + 0,7653s + s)(1 + 1,848s + s)
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
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 ralises avec des structures
passives RC.

les cellules du second ordre partir de structures actives.

3. Choix des composants et vrification / gabarit

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
55

Exemple de cellule du second ordre : la cellule de Sallen Key :



Z
4

+
-


Z
1

Z
2

Z
3

( )
4 1 3 1 3 1 4
) 1
1
Y Y Z Z Z Z Y
H
+ + +
=
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
56

Pour un filtre passe-bas du second ordre
R = Z
1
= Z
3
Y
2
= jC
2
e
Y
4
= jC
1
e




2 1
2
1
2
2
1
2 1
1
) (
C C R
f et
C
C
m avec
f
f
f
f
jm
f H
p
p p
t
= =
|
|
.
|

\
|
+
=
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
57
4. Gnralisation : passe-haut, passe-bande

Dans le cas dun filtre passe-haut, passe bande ou coupe-bande,
la normalisation permet de se ramener un gabarit normalis
de type passe- bas, comme spcifi ci-dessous
les tapes 3 et 4 sont inchanges ( 3.3 et 3.4)
on revient une fonction de transfert par d-normalisation, en
remplaant s par sa valeur en fonction de j, f et fp.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
58

4.1 Normalisation dun passe haut


1
1
1
>
|
|
.
|

\
|
=
|
|
.
|

\
|
= =
|
|
.
|

\
|
=
|
|
.
|

\
|
=

a
p p p
p
f
f
x alors
f
f
x s
jf
f
f
jf
s
20 log| H|
f
a
f
p

0 dB

a dB



b dB
1 x
1

0 dB

a dB


b dB
x
20 log| T|
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
59

4.2 Normalisation dun passe-bande

) , max(
'
2
'
1 1 2 1
1 2
x x x et s x et f f fo et
f f
f
Q avec
jf
f
f
jf
Q s
o o
o
= = =

=
|
|
.
|

\
|
+ =
f
1
f
1
f
o
f
2
f
2
0 dB

a dB




b dB
f
20 log| H|
1 x
1

0 dB

a dB




b dB
f
20 log| T|
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
60
En guise de conclusion sur les filtres
analogiques

Extrait du mme article

Les filtres analogiques se distinguent par
une facilit de mise en uvre,
un fonctionnement des frquences qui peuvent atteindre
quelques gigahertz.
Le revers de la mdaille rside dans la sensibilit de ces
composants aux conditions externes (temprature, humidit).
La non-matrise de leurs tolrances nuit galement la prcision
du filtrage surtout dans le cas de filtres exigeants.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
61
Et dintroduction sur les filtres numriques

Extrait du mme article

Pour saffranchir des limites des composants traditionnels, il existe
une alternative : les filtres numriques.

Les judicieux assemblages de rsistances, de capacits,
damplificateurs oprationnels des filtres analogiques sont ici
remplacs par des algorithmes de calcul implments dans des
microprocesseurs DSP ou des composants spcifiques du type
FPGA.

IUT ANNECY MPh-MC/2009-2010 Programmation de systmes embarqus
62
Ch 3. Introduction au filtrage
numrique


Un filtre numrique reoit en entre une valeur numrique x
n
et
dlivre en sortie une valeur numrique y
n
fonction de lentre x
n
,
des entres prcdentes x
n-i
et des sorties prcdentes y
n-j
Il est dcrit par une quation de rcurrence :
y
n
= f(x
n
, x
n-i
, y
n-j
)

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
63
1. Filtre numrique
1.1 Dfinition

Un filtre numrique est un algorithme de calcul qui transforme
une squence de nombre {x
n
}
en une autre squence de nombres : {y
n
}.


Le calcul algorithmique est effectu par
Le P dun microordinateur
Le DSP dune carte son
Un FPGA ( circuit logique programmable aprs sa conception)
{x
n
} {y
n
}
Filtre
numrique
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
64
La squence dentre {x
n
} est issue de la discrtisation dun signal
analogique x(t) aux instants nT
e
: x(nT
e
) = x
n






La squence de sortie {y
n
}, un fois transforme en tension, devient
la signal de sortie y(t) du filtre quivalent.




[1] La discrtisation est double : chantillonnage (temps) et quantification (valeur). Nous ne tenons
pas compte ici de lerreur introduite par cette dernire (lerreur de quantification), on suppose que la
rsolution de convertisseur est suffisamment leve!
Echantillonneur-
Bloqueur (Fch)
+
CAN
Filtre
numrique
{h
n
} H(z)
{x
n
} {y
n
}
CNA
+ Lissage
ventuel
x(t)
y(t)
Filtre
anti-repliement
(FAR)
x(t) y(t)
Filtre
numrique
utilis
analogiquement
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
65
1.2 Equation de rcurrence
La relation gnrale entre les squences {x
n
} et {y
n
} est




Si les a
j
sont nuls, le filtre est dit itratif ou non-rcursif
Si les a
j
ne sont pas nuls, il est dit rcursif.


j n
N
j
j
M
k
k n k n
y a x b y

= =


=
1 0
. .
N r n n M n M n n n
y a y a y a x b x b x b y + + + =

... ...
2 2 1 1 1 1 0
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
66
1.3 Exemple de filtre non rcursif
quation de rcurrence :
Rponse :






Les filtres nonrcursifs sont rponse impulsionnelle finie : RIF
Ils sont toujours stables.
2
1
+
=
n n
n
x x
y
x
n
n

x
n-1
n

y
n
n

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
67
1.4 Exemples de filtres rcursifs
Ex 1 quation de rcurrence :








La rponse limpulsion est h
n
= (1/2)
n
Ce filtre possde une rponse impulsionnelle infinie, mais il est
stable.
2
1
+
=
n n
n
y x
y
n 0 1 2 3 4
x
n
1 0 0 0 0
y
n-1
0 1/2 1/4 1/8 1/16
y
n
1/2 1/4 1/8 1/16 1/32
x
n
n

y
n
n

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
68

Ex 2 quation de rcurrence :




La rponse limpulsion est h
n
= (2)
n
.
La squence de sortie est divergente.

Ce filtre possde une rponse impulsionnelle infinie, il est instable.
Les filtres rcursifs sont rponse impulsionnelle infinie : RII
Ils ne sont pas toujours stables.
1
. 2

+ =
n n n
y x y
n 0 1 2 3 4
x
n
1 0 0 0 0
y
n-1
0 1 2 4 8
y
n
1 2 4 8 16
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
69
2. Fonctions de transfert et Rponse Imp
2.1 Transforme en z
On dfinit la transforme en z dun signal chantillonn {x
n
}
par



Un formalisme plus complet permet de montrer que la transforme en z est
lquivalent, dans le monde numrique, de la transforme de Laplace, loutil
mathmatique des signaux causaux de lanalogique.

| |

+
=

= =
0
. ) (
n
n
n
n
x z x TZ z X
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
70
Ex :
Le signal {y
n
} = {x
n-1
} a pour transforme en z :



( )
) (
...
...
. . ) (
1
2
2
1
1
0
1
2
3
1
2
0
1
0
1
0
z X z
x z x z x z
x z x z x z
x z y z z Y
n
n
n
n
n
n



+
=

+
=

=
+ + =
+ + =
= =

x
n
n

n

y
n
n

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
71


On retiendra la proprit fondamentale :
TZ[x
n-1
] = z
-1
TZ[x
n
] = z
-1
.X(z)

Qui stend tout retard :
TZ[x
n-k
] = z
-k
TZ[x
n
] = z
-k
.X(z)

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
72
2.2 Fonction de transfert en z
On dfinit la fonction de transfert dun filtre numrique par :




Ex :
La fonction de transfert du filtre numrique qui retarde dune unit
scrit alors
1
X(z)
Y(z)
) (

= = z z H
X(z) Y(z)
Filtre
numrique
X(z)
Y(z)
) ( = z H
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
73
Gnralisation un filtre quelconque :





En regroupant les termes en Y(z) :




=

=
N
j
j
j
M
k
k
k
z Y z a z X z b z Y
1 0
) ( . . ) ( . . ) (
j n
N
j
j
M
k
k n k n
y a x b y

= =


=
1 0
. .

+
= =
N
j
j
j
M
k
k
k
z a
z b
z X
z Y
z H
1
0
. 1
.
) (
) (
) (
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
74
2.3 Rponse impulsionnelle
Soit {h
n
} la rponse dun filtre une impulsion x
n
= o
n




La fonction de transfert H(z) du filtre est la transforme en z de h
n
:


La squence de sortie du filtre peut tre obtenue par convolution de la
squence dentre avec la rponse impulsionnelle :


x
n
= o
n
n

n

y
n
=h
n
n

| |

+
=

= =
0
. ) (
n
n
n
n
h z h TZ z H

+
=

+
=

= - = = - =
k
k n k n n
k
k n k n n n
x h x h h x h x y . .
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
75
2.4 Filtre quivalent H
t
En ajoutant les convertisseurs adquats, on obtient, partir du
filtre numrique (algorithme) un filtre quivalent utilisable avec des
signaux analogiques, et qui peut donc remplacer un filtre
analogique :



On dduit la fonction de transfert du filtre analogique H
t
ainsi
constitu en remplaant z
-1
par e-
2jtfTe
= e
-2jtf/Fch
dans H(z).
Consquence :
H
t
(f) est priodique de priode F
ch
, comme e
-2jtf/Fch
.

Echantillonneur-
Bloqueur (Fch)
+
CAN
Filtre
numrique
{h
n
} H(z)
{x
n
} {y
n
}
CNA
+ Lissage
ventuel
x(t)
y(t)
Filtre
anti-repliement
(FAR)
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
76

Remarque
Un filtre qui, chaque instant nT
e
, reoit x
n
et dlivre x
n-1

retarde le signal dentre de T
e
.

En utilisant les proprits de la transforme de Fourier :

TF (x(t-a)) = X(f) e
-2jtfa
,

cette opration de retard temporel correspond dans le domaine
frquentiel une multiplication par e
-2jtfTe
.


Ce qui justifie le fait de poser z
-1
= e
-2jtfTe
pour retourner dans le
domaine analogique.



IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
77

Ex :
Soit un filtre issu d'un filtre numrique passe-bas parfait.
Un tel filtre ne remplit son rle que pour des signaux de frquence
f < F
ch
/2, soit des signaux "convenablement" chantillonns.


F
ch
/2
|Ht(f)|
f
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
78

Do
Tout filtre numrique est prcd d'un filtre passe-bas analogique
qui limine toute composante qui ne satisfait au thorme
d'chantillonnage, cest--dire toute composante de frquence
suprieure Fch/2

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
79

2.5 Les types de filtres

Un filtre numrique peut tre construit
pour avoir un effet le plus proche possible dun filtre
analogique connu : ce sont les filtres rponse impulsionnelle
infinie, rcursifs.
pour avoir un effet le plus proche possible dun filtre
analogique idal : ce sont les filtres rponse impulsionnelle
finie, non-rcursifs.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
80
3. Filtres rponse impulsionnelle finie
3.1 Mthode dchantillonnage de la rponse
impulsionnelle
On part d'une fonction de transfert H(f) idale
On calcule sa rponse impulsionnelle h(t) par transforme de
Fourier inverse
On chantillonne cette rponse pour obtenir {h
n
}
Ces chantillons sont les coefficients du filtre, ils permettent
dcrire la relation de rcurrence

+
=

=
k
k n k n
x h y .
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
81

Mais
La formule gnrale


nest utilisable avec un calculateur que si le nombre de termes
de la suite est fini.
La sortie ne peut pas dpendre des entres futures (systme
causal) donc n-k s n, soit k > 0.

Lquation de rcurrence devient

Elle comporte N termes, les N coefficients non nuls de la rponse
impulsionnelle : RIF.

+
=

=
k
k n k n
x h y .

=

= + + + + =
1
0
) 1 ( 1 2 2 1 1 0
. ...
N
k
k n k N n N n n n n
x h x h x h x h x h y
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
82

Illustration
1. Filtre idal, ici passe-bas de frquence de coupure 100 Hz
2. Calcul de la rponse impulsionnelle = TF
-1
(H(f))







Rponse impulsionnelle infinie : non ralisable.
-200 -150 -100 -50 0 50 100 150 200
0.0
0.2
0.4
0.6
0.8
1.0
H(f)
frquence
-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 systmes embarqus
83

Ncessit de ne garder que la partie essentielle
3. Fentrage de la rponse impulsionnelle :

3.
Fentrage de la rponse 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
=
-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.
Fentrage de la rponse 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
=
-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 systmes embarqus
84

Consquences
Tronquer la rponse impulsionnelle, pour obtenir une somme
finie, quivaut multiplier la rponse impulsionnelle par une
fentre rectangulaire, donc convoluer la rponse frquentielle
par un sinus cardinal.
Consquences : introduction d'oscillations dans les bandes
passantes et attnues de la rponse frquentielle et
largissement de la zone de transition.
L'erreur due cette troncature sera attnue en appliquant une
fentre de pondration non rectangulaire (ex : Hamming)
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
85

4. Echantillonnage de cette rponse pour obtenir h
n
Consquence
Priodisation de la rponse en frquence 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 systmes embarqus
86

5. Dcalage pour assurer la causalit
Consquence :
Dphasage, linaire en frquence.
-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 systmes embarqus
87

3.2 Influence des fentres 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.50
0.0
0.2
0.4
0.6
0.8
1.0
1.2
f/Fe
H
t
(
f
)

Passe bas idal 21 chantillons fo = 0,3 Fe fentre rectangulaire

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
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.50
0.0
0.2
0.4
0.6
0.8
1.0
1.2
f/Fe
H
t
(
f
)

Passe bas idal 51 chantillons fo = 0,3 Fe fentre rectangulaire

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
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.50
0.0
0.2
0.4
0.6
0.8
1.0
1.2
f/Fe
H
t
(
f
)

Passe bas idal 51 chantillons fo = 0,3 Fe fentre de Hamming

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
90


Remarques
Un tel filtre est appel
Filtre rponse impulsionnelle finie (RIF)
Filtre itratif ( y
n
ne dpend que des x
n-i
) ou non-rcursif

Filtre phase linaire.


Une mthode quivalente celle prsente consiste calculer les
{h
n
} par priodisation de H(f) et dcomposition en srie de Fourier,
puis effectuer un fentrage.
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
91

3.3 Autres mthodes

La mthode de la rponse impulsionnelle finie fait concider les
rponses impulsionnelles souhaite et relle, mais introduit des
erreurs sur la rponse frquentielle.

Une autre mthode permet dtre plus fidle en frquence.
Il sagit de la mthode dchantillonnage de la rponse en
frquence souhaite : 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 systmes embarqus
92

Et toujours extrait du mme article

Pour une dtermination optimale des coefficients, on fait appel aux
algorithmes Parks-McClellan et Remez. Cette mthode est base sur une
distribution uniforme de londulation sur lensemble de la bande passante et
de laffaiblissement sur toute la bande de rjection. Les filtres FIR
rsultants ou filtres equiripple sont nettement plus performants que les
filtres FIR fentrs et leur rponse en phase est galement linaire. La
mthode recherche itrativement les paramtres afin quavec un ordre
minimal, le gabarit soit respect au mieux. Par rapport un filtre FIR
fentr, lordre dun filtre FIR equi-ripple est nettement infrieur (
gabarit identique). Londulation dans la bande passante et laffaiblissement
minimal dans la bande de rjection sont configurables sparment.


IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
93
4. Filtres rponse impulsionnelle infinie
4.1 Principe
On part d'un filtre ralisable 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 = je= j 2tf : H(p)

On remplace la variable p par une fonction de z, cette
transformation doit permettre d'obtenir H
t
(f) le plus proche
possible de H(f).

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
94

On obtient une fonction de transfert en z que lon peut mettre sous
la forme :



Cette expression permet de calculer la valeur de y
n
en fonction de
x
n
et des chantillons prcdents :



N
N
M
M
z a z a z a
z b z b z b b
z H


+ + + +
+ + + +
=
... 1
...
) (
2
2
1
1
2
2
1
1 0
N n N n n M n M n n n
y a y a y a x b x b x b y

+ + + = ... ...
2 2 1 1 1 1 0
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
95

Dmonstration :
1
1
1
1 0
1
) (

+
+
=
z a
z b b
z H
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
96

Remarques :
Si les a
i
sont nuls, on retrouve un filtre RIF avec b
i
= h
i
, sinon,
un tel filtre possde une rponse implusionnelle infinie.
y
n
est calcul de manire rcursive (en utilisant les y
n-i
)

Un tel filtre est appel
Filtre rponse impulsionnelle infinie (RII)
Filtre rcursif
Filtre transversal
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
97

4.2 Cas de la transforme bilinaire
Le passage de lanalogique au numrique, si les signaux sont
chantillonns la frquence Fch = 1/Te, se fait par :


Cette transformation effectue une compression en frquence : une
frquence f
0
dun filtre analogique H(f) devient pour le filtre
numrique H
t
(f)
1
1
1
1 2

=
z
z
T
p
e
) arctan(
1
0 e o
e
t
T f
T
f t
t
=
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
98

Ainsi, lintervalle de frquences [0, [ est transform en [0,
Fch/2[.
Donc si on souhaite obtenir un filtre numrique H
t
(f) de frquence
de coupure f
to
, il faut partir dun filtre de frquence de coupure :



Remarque :
pour f << Fch, cette compression est trs faible.
) (
1
0 0 e t
e
T f tg
T
f t
t
=
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
99

4.3 Exemple ( complter en TD)
Filtre passe bas du premier ordre, Fch = 10 000 Hz
Frquence de coupure souhaite = 1 000 Hz
H(f) =
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
100

Calcul de la frquence de coupure analogique prvoir :
fc =

H(p) =
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
101

Transforme bilinaire :


H(z) =
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
102

Equation de rcurrence :

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
103
5. Mises en uvre
5.1 Mise en uvre



Analog Input 0
chantillonnage +
numrisation CAN
de la carte
dacquisition

Calculateur
PC + programme


Analog Output 0
restitution
CNA de la carte
dacquisition
x(t) x
n
y
n
y(t)
IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
104

5.2 Performances






RIF RII
+ - + -
simple
concevoir
stable
phase linaire
rponse
impulsionnelle
connue
directement
nombre de
coefficients
lev :
retard
sortie/entre
bien adapt au
temps diffr
transposition
directe des
filtres
analogiques
nombre de
coefficients
rduit : filtre
temps rel
phase non
linaire
instabilit
possible (si
mauvaise
prcision des
coefficients)

IUT ANNECY MPh-MC/2009-2010
Programmation de systmes embarqus
105
En guise de conclusion sur les filtres
Et toujours extrait du mme article

Vous aimerez peut-être aussi