La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 IUT ANNECY MPh-MC/ 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

2 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 2 Programmation des systèmes embarqués Les bases CH 1. Introduction au microcontrôleur : Présentation dun microcontrôleur élémentaire et application dans le cadre de linstrumentation CH 2. Bases de filtrage analogique Rappels sur les représentations temps-fréquence, présentation des filtres et gabarits, exemple de réalisation dun 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 dun filtre sur DSP

3 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 3 Ch 1 : Introduction au microcontrôleur Un microcontrôleur comprend - Une unité de traitement de linformation de type microprocesseur - Des périphériques internes Il permet la réalisation dapplications autonomes sans ajout de composants externes

4 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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 alimentations 1. Présentation du circuit

5 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 5

6 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Les mémoires La mémoire flash : (16F84) contient le programme compilé possède 1024 emplacements de 14 bits (taille dune instruction) conserve les données hors tension La RAM permet le stockage des données temporaires nécessaires à lexécution du programme possède 68 octets + 15 registres spécialisés de 8 bits son contenu est perdu en cas de coupure

7 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 7 LEEPROM 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.

8 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Lhorloge Elle reçoit un signal périodique issu dun 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 loscillateur. Avec un oscillateur à 4 MHz, un µc PIC16F84-04 peut effectuer un million (4 M / 4) instructions simples. Horloge oscillateur externe : f osc fo = f osc /4

9 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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.

10 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Les périphériques 2.1 Ports dentré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 ouvert Peut être connectée à lentrée du timer pour du comptage

11 IUT ANNECY MPh-MC/ 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 dune de ces entrées a changé.

12 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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 dun registre spécifique est mis à 1 : cest le bit de débordement (overflow). Clk Out Compteur Entrée Sortie non accessible TMR0

13 IUT ANNECY MPh-MC/ 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ée Diviseur

14 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 14 Comme le compteur-timer dune carte dacquisition, le compteur peut être utilisé : En compteur Le signal dentrée du compteur est externe, il est connecté sur la ligne 4 du port A Le compte sincrémente sur chaque front de lhorloge Il est accessible dans le registre TMR0 Clk Out Compteur Entrée Diviseur ou pas Source Externe RA4 = T0CKl TMR0

15 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 15 En timer Le signal dentrée du compteur est celui de lhorloge (fo = fosc/4 = 1 MHz) Le compte sincrémente sur chaque front de lhorloge 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 « larrivée à 0 ». Horloge f osc fo Clk Out Compteur Diviseur ou pas TMR0

16 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Les registres du PIC Les registres spécialisés du PIC permettent de définir le fonctionnement du PIC de sinformer sur létat du PIC de configurer les périphériques de communiquer (lecture / écriture) avec les périphériques

17 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Le registre des interruptions INTCON permet le contrôle des interruptions et leur localisation et indique la fin de compte du timer GIEEEIETOIEINTERBIETOIFINTFRBIF 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

18 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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 XXXDir 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

19 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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 lentrée du compteur utilisation du diviseur valeur du diviseur

20 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 20 OPTION A la mise sous tension, tous les bits sont positionnés à 1. NOT RBUINTEDGTOCSTOSEPSAPS2PS1PS0 RBi à VccInterruption externe Source dhorloge Front source externe Diviseur dhorloge Sélection du diviseur dhorloge 1 : non 0 : oui 1 : front + 0 : front - 1 : externe(*) 0 : f osc /4 1 : front – 0 : front + 1 : watchdog 0 : timer Timer : 000 : : 4 … 111 : 256 Watchdog : 000 : : 2 … 111 : 128 RB0 / INT(*) RB4/TOCKl

21 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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

22 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 22 Le positionnement dune broche du PIC permet de choisir entre les modes Chargement du programme (PGN) pour la phase 3 Normal (RUN) pour la phase 4

23 IUT ANNECY MPh-MC/ 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 lordinateur vers la mémoire flash du PIC par liaison série Tous ces logiciels sont libres

24 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Adresse des registres Chaque registre possède 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 coïncide avec son adresse PORTB = 0b permet décrire les 8 bits à ladresse 06 de la RAM

25 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 25 On peut utiliser les bases 2, 10 ou 16 : PORTB = 0b ; 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.

26 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 26 Grâce à lajout dun 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.

27 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 27 On peut ajouter de telles définitions au sein du programme : (en C) # define TOIFINTCON.2 permet de nommer TOIF le bit n°2 du registre des interruptions INTCON

28 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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 = 0b ; PORTB = 0b ;

29 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Programmation du timer (voir exemples en TD) Clk Out Compteur Diviseur Source Externe RA4 = T0CKl TMR0 Horloge f osc fo OPTION.4 TOSE : source edge OPTION.5 TOCS : clock source OPTION.3 PSA OPTION.210 PS2 PS1 PS0 prescaler INTCON.2 TOIF

30 IUT ANNECY MPh-MC/ 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 = 0b ;

31 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Interruptions 5.1 généralités programme utilisateur arrivée interruption traitement de l'interruption : lecture et sauvegarde nécessité de mémoriser l'endroit, les variables…

32 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués demande dinterruption 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

33 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Sources dinterruption 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 lEEPROM est terminée Pour utiliser une interruption, il faut autoriser les interruptions en général autoriser une (ou +) interruptions en particulier

34 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués cas du PIC Voir documentation en TP pour la programmation

35 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 35 En guise dintroduction au filtrage… Extrait de larticle «Le filtrage numérique des signaux nest pas quun filtre analogique numérisé… » paru dans la revue Mesures n° 749 Novembre 2002 Le filtrage est une étape essentielle dans une chaîne dacquisition de données. Il permet disoler 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 na 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…

36 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 36 Ch 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 dentrée.

37 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 37 1.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) à loscilloscope Dans le domaine fréquentiel, on observe S(f) à lanalyseur de spectre S(f) est la transformée de Fourier de s(t) Cest une grandeur complexe : module + phase. On appelle spectre (bilatéral) le module de S(f)

38 IUT ANNECY MPh-MC/ 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) :

39 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 39 La FFT est une approximation de la transformée de Fourier dun 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.

40 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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

41 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 41 Les filtres qui ne nécessitent pas dalimentation 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

42 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 42 On sintéresse ici à la conception de filtres actifs à amplificateurs opérationnels, résistances et condensateurs, à partir dun cahier des charges précis : le gabarit.

43 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Filtre et gabarit Un filtre permet de traiter différemment les différentes composantes spectrales dun signal. Filtre H(f) = Y(f)/X(f) x(t) X(f) y(t) Y(f)

44 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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 nest pas réalisable.

45 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 45 Un filtre réel ne supprime pas complètement les composantes hors bande, mais les atténue, dautant plus fortement que son ordre est élevé.

46 IUT ANNECY MPh-MC/ 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 f p et bande atténuée f a. (sélectivité k = fp/fa) Rq : rien nest précisé sur un tel gabarit en termes de phase. Exemple du filtre passe-bas de fréquence de coupure f p à « a » dB.

47 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Les 4 grandes familles de filtres Passe bas |H(f)| 20 log (|H(f)| échelle log en f

48 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 48 Passe haut |H(f)| 20 log (|H(f)| échelle log en f

49 IUT ANNECY MPh-MC/ 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

50 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Réalisation pratique : cas du passe-bas 3.1 Transformation du cahier des charges en gabarit fp fa 0 dB a dB b dB f 20 log T

51 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Normalisation La normalisation permet dobtenir des résultats utilisables pour tous les filtres des 4 familles citées ci-dessus. on pose alors 1 x 1 0 dB a dB b dB x 20 log T

52 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Choix dune 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 = f p ) T dB (1) = -3 dB. n est choisi pour obtenir TdB (x1) b Autres fonctions : Bessel, Tchebychev

53 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Choix dune fonction T(x) ayant ce module Pour un filtre de Butterworth -3dB : T(s) = 1/P(s) OrdreP(s) s s + s² s + 2s² + s 3 ou (1 + s)(1 + s + s²) ,613s + 3,414s² + 2,613s 3 + s 4 ou (1 + 0,7653s + s²)(1 + 1,848s + s²)

54 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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

55 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 55 Exemple de cellule du second ordre : la cellule de Sallen Key : Z4Z4 + - Z1Z1 Z2Z2 Z3Z3

56 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 56 Pour un filtre passe-bas du second ordre R = Z 1 = Z 3 Y 2 = jC 2 Y 4 = jC 1

57 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Généralisation : 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 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.

58 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Normalisation dun passe – haut 20 log H f a f p 0 dB a dB b dB 1 x 1 0 dB a dB b dB x 20 log T

59 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Normalisation dun passe-bande f 1 f 1 f o f 2 f 2 0 dB a dB b dB f 20 log H 1 x 1 0 dB a dB b dB f 20 log T

60 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 60 En guise de conclusion sur les filtres 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.

61 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 61 Et dintroduction sur les filtres numériques… Extrait du même article… Pour saffranchir des limites des composants traditionnels, il existe une alternative : les filtres numériques. Les judicieux assemblages de résistances, de capacités, damplificateurs 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.

62 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 62 Ch 3. Introduction au filtrage numérique Un filtre numérique reçoit en entrée une valeur numérique x n et délivre en sortie une valeur numérique y n fonction de lentrée x n, des entrées précédentes x n-i et des sorties précédentes y n-j Il est décrit par une équation de récurrence : y n = f(x n, x n-i, y n-j )

63 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 63 1.Filtre numérique 1.1 Définition Un filtre numérique est un algorithme de calcul qui transforme une séquence de nombre {x n } en une autre séquence de nombres : {y n }. Le calcul algorithmique est effectué par Le µP dun microordinateur Le DSP dune carte son Un FPGA ( circuit logique programmable après sa conception) {x n }{y n } Filtre numérique

64 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 64 La séquence dentrée {x n } est issue de la discrétisation dun signal analogique x(t) aux instants nT e : x(nT e ) = x n La séquence de sortie {y n }, un fois transformée en tension, devient la signal de sortie y(t) du filtre équivalent. [1][1] La discrétisation est double : échantillonnage (temps) et quantification (valeur). Nous ne tenons pas compte ici de lerreur introduite par cette dernière (lerreur de quantification), on suppose que la résolution de convertisseur est « suffisamment » élevée! Echantillonneur- Bloqueur (F é ch) + CAN Filtre num é rique {h n } H(z) {x n }{y n } CNA + Lissage é ventuel x(t) y(t) Filtre anti-repliement (FAR) x(t)y(t) Filtre numérique utilisé analogiquement

65 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Equation de récurrence La relation générale entre les séquences {x n } et {y n } est Si les a j sont nuls, le filtre est dit itératif ou non-récursif Si les a j ne sont pas nuls, il est dit récursif.

66 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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. xnxn n x n-1 n ynyn n

67 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Exemples de filtres récursifs Ex 1 équation de récurrence : La réponse à limpulsion est h n = ½ (1/2) n Ce filtre possède une réponse impulsionnelle infinie, mais il est stable. n01234 xnxn y n-1 01/21/41/81/16 ynyn 1/21/41/81/161/32 xnxn n ynyn n

68 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 68 Ex 2 équation de récurrence : La réponse à limpulsion est h n = (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. n01234 xnxn y n ynyn

69 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Fonctions de transfert et Réponse Imp 2.1 Transformée en z On définit la transformée en z dun signal échantillonné {x n } 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, loutil mathématique des signaux causaux de lanalogique.

70 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 70 Ex : Le signal {y n } = {x n-1 } a pour transformée en z : xnxn n n ynyn n

71 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 71 On retiendra la propriété fondamentale : TZ[x n-1 ] = z -1 TZ[x n ] = z -1.X(z) Qui sétend à tout retard : TZ[x n-k ] = z -k TZ[x n ] = z -k.X(z)

72 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Fonction de transfert en z On définit la fonction de transfert dun filtre numérique par : Ex : La fonction de transfert du filtre numérique qui retarde dune unité sécrit alors X(z)Y(z) Filtre numérique

73 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 73 Généralisation à un filtre quelconque : En regroupant les termes en Y(z) :

74 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Réponse impulsionnelle Soit {h n } la réponse dun filtre à une impulsion x n = n La fonction de transfert H(z) du filtre est la transformée en z de h n : La séquence de sortie du filtre peut être obtenue par convolution de la séquence dentrée avec la réponse impulsionnelle : x n = n n n y n =h n n

75 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Filtre équivalent H t 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 H t ainsi constitué en remplaçant z -1 par e- 2jfTe = e -2jf/Féch dans H(z). Conséquence : H t (f) est périodique de période F éch, comme e -2jf/Féch. Echantillonneur- Bloqueur (F é ch) + CAN Filtre num é rique {h n } H(z) {x n }{y n } CNA + Lissage é ventuel x(t) y(t) Filtre anti-repliement (FAR)

76 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 76 Remarque Un filtre qui, à chaque instant nT e, reçoit x n et délivre x n-1 retarde le signal dentrée de T e. 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.

77 IUT ANNECY MPh-MC/ 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

78 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 78 Doù… 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, cest-à-dire toute composante de fréquence supérieure à Féch/2

79 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Les types de filtres Un filtre numérique peut être construit pour avoir un effet le plus proche possible dun filtre analogique connu : ce sont les filtres à réponse impulsionnelle infinie, récursifs. pour avoir un effet le plus proche possible dun filtre analogique idéal : ce sont les filtres à réponse impulsionnelle finie, non-récursifs.

80 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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 {h n } Ces échantillons sont les coefficients du filtre, ils permettent décrire la relation de récurrence

81 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 81 Mais… La formule générale nest 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.

82 IUT ANNECY MPh-MC/ 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.

83 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 83 Nécessité de ne garder que la partie « essentielle » 3. Fenêtrage de la réponse impulsionnelle :

84 IUT ANNECY MPh-MC/ 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)

85 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Echantillonnage de cette réponse pour obtenir h n Conséquence Périodisation de la réponse en fréquence à 1/Tech

86 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Décalage pour assurer la causalité Conséquence : Déphasage, linéaire en fréquence.

87 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Influence des fenêtres et du nombre de points

88 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 88

89 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 89

90 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 90 Remarques Un tel filtre est appelé Filtre à réponse impulsionnelle finie (RIF) Filtre itératif ( y n ne dépend que des x n-i ) ou non-récursif Filtre à phase linéaire. Une méthode équivalente à celle présentée consiste à calculer les {h n } par périodisation de H(f) et décomposition en série de Fourier, puis effectuer un fenêtrage.

91 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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 sagit 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.

92 IUT ANNECY MPh-MC/ 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 londulation sur lensemble de la bande passante et de laffaiblissement 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 quavec un ordre minimal, le gabarit soit respecté au mieux. Par rapport à un filtre FIR fenêtré, lordre dun filtre FIR equi-ripple est nettement inférieur (à gabarit identique). Londulation dans la bande passante et laffaiblissement minimal dans la bande de réjection sont configurables séparément. »

93 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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 H t (f) le plus proche possible de H(f).

94 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 94 On obtient une fonction de transfert en z que lon peut mettre sous la forme : Cette expression permet de calculer la valeur de y n en fonction de x n et des échantillons précédents :

95 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 95 Démonstration :

96 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 96 Remarques : Si les a i sont nuls, on retrouve un filtre à RIF avec b i = h i, sinon, un tel filtre possède une réponse implusionnelle infinie. y n est calculé de manière récursive (en utilisant les y n-i ) Un tel filtre est appelé Filtre à réponse impulsionnelle infinie (RII) Filtre récursif Filtre transversal

97 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Cas de la transformée bilinéaire Le passage de lanalogique 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 f 0 dun filtre analogique H(f) devient pour le filtre numérique H t (f)

98 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 98 Ainsi, lintervalle de fréquences [0, [ est transformé en [0, Féch/2[. Donc si on souhaite obtenir un filtre numérique H t (f) de fréquence de coupure f to, il faut partir dun filtre de fréquence de coupure : Remarque : pour f << Féch, cette compression est très faible.

99 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Exemple (à compléter en TD) Filtre passe bas du premier ordre, Féch = Hz Fréquence de coupure souhaitée = Hz H(f) =

100 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 100 Calcul de la fréquence de coupure analogique à prévoir : fc = H(p) =

101 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 101 Transformée bilinéaire : H(z) =

102 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 102 Equation de récurrence :

103 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 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)xnxn ynyn y(t)

104 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués Performances

105 IUT ANNECY MPh-MC/ Programmation de systèmes embarqués 105 En guise de conclusion sur les filtres… Et toujours extrait du même article…


Télécharger ppt "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."

Présentations similaires


Annonces Google