You are on page 1of 105

IUT ANNECY Dpartement Mesures Physiques Cours de Programmation des Systme Embarqus (PSE) Module de spcialisation

myriam.chesneau@univ-savoie.fr Mots clefs : Initiation Microcontrleur PIC16F84 Port Registre Timer ConText ProgrammationC Filtrage analogique Gabarit Butterworth Filtrage numrique RII RIF Carte dacquisition Rponse Impulsionnelle

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus 1

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/2010-2011

Programmation de systmes embarqus

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/2010-2011

Programmation de systmes embarqus 3

1. Prsentation du circuit
1.1 Schma de principe
Mmoire FLASH pour stocker le programme (permanente) Unit -dcodage instructions Horloge -traitement -calculs Mmoire RAM de travail (volatile)

alimentations

Mmoire EEPROM pour stocker les donnes (permanente) Timer Compteur

Ports I/O

Circuits de mise en route et de veille


IUT ANNECY MPh-MC/2010-2011 Programmation de systmes embarqus 4

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

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/2010-2011

Programmation de systmes embarqus

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/2010-2011

Programmation de systmes embarqus

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

Horloge

fo = fosc/4

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.

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

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/2010-2011

Programmation de systmes embarqus

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/2010-2011

Programmation de systmes embarqus

10

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/2010-2011

Programmation de systmes embarqus

11

2.2 Le compteur timer


Le compteur-timer possde 8 bits.

Entre

Clk

Out

Sortie non accessible

Compteur
TMR0

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).

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

12

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.

Entre Diviseur

Clk

Out

Compteur

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

13

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

Source Externe RA4 = T0CKl

Entre Diviseur ou pas


TMR0

Clk

Out

Compteur

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

14

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 .

fosc

Horloge

fo

Diviseur ou pas
TMR0

Clk

Out

Compteur

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

15

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/2010-2011

Programmation de systmes embarqus

16

3.1 Le registre des interruptions


INTCON permet le contrle des interruptions et leur localisation et indique la fin de compte du timer
GIE Int non masques autorises 1 : oui 0 : non EEIE Int EEPROM autorise 1 : oui 0 : non TOIE Int dpast timer autorise 1 : oui 0 : non INTE Int externe (RB0/INT) autorise 1 : oui 0 : non RBIE Int Changt RB4-7 autorise 1 : oui 0 : non TOIF Dpast timer INTF Int externe RBIF Changt RB4-7

1 : oui 0 : non

1 : oui 0 : non

1 : oui 0 : non

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

17

3.2 Les registres des ports


TRISA : indique la direction des lignes du port A 1 : entre, 0 : sortie
X X X Dir RA4 Dir RA3 Dir RA2 Dir RA1 Dir RA0

PORTA : lecture criture du contenu du port A

TRISB : indique la direction des lignes du port B 1 : entre, 0 : sortie


Dir RB7 Dir RB6 Dir RB5 Dir RB4 Dir RB3 Dir RB2 Dir RB1 Dir RB0

PORTB : lecture criture du contenu du port B


IUT ANNECY MPh-MC/2010-2011 Programmation de systmes embarqus 18

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/2010-2011 Programmation de systmes embarqus 19

OPTION
NOT RBU RBi Vcc INTEDG Interruption externe 1 : front + 0 : front TOCS Source dhorloge 1: externe(*) 0 : fosc/4 RB0 / INT (*) RB4/TOCKl TOSE Front source externe 1 : front 0 : front + PSA Diviseur dhorloge 1: watchdog 0 : timer PS2 PS1 PS0

Slection du diviseur dhorloge

1 : non 0 : oui

Timer : 000 : 2 001 : 4 111 : 256

Watchdog : 000 : 1 001 : 2 111 : 128

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

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

20

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/2010-2011

Programmation de systmes embarqus

21

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/2010-2011

Programmation de systmes embarqus

22

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/2010-2011

Programmation de systmes embarqus

23

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/2010-2011

Programmation de systmes embarqus

24

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/2010-2011

Programmation de systmes embarqus

25

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/2010-2011

Programmation de systmes embarqus

26

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/2010-2011

Programmation de systmes embarqus

27

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/2010-2011

Programmation de systmes embarqus

28

4.4 Programmation du timer (voir exemples en TD)


OPTION.210 PS2 PS1 PS0 prescaler INTCON. 2 TOIF

fosc

Horloge

fo Diviseur

Clk

Out

Compteur
TMR0

Source Externe RA4 = T0CKl

OPTION.5 TOCS : clock source OPTION.4 TOSE : source edge

OPTION.3 PSA
29

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

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/2010-2011

Programmation de systmes embarqus

30

5. Interruptions
5.1 gnralits
ncessit de mmoriser l'endroit, les variables.

arrive interruption

programme utilisateur

4 3

traitement de l'interruption : lecture et sauvegarde

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

31

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/2010-2011

Programmation de systmes embarqus

32

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/2010-2011

Programmation de systmes embarqus

33

5.3 cas du PIC


Voir documentation en TP pour la programmation

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

34

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/2010-2011

Programmation de systmes embarqus

35

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/2010-2011

Programmation de systmes embarqus 36

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/2010-2011

Programmation de systmes embarqus

37

Exemple : Informations donnes par le chronogramme :

Informations donnes par le spectre (donn ici pour f>0) :

1.5

0.40

0.35 1.0 0.30 0.5 0.25

x(t)

0.0

x(t) 0.02 0.04 0.06 t 0.08 0.10 0.12

0.20

0.15 -0.5 0.10 -1.0 0.05

-1.5 0.00

0.00 0 50 100 150 200 t 250 300 350 400

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

38

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/2010-2011

Programmation de systmes embarqus

39

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/2010-2011

Programmation de systmes embarqus

40

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/2010-2011

Programmation de systmes embarqus

41

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/2010-2011

Programmation de systmes embarqus

42

2. Filtre et gabarit
Un filtre permet de traiter diffremment les diffrentes composantes spectrales dun signal.

x(t) X(f)

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

y(t) Y(f)

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

43

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/2010-2011 Programmation de systmes embarqus 44

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/2010-2011

Programmation de systmes embarqus

45

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 fp et bande attnue fa. (slectivit k = fp/fa)
Exemple du filtre passe-bas de frquence de coupure fp a dB. Rq : rien nest prcis sur un tel gabarit en termes de phase.

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

46

2.2 Les 4 grandes familles de filtres


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

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

47

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

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

48

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

Coupe bande
Rq : se familiariser avec ces deux reprsentations, utilises frquemment et mlanges .
IUT ANNECY MPh-MC/2010-2011 Programmation de systmes embarqus 49

3. Ralisation pratique : cas du passe-bas


3.1 Transformation du cahier des charges en gabarit

20 log T 0 dB a dB fp fa f

b dB

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

50

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

jf on pose s = f p
fa fp

f s = x = f p


1 0 dB a dB x1 x

alors

x1 =

>1

20 log T

b dB

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

51

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 :

T (x) =

1 1+ x
2n

, n ordre du filtre TdB (1) = -3 dB.

Pour x = 1 ( f = fp)

n est choisi pour obtenir TdB (x1) b

Autres fonctions : Bessel, Tchebychev

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

52

3.4 Choix dune fonction T(x) ayant ce module


Pour un filtre de Butterworth -3dB : T(s) = 1/P(s) Ordre 1 2 3 P(s) 1+s 1 + 2 s + s 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/2010-2011

Programmation de systmes embarqus

53

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/2010-2011

Programmation de systmes embarqus

54

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


Z2

+ Z1 Z3 Z4 -

H =

1 1 + Y 4 (Z 1 + Z 3 ) + Z 1 Z 3Y 1Y 4 )

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

55

Pour un filtre passe-bas du second ordre R = Z1 = Z3 Y2 = jC2 Y4 = jC1


C1 C2

H (f ) =

1 f f 1 + 2 jm fp fp
2

avec m =

et f p =

1 2 R C 1C 2

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

56

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/2010-2011

Programmation de systmes embarqus

57

4.1 Normalisation dun passe haut


jf s = f p
1

f = p jf

f s = x = p alors f

f x1 = p >1 f a
20 log T

20 log H 0 dB a dB fa fp

0 dB a dB

x1

b dB b dB

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

58

4.2 Normalisation dun passe-bande


jf f fo + o avec Q = et fo = f 1f 2 et x = s et x 1 = max(x 1' , x 2' ) s =Q f jf f 2 f1 o
20 log H 0 dB a dB f1 f1 fo f2 f2 20 log T f 0 dB a dB 1 x1 f

b dB

b dB

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

59

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/2010-2011

Programmation de systmes embarqus

60

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/2010-2011

Programmation de systmes embarqus

61

Ch 3. Introduction au filtrage numrique

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

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus 62

1. Filtre numrique
1.1 Dfinition
Un filtre numrique est un algorithme de calcul qui transforme une squence de nombre {xn} en une autre squence de nombres : {yn}.
{xn}
Filtre numrique

{yn}

Le calcul algorithmique est effectu par Le P dun microordinateur Le DSP dune carte son Un FPGA ( circuit logique programmable aprs sa conception)

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

63

La squence dentre {xn} est issue de la discrtisation dun signal analogique x(t) aux instants nTe : x(nTe) = xn

Filtre

x(t)

anti-repliement (FAR)

EchantillonneurBloqueur (Fch) + CAN

Filtre numrique {hn} H(z)

CNA + Lissage ventuel

y(t)

{xn}

{yn}

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

x(t)

Filtre numrique utilis analogiquement

y(t)

[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!

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

64

1.2 Equation de rcurrence


La relation gnrale entre les squences {xn} et {yn} est

yn =

bk . x n k
=0

a j .y n j
=1

y n = b 0 x n + b1 x n 1 + ... + bM x n M a1y n 1 a 2 y n 2 ... a r y N

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

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

65

1.3 Exemple de filtre non rcursif


quation de rcurrence : Rponse :
xn n xn-1 n yn n

x + x n 1 yn = n
2

Les filtres nonrcursifs sont rponse impulsionnelle finie : RIF Ils sont toujours stables.

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

66

1.4 Exemples de filtres rcursifs

x + y n 1 yn = n Ex 1 quation de rcurrence :
2
n xn yn-1 yn 0 1 0 1/2 1 0 1/2 1/4 2 0 1/4 1/8 3 0 1/8 1/16 4 0 1/16 1/32

xn n yn n

La rponse limpulsion est hn = (1/2)n Ce filtre possde une rponse impulsionnelle infinie, mais il est stable.
IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

67

Ex 2 quation de rcurrence : y n = x n + 2.y n 1


n xn yn-1 yn 0 1 0 1 1 0 1 2 2 0 2 4 3 0 4 8 4 0 8 16

La rponse limpulsion est hn = (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.

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

68

2. Fonctions de transfert et Rponse Imp


2.1 Transforme en z
On dfinit la transforme en z dun signal chantillonn {xn} par
+

X (z ) = TZ [x n ] =

z n . x n

=0

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.

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

69

Ex : Le signal {yn} = {xn-1} a pour transforme en z :


xn n n yn n

Y (z ) =

0 n=

z n . y n =

0 n=

z n . x n 1

= z 1 x 0 + z 2 x 1 + z 3 x 2 ... = z 1 x 0 + z 1 x 1 + z 2 x 2 ... = z 1 X (z )

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

70

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

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

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

71

2.2 Fonction de transfert en z


On dfinit la fonction de transfert dun filtre numrique par :

Y(z) H (z ) = X(z)
X(z)
Filtre numrique

Y(z)

Ex : La fonction de transfert du filtre numrique qui retarde dune unit scrit alors

H (z ) =

Y(z) = z 1 X(z)

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

72

Gnralisation un filtre quelconque :

yn =

bk . x n k
=0

a j .y n j
=1

Y (z ) =

b k . z k . X (z )

=0

j
=1

a j . z j .Y (z )

En regroupant les termes en Y(z) :

H (z ) =

Y (z ) = X (z )

k
1+

bk . z k a j .z j

=0

j
=1

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

73

2.3 Rponse impulsionnelle


Soit {hn} la rponse dun filtre une impulsion xn = n
xn= n n n yn=hn n

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

H (z ) = TZ [hn ] =

z n
=0 +

. hn

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

y n = x n hn =

xk k
=

. hn k = hn x n =

hk k
=

. x n k

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

74

2.4 Filtre quivalent Ht


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 :
Filtre EchantillonneurBloqueur (Fch) + CAN Filtre numrique {hn} H(z) CNA + Lissage ventuel

x(t)

anti-repliement (FAR)

y(t)

{xn}

{yn}

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

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

75

Remarque Un filtre qui, chaque instant nTe, reoit xn et dlivre xn-1 retarde le signal dentre de Te.

En utilisant les proprits de la transforme de Fourier : TF (x(t-a)) = X(f) e-2jfa, cette opration de retard temporel correspond dans le domaine frquentiel 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/2010-2011

Programmation de systmes embarqus

76

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 < Fch/2, soit des signaux "convenablement" chantillonns.

|Ht(f)|

f Fch/2

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

77

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/2010-2011

Programmation de systmes embarqus

78

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/2010-2011

Programmation de systmes embarqus

79

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 {hn} Ces chantillons sont les coefficients du filtre, ils permettent dcrire la relation de rcurrence

yn =

k =

. xn k

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

80

Mais La formule gnrale

yn =

k =

. x n k

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 n, soit k 0.

Lquation de rcurrence devient

y n = h 0 x n + h1 x n 1 + h 2 x n 2 + ... + h N 1 x n (N 1) = h k . x n k
k =0

N 1

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

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

81

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

1.0

100

0.8

80

60

0.6
40

0.4
20

0.2

-20

0.0 -200 -150 -100 -50 0 50 100 150 200


-0.03 -0.02 -0.01 0.00 t 0.01 0.02 0.03

frquence

Rponse impulsionnelle infinie : non ralisable.

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

82

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

h(t) 2.0 100 1.5 80

h(t)

1.0

60

0.5

40

0.0

20

0 -0.5 -20 -1.0 -0.03

-0.02

-0.01

0.00 t

0.01

0.02

0.03

h(t)

-0.03

-0.02

-0.01

0.00 t

0.01

0.02

0.03

100

80

60

40

20

-20

=
IUT ANNECY MPh-MC/2010-2011

-0.03

-0.02

-0.01

0.00 t

0.01

0.02

0.03

Programmation de systmes embarqus

83

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/2010-2011

Programmation de systmes embarqus

84

4. Echantillonnage de cette rponse pour obtenir hn Consquence Priodisation de la rponse en frquence 1/Tech

h(t)

100

80

60

40

20

-20

-0.03

-0.02

-0.01

0.00 t

0.01

0.02

0.03

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

85

5. Dcalage pour assurer la causalit Consquence : Dphasage, linaire en frquence.


h(t)

100

80

60

40

20

-0.01

0 0.00

0.01 t

0.02

0.03

0.04

-20

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

86

3.2 Influence des fentres et du nombre de points

0.6

1.2

0.5

1.0

0.4 0.8 0.3 Ht(f) 0.2 0.4 0.1 0.0 -0.1 0 2 4 6 8 10 12 14 16 18 20 22 0.6

0.2

0.0 0.00

0.05

0.10

0.15

0.20

0.25 f/Fe

0.30

0.35

0.40

0.45

0.50

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

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

87

0.6

1.2

0.5

1.0

0.4 0.8 0.3 Ht(f) 0.2 0.4 0.1 0.0 -0.1 0 5 10 15 20 25 30 35 40 45 50 55 0.6

0.2

0.0 0.00

0.05

0.10

0.15

0.20

0.25 f/Fe

0.30

0.35

0.40

0.45

0.50

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

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

88

0.6

1.2

0.5

1.0

0.4 0.8 0.3 Ht(f) 0.2 0.4 0.1 0.0 -0.1 0 5 10 15 20 25 30 35 40 45 50 55 0.6

0.2

0.0 0.00

0.05

0.10

0.15

0.20

0.25 f/Fe

0.30

0.35

0.40

0.45

0.50

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

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

89

Remarques Un tel filtre est appel Filtre rponse impulsionnelle finie (RIF) Filtre itratif ( yn ne dpend que des xn-i) ou non-rcursif Filtre phase linaire.

Une mthode quivalente celle prsente consiste calculer les {hn} par priodisation de H(f) et dcomposition en srie de Fourier, puis effectuer un fentrage.

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

90

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/2010-2011

Programmation de systmes embarqus

91

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/2010-2011

Programmation de systmes embarqus

92

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 = 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/2010-2011

Programmation de systmes embarqus

93

On obtient une fonction de transfert en z que lon peut mettre sous la forme :
H (z ) = b0 + b1z 1 + b2 z 2 + ... + bM z M
1 + a1z 1 + a 2 z 2 + ... + a N z N

Cette expression permet de calculer la valeur de yn en fonction de xn et des chantillons prcdents :


y n = b 0 x n + b1 x n 1 + ... + bM x n M a1y n 1 a 2 y n 2 ... a N y n N

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

94

Dmonstration :

b0 + b1 z 1 H( z ) = 1 + a1 z 1

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

95

Remarques : Si les ai sont nuls, on retrouve un filtre RIF avec bi = hi, sinon, un tel filtre possde une rponse implusionnelle infinie. yn est calcul de manire rcursive (en utilisant les yn-i)

Un tel filtre est appel Filtre rponse impulsionnelle infinie (RII) Filtre rcursif Filtre transversal

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

96

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 :

2 1 z 1 p= Te 1 + z 1
Cette transformation effectue une compression en frquence : une frquence f0 dun filtre analogique H(f) devient pour le filtre numrique Ht(f)
ft 0 =
1 arctan(f oT e )

T e

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

97

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

f0 =

1 tg(ft 0Te ) Te

Remarque : pour f << Fch, cette compression est trs faible.

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

98

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/2010-2011

Programmation de systmes embarqus

99

Calcul de la frquence de coupure analogique prvoir : fc =

H(p) =

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

100

Transforme bilinaire :

H(z) =

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

101

Equation de rcurrence :

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

102

5. Mises en uvre
5.1 Mise en uvre

x(t)

Analog Input 0 chantillonnage + numrisation CAN de la carte dacquisition

xn

Calculateur PC + programme

yn

Analog Output 0 restitution CNA de la carte dacquisition

y(t)

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

103

5.2 Performances

RIF + 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

RII phase non linaire instabilit possible (si mauvaise prcision des coefficients)

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

104

En guise de conclusion sur les filtres


Et toujours extrait du mme article

IUT ANNECY MPh-MC/2010-2011

Programmation de systmes embarqus

105

You might also like