105
IUT ANNECY MPh-MC/2009-2 010 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 1 Dernière mise à jour :24/10/2008 Intervenants Myriam Chesneau Jean-Noël Martin Responsable

Embed Size (px)

Citation preview

Page 1: 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

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

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

IUT ANNECY MPh-MC/2009-2010

Programmation de systèmes embarqués 5

Page 6: 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

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

Page 7: 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

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.

Page 8: 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

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

Page 9: 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

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.

Page 10: 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

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

Page 11: 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

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

Page 12: 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

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

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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

Page 19: 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

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

Page 20: 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

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

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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

Page 25: 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

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.

Page 26: 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

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.

Page 27: 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

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

Page 28: 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

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;

Page 29: 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

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

Page 30: 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

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;

Page 31: 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

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

Page 32: 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

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

Page 33: 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

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

Page 34: 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

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

Page 35: 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

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…

Page 36: 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

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.

Page 37: 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

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)

Page 38: 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

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)

Page 39: 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

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.

Page 40: 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

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

Page 41: 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

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

Page 42: 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

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.

Page 43: 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

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)

Page 44: 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

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.

Page 45: 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

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

Page 46: 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

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.

Page 47: 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

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

Page 48: 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

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

Page 49: 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

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

Page 50: 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

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

Page 51: 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

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

Page 52: 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

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

Page 53: 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

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

Page 54: 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

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

Page 55: 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

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

Page 56: 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

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

Page 57: 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

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.

Page 58: 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

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

Page 59: 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

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

Page 60: 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

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.

Page 61: 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

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.

Page 62: 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

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)

Page 63: 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

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

Page 64: 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

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

Page 65: 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

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

Page 66: 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

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

Page 67: 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

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

Page 68: 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

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

Page 69: 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

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

Page 70: 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

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

Page 71: 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

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)

Page 72: 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

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

Page 73: 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

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

.

)()(

)(

Page 74: 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

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

Page 75: 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

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)

Page 76: 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

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.

Page 77: 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

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

Page 78: 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

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

Page 79: 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

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.

Page 80: 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

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 .

Page 81: 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

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

Page 82: 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

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

Page 83: 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

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

Page 84: 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

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)

Page 85: 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

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

Page 86: 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

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

Page 87: 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

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

Page 88: 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

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

Page 89: 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

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

Page 90: 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

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.

Page 91: 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

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.

Page 92: 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

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

Page 93: 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

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

Page 94: 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

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

Page 95: 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

IUT ANNECY MPh-MC/2009-2010

Programmation de systèmes embarqués 95

Démonstration :

11

110

1)(

za

zbbzH

Page 96: 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

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

Page 97: 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

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

Page 98: 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

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

Page 99: 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

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

Page 100: 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

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

Page 101: 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

IUT ANNECY MPh-MC/2009-2010

Programmation de systèmes embarqués 101

Transformée bilinéaire :

H(z) =

Page 102: 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

IUT ANNECY MPh-MC/2009-2010

Programmation de systèmes embarqués 102

Equation de récurrence :

Page 103: 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

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)

Page 104: 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

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)

Page 105: 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

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…