Cours Programmation Des Systemes Embarques 2010 2011

  • Upload
    dgboris

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    1/105

    IUT ANNECY MPh-MC/2010-2011 Programmation de systmes embarqus1

    IUT ANNECYIUT ANNECYDDpartement Mesures Physiquespartement Mesures PhysiquesCours de Programmation des SystCours de Programmation des Systme Embarqume Embarqus (PSE)s (PSE)Module de spModule de spcialisationcialisation

    [email protected]

    Mots clefs :

    Initiation Microcontrleur PIC16F84 Port Registre Timer ConText ProgrammationC Filtrageanalogique Gabarit Butterworth Filtrage numrique RII RIF Carte dacquisition RponseImpulsionnelle

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    2/105

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

    Programmation des systProgrammation des systmes embarqumes embarquss

    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, exemplede ralisation dun filtre analogique

    CH 3. Introduction au filtrage numrique

    Outils mathmatiques utiliss pour le filtrage numrique, prsentation et principe de ralisationdes filtres RII et RIF

    Ouverture

    en fin de module ISA (instrumentation spcifique : audionumrique) ouverture sur les DSp etFPGA, qui permettent de faire du filtrage temps rel et embarqu.

    En TP 4 : implmentation dun filtre sur DSP

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    3/105

    IUT ANNECY MPh-MC/2010-2011 Programmation de systmes embarqus3

    ChCh 1 : Introduction au microcontrleur1 : 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 decomposants externes

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    4/105

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

    1.1 Schma de principe

    Mmoire

    FLASH pour

    stocker leprogramme

    (permanente)

    Mmoire RAM

    de travail

    (volatile)

    Mmoire

    EEPROM

    pour stockerles donnes

    (permanente)

    Unit-dcodage instructions

    -traitement

    -calculs

    TimerCompteur

    Ports

    I/O

    Horloge

    Circuits de

    mise en route

    et de veille

    alimentations1.1. PrPrsentation du circuitsentation du circuit

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    5/105

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    6/105

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

    1.2 Les mmoiresLa mmoire flash : (16F84)

    contient le programme compil

    possde 1024 emplacements de 14 bits (taille dune instruction)

    conserve les donnes hors tension

    La RAMpermet le stockage des donnes temporaires ncessaires lexcution du programme

    possde 68 octets + 15 registres spcialiss de 8 bitsson contenu est perdu en cas de coupure

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    7/105

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

    LEEPROM

    contient des donnes produites par le programme

    conserve les donnes hors tension

    1.3 Unit centrale

    Elle rcupre les instructions du programme, les dcode et lesexcute.

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    8/105

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

    1.4 LhorlogeElle reoit un signal priodique issu dun oscillateur, et fabriquela rfrence temps du systme.

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

    Avec un oscillateur 4 MHz, un c PIC16F84-04 peut effectuer

    un million (4 M / 4) instructions simples.

    Horlogeoscillateur

    externe : foscfo = fosc/4

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    9/105

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

    1.5 Les circuits de mise en route et de veille

    Ils permettent

    de raliser une bonne mise sous tension du systme,

    de le mettre en veille en cas de non utilisation,

    de sortir convenablement du mode veille.

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    10/105

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

    2. Les p2. Les priphriphriquesriques

    2.1 Ports dentres sorties :Le port A fournit 5 entres - sorties : RA0 RA4

    RA0 RA3 :

    En entre : comprennent les niveaux TTLEn sortie : dlivrent des niveaux TTL : 0 ou 5 V

    RA4En entre : trigger de Schmitt pour convertir en TTL(cf TD EON)En sortie : drain ouvert

    Peut tre connecte lentre du timer pour du comptage

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    11/105

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

    Le port B fournit 8 entres sorties

    RB0 RB7 dlivrent et reoivent des niveaux TTL

    En entre : peuvent tre connectes au 5 V par programme

    de plus

    RB0 peut tre utilise pour une interruption externe, ellefonctionne alors en trigger de Schmitt

    RB6 et RB7 sont utilises pour charger le programme enmmoire (attention, ne pas les utiliser pour une autre tche au moment duchargement)

    Si RB4 RB7 sont en entre, on peut dcider par programme degnrer une interruption si la valeur dune de ces entres achang.

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    12/105

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

    2.2 Le compteur timerLe compteur-timer possde 8 bits.

    Il compte les fronts montants ou descendants prsents sur sonentre ( 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 registrespcifique est mis 1 : cest le bit de dbordement (overflow).

    Clk Out

    Compteur

    Entre Sortie non

    accessible

    TMR0

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    13/105

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

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

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

    Clk Out

    Compteur

    EntreDiviseur

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    14/105

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

    Comme le compteur-timer dune carte dacquisition, le compteur

    peut tre utilis :

    En compteur

    Le signal dentre du compteur est externe, il est connect surla ligne 4 du port A

    Le compte sincrmente sur chaque front de lhorloge

    Il est accessible dans le registre TMR0

    Clk Out

    Compteur

    Entre Diviseur

    ou pas

    Source

    Externe

    RA4 = T0CKl

    TMR0

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    15/105

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

    En timer

    Le signal dentre du compteur est celui de lhorloge(fo = fosc/4 = 1 MHz)

    Le compte sincrmente sur chaque front de lhorloge

    On peut positionner le compte de dpart une valeur choisiedans le registre TMR0.

    On utilise le bit de dbordement pour mesurer le temps coulentre le dpart et larrive 0 .

    Horlogefosc

    fo

    Clk Out

    Compteur

    Diviseur

    ou pas

    TMR0

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    16/105

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

    3. Les registres du PIC3. 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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    17/105

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

    3.1 Le registre des interruptionsINTCON

    permet le contrle des interruptions et leur localisation et

    indique la fin de compte du timer

    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

    ChangtRB4-7

    Intexterne

    Dpasttimer

    IntChangtRB4-7autorise

    Int externe(RB0/INT)autorise

    Int dpasttimerautorise

    IntEEPROMautorise

    Int nonmasquesautorises

    TOIF INTF RBIFRBIEINTETOIEEEIEGIE

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    18/105

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

    3.2 Les registres des portsTRISA : indique la direction des lignes du port A

    1 : entre, 0 : sortie

    PORTA : lecture criture du contenu du port A

    TRISB : indique la direction des lignes du port B

    1 : entre, 0 : sortie

    PORTB : lecture criture du contenu du port B

    DirRA0

    DirRA1

    DirRA2

    DirRA3

    DirRA4

    XXX

    DirRB0

    DirRB1

    DirRB2

    DirRB3

    DirRB4

    DirRB5

    DirRB6

    DirRB7

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    19/105

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

    3.3 Les registres du timerTMR0 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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    20/105

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

    OPTION

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

    Timer :

    000 : 2

    001 : 4

    111 : 256

    Slection du diviseur dhorloge

    PS2

    Watchdog :

    000 : 1

    001 : 2

    111 : 128

    PS1 PS0

    (*)RB4/TOCKl

    RB0 / INT

    1 :watchdog

    0 : timer

    1 : front

    0 : front

    +

    1 :externe(*)

    0 : fosc/4

    1 : front +

    0 : front -

    1 : non

    0 : oui

    Diviseurdhorloge

    Frontsourceexterne

    Sourcedhorloge

    Interruptionexterne

    RBi Vcc

    PSATOSETOCSINTEDGNOT RBU

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    21/105

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

    4. Programmation4. Programmation

    4.1 Procdure et logicielsPour 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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    22/105

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

    Le positionnement dune broche du PIC permet de choisir entre les

    modes

    Chargement du programme (PGN) pour la phase 3

    Normal (RUN) pour la phase 4

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    23/105

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

    Nous utiliserons

    Lditeur de texte ConText pour crire le programme en

    langage C : fichier xxx.c, puis partir de cette diteur, nousappellerons :

    Cc5x pour la cration du fichier en langage PIC : xxx.exe, puis

    NTPicprogVf pour le transfert de ce fichier de lordinateur versla mmoire flash du PIC par liaison srie

    Tous ces logiciels sont libres

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    24/105

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

    4.2 Adresse des registresChaque 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 = 0b01011100permet dcrire les 8 bits 01011100 ladresse 06 de la RAM

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    25/105

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

    On peut utiliser les bases 2, 10 ou 16 :

    PORTB = 0b01011100 ;

    PORTB =92 ;

    PORTB = 0x5C ;

    Pour dsigner le bit ni du registre XXX, on utilise XXX.IExemple TRISA.0 dsigne le bit 0 du registre TRISA.

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    26/105

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

    Grce lajout dun fichier en tte spcial (16f84.h), un nom est

    associ chaque bit de certains ports :

    RA0 = 1 ;

    quivaut

    PORTA.0 = 1;

    et permet de mettre 1 le bit 0 du port A sans modifier les autres.

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    27/105

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

    On peut ajouter de telles dfinitions au sein du programme :

    (en C)

    # define TOIF INTCON.2

    permet de nommer TOIF le bit n2 du registre des interruptionsINTCON

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    28/105

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

    4.3 Exemple de programmation des portsPour 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;

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    29/105

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

    4.4 Programmation du timer (voir exemples en TD)

    Clk Out

    CompteurDiviseur

    Source

    Externe

    RA4 = T0CKl

    TMR0

    Horlogefosc fo

    OPTION.4

    TOSE : source

    edge

    OPTION.5

    TOCS :

    clock

    source

    OPTION.3

    PSA

    OPTION.210

    PS2 PS1 PS0

    prescaler

    INTCON.

    2

    TOIF

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    30/105

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

    Remarques complmentaires

    On travaille principalement avec des bits ou des octets.

    On peut utiliser la reprsentation binaire avec le logiciel ConText

    unsigned char octet;octet = 0b11001110;

    5 I t ti5 Interruptions

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    31/105

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

    5. Interruptions5. Interruptions

    5.1 gnralits

    programmeutilisateurarrive

    interruption

    traitement del'interruption :lecture etsauvegarde

    ncessit demmoriserl'endroit, les

    variables.

    1

    2

    3

    4

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    32/105

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

    1. demande dinterruption

    2. sauvegarde du contexte

    3. traitement de l'interruption en excutant des lignes de

    programme : lecture et stockage des donnes

    4. restitution du contexte et reprise de la tche initiale

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    33/105

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

    5.2 Sources dinterruptionLe 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 enentre)

    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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    34/105

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

    5.3 cas du PIC

    Voir documentation en TP pour la programmation

    En guise dEn guise dintroduction au filtrageintroduction au filtrage

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    35/105

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

    En guise dEn guise d introduction au filtrageintroduction au filtrage

    Extrait de larticle Le filtrage numrique des signaux nestpas quun filtre analogique numris paru dans la revueMesures n 749 Novembre 2002

    Le filtrage est une tape essentielle dans une chanedacquisition de donnes. Il permet disoler une frquenceparticulire ou dliminer des frquences parasites.

    Couramment utiliss, les filtres analogiques manquent deprcision et sont limits en types de gabarit disponibles.

    Le filtrage numrique na pas ces limitations. Il utilise desalgorithmes de calcul implments dans des DSP ou des FPGA.

    Avantages : pas de drive, filtres exotiques, filtres facilementmodifiables

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    36/105

    IUT ANNECY MPh-MC/2010-2011 Programmation de systmes embarqus36

    ChCh 2. Bases de filtrage analogique2. Bases de filtrage analogique

    Un filtre analogique reoit en entre un signal en tension x(t) etdlivre en sortie le signal filtr y(t).

    Le filtre modifie le spectre du signal dentre.

    11 Ce que vous savez dCe que vous savez djj

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    37/105

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

    1.1. Ce que vous savez dCe que vous savez djj

    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 despectre

    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)

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    38/105

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

    Exemple :

    Informations donnes par le chronogramme :

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

    0.00 0.02 0.04 0.06 0.08 0.10 0.12

    -1.5

    -1.0

    -0.5

    0.0

    0.5

    1.0

    1.5

    t

    x(t)

    0 50 100 150 200 250 300 350 400

    0.00

    0.05

    0.10

    0.15

    0.20

    0.25

    0.30

    0.35

    0.40

    t

    x(t)

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    39/105

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

    La FFT est une approximation de la transforme de Fourier dunsignal 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.

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    40/105

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    41/105

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

    Les filtres qui ne ncessitent pas dalimentation sont appels filtrespassifs :

    RC

    RLC

    quartz

    lignes imprimes

    Les filtres aliments sont appels filtres actifs :

    AOP + R + C

    Transistors + R + C capacits commutes

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    42/105

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

    On sintresse ici la conception de filtres actifs amplificateurs

    oprationnels, rsistances et condensateurs, partir dun cahier

    des charges prcis : le gabarit.

    2. Filtre et gabarit2. Filtre et gabarit

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    43/105

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

    2. Filtre et gabaritg

    Un filtre permet de traiter diffremment les diffrentescomposantes spectrales dun signal.

    FiltreH(f) = Y(f)/X(f)

    x(t)X(f)

    y(t)Y(f)

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    44/105

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

    2.1 Filtre idal - Filtre relUn filtre idal

    transmet les composantes situes dans sa bande passante

    supprime les composantes situes en dehors de sa bandepassante

    Un tel filtre nest pas ralisable.

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    45/105

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

    Un filtre rel ne supprime pas compltement les composantes horsbande, mais les attnue, dautant plus fortement que son ordre

    est lev.

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    46/105

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    47/105

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

    2.2 Les 4 grandes familles de filtresPasse bas

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    48/105

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

    Passe haut

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    49/105

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

    Passe bande

    Coupe bande

    Rq : se familiariser avec ces deux reprsentations, utilises frquemment et

    mlanges .

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

    3. R3. Ralisation pratique : cas du passealisation pratique : cas du passe--basbas

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    50/105

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

    3.1 Transformation du cahier des charges en gabarit

    fp fa0 dB

    a dB

    b dB

    f

    20 log T

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    51/105

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

    3.2 NormalisationLa normalisation permet dobtenir des rsultats utilisables pour

    tous les filtres des 4 familles cites ci-dessus.

    on pose

    alors

    ==

    =

    pp f

    fxs

    f

    jfs

    11 >

    =

    p

    a

    f

    fx

    1 x1

    0 dB

    a dB

    b dB

    x

    20 log T

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    52/105

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    53/105

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

    3.4 Choix dune fonction T(x) ayant ce modulePour un filtre de Butterworth -3dB :

    T(s) = 1/P(s)

    1 + 2,613s + 3,414s + 2,613s3

    + s4

    ou (1 + 0,7653s + s)(1 + 1,848s + s)

    4

    1 + 2s + 2s + s3

    ou (1 + s)(1 + s + s)

    31 + 2 s + s

    2

    1 + s1

    P(s)Ordre

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    54/105

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

    3.5 Choix d'un montage lectronique

    1. T(s) -> H(f) avec s = j f/fp

    2. T(s) est un produit de fonctions de transfert du premier et dusecond ordre :

    les cellules du premier ordre son ralises avec desstructures passives RC.

    les cellules du second ordre partir de structures actives.

    3. Choix des composants et vrification / gabarit

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    55/105

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

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

    Z4

    +

    -Z1

    Z2

    Z3

    ( )4131314

    )1

    1

    YYZZZZYH

    +++=

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    56/105

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

    Pour un filtre passe-bas du second ordre

    R = Z1 = Z3

    Y2 = jC2

    Y4 = jC1

    212

    1

    2 2

    1

    21

    1)(

    CCRfet

    C

    Cmavec

    f

    f

    f

    fjm

    fHp

    pp

    ==

    +

    =

    4. G4. Gnnralisation : passeralisation : passe--haut, passehaut, passe--bandebande

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    57/105

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

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    58/105

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

    4.1 Normalisation dun passe haut

    11

    1

    >

    =

    ==

    =

    =

    a

    ppp

    pf

    fxalors

    f

    fxs

    jf

    f

    f

    jfs

    20 log H

    fa fp0 dB

    a dB

    b dB

    1 x10 dB

    a dB

    b dB

    x

    20 log T

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    59/105

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

    4.2 Normalisation dun passe-bande

    ),max( '2

    '

    1121

    12

    xxxetsxetfffoetff

    fQavec

    jf

    f

    f

    jfQs oo

    o

    ===

    =

    +=

    f1 f1 fo f2 f20 dB

    a dB

    b dB

    f

    20 log H

    1 x10 dB

    a dB

    b dB

    f

    20 log T

    En guise de conclusion sur les filtresEn guise de conclusion sur les filtresanalogiquesanalogiques

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    60/105

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

    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.

    Et dEt dintroduction sur les filtres numintroduction sur les filtres numriquesriques

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    61/105

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

    Extrait du mme article

    Pour saffranchir des limites des composants traditionnels, il existeune 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 typeFPGA.

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    62/105

    IUT ANNECY MPh-MC/2010-2011 Programmation de systmes embarqus62

    ChCh 3. Introduction au filtrage3. Introduction au filtragenumnumriquerique

    Un filtre numrique reoit en entre une valeur numrique xn etdlivre en sortie une valeur numrique yn fonction de lentre xn,des entres prcdentes xn-i et des sorties prcdentes yn-jIl est dcrit par une quation de rcurrence :

    yn = f(xn, xn-i, yn-j)

    1.1. Filtre numFiltre numriquerique

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    63/105

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

    1.1 DfinitionUn filtre numrique est un algorithme de calcul qui transforme

    une squence de nombre {xn}

    en une autre squence de nombres : {yn}.

    Le calcul algorithmique est effectu par

    Le P dun microordinateur

    Le DSP dune carte son

    Un FPGA ( circuit logique programmable aprs sa conception)

    {xn} {yn}Filtrenumrique

    La squence dentre {xn} est issue de la discrtisation dun signal

    analogique x(t) aux instants nTe : x(nTe) = xn

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    64/105

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

    La squence de sortie {yn}, un fois transforme en tension, devient

    la signal de sortie y(t) du filtre quivalent.

    [1] La discrtisation est double : chantillonnage (temps) et quantification (valeur). Nous ne tenons

    pas compte ici de lerreur introduite par cette dernire (lerreur de quantification), on suppose que la

    rsolution de convertisseur est suffisamment leve!

    Echantillonneur-

    Bloqueur (Fch)

    +

    CAN

    Filtre

    numrique

    {hn} H(z)

    {xn} {yn}

    CNA

    + Lissage

    ventuel

    x(t) y(t)Filtre

    anti-repliement

    (FAR)

    x(t) y(t)Filtre

    numrique

    utilis

    analogiquement

    1.2 Equation de rcurrence

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    65/105

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

    g q { n} {yn}

    Si les aj sont nuls, le filtre est dit itratif ou non-rcursif

    Si les aj ne sont pas nuls, il est dit rcursif.

    jn

    N

    j

    j

    M

    k

    knkn yaxby ==

    =10

    ..

    NrnnMnMnnnyayayaxbxbxby +++=

    ......

    2211110

    1.3 Exemple de filtre non rcursif

    quation de rcurrence :2

    1+= nnnxx

    y

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    66/105

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

    Rponse :

    Les filtres nonrcursifs sont rponse impulsionnelle finie : RIF

    Ils sont toujours stables.

    2

    xn

    n

    xn-1

    n

    yn

    n

    1.4 Exemples de filtres rcursifs

    Ex 1 quation de rcurrence :2

    1+= nnnyx

    y

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    67/105

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

    La rponse limpulsion est hn = (1/2)n

    Ce filtre possde une rponse impulsionnelle infinie, mais il est

    stable.

    1/321/161/81/41/2yn

    1/161/81/41/20yn-1

    00001xn

    43210n

    xn

    n

    yn

    n

    Ex 2 quation de rcurrence : 1.2 += nnn yxy

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    68/105

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

    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.

    168421yn

    84210yn-1

    00001xn

    43210n

    2. Fonctions de transfert et R2. Fonctions de transfert et Rponseponse ImpImp

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    69/105

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

    2.1 Transforme en zOn dfinit la transforme en z dun signal chantillonn {xn}

    par

    Un formalisme plus complet permet de montrer que la transforme en z estlquivalent, dans le monde numrique, de la transforme de Laplace, loutilmathmatique des signaux causaux de lanalogique.

    [ ] +

    =

    ==0

    .)(

    n

    nn

    n xzxTZzX

    Ex :

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    70/105

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

    ( )

    )(

    ...

    ...

    ..)(

    1

    22

    11

    01

    23

    12

    01

    0

    1

    0

    zXz

    xzxzxz

    xzxzxz

    xzyzzY

    n

    nn

    n

    nn

    +

    =

    +

    =

    =

    ++=

    ++=

    ==

    xn

    nn

    yn

    n

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    71/105

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

    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)

    2.2 Fonction de transfert en z

    On dfinit la fonction de transfert dun filtre numrique par :

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    72/105

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

    Ex :

    La fonction de transfert du filtre numrique qui retarde dune unitscrit alors

    1

    X(z)

    Y(z))( == zzH

    X(z) Y(z)Filtre

    numrique

    X(z)

    Y(z))( =zH

    Gnralisation un filtre quelconque :

    jn

    N

    j

    M

    knkn yaxby = ..

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    73/105

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

    En regroupant les termes en Y(z) :

    =

    =

    =N

    j

    jj

    M

    k

    kk zYzazXzbzY

    10

    )(..)(..)(

    jn

    j

    j

    k

    knkn yaxby

    ==

    10

    ..

    =

    =

    +

    ==N

    j

    jj

    M

    k

    kk

    za

    zb

    zX

    zYzH

    1

    0

    .1

    .

    )(

    )()(

    2.3 Rponse impulsionnelle

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    74/105

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

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

    La squence de sortie du filtre peut tre obtenue par convolution de la

    squence dentre avec la rponse impulsionnelle :

    xn= n

    nn

    yn=hn

    n

    [ ]

    +

    =

    ==0

    .)(

    n

    nn

    n hzhTZzH

    +

    =

    +

    = ====

    k

    knknn

    k

    knknnn xhxhhxhxy ..

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    75/105

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    76/105

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

    RemarqueUn filtre qui, chaque instant nTe, reoit xn et dlivre xn-1retarde 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 domainefrquentiel une multiplication par e-2jfTe.

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    77/105

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

    Ex :Soit un filtre issu d'un filtre numrique passe-bas parfait.

    Un tel filtre ne remplit son rle que pour des signaux de frquence

    f < Fch/2, soit des signaux "convenablement" chantillonns.

    Fch/2

    |Ht(f)|

    f

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    78/105

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

    DoTout 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 frquencesuprieure Fch/2

    2.5 Les types de filtres

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    79/105

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

    2.5 Les types de filtres

    Un filtre numrique peut tre construit

    pour avoir un effet le plus proche possible dun filtreanalogique connu : ce sont les filtres rponse impulsionnelleinfinie, rcursifs.

    pour avoir un effet le plus proche possible dun filtre

    analogique idal : ce sont les filtres rponse impulsionnellefinie, non-rcursifs.

    3. Filtres3. Filtres rrponse impulsionnelle finieponse impulsionnelle finie

    3.1 Mthode dchantillonnage de la rponse

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    80/105

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

    3.1 Mthode d chantillonnage de la rponseimpulsionnelle

    On part d'une fonction de transfert H(f) idale

    On calcule sa rponse impulsionnelle h(t) par transforme deFourier inverse

    On chantillonne cette rponse pour obtenir {hn}

    Ces chantillons sont les coefficients du filtre, ils permettent

    dcrire la relation de rcurrence

    +

    ==

    kknkn xhy .

    Mais

    La formule gnrale +

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    81/105

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

    La formule gnrale

    nest utilisable avec un calculateur que si le nombre de termesde la suite est fini.

    La sortie ne peut pas dpendre des entres futures (systmecausal) donc n-k n, soit k 0.

    Lquation de rcurrence devient

    Elle comporte N termes, les N coefficients non nuls de la rponse

    impulsionnelle : RIF.

    = = k knkn xhy .

    = =++++=

    1

    0)1(122110

    ....N

    kknkNnNnnnn

    xhxhxhxhxhy

    Illustration

    1. Filtre idal, ici passe-bas de frquence de coupure 100 Hz

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    82/105

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

    , p q p

    2. Calcul de la rponse impulsionnelle = TF-1(H(f))

    Rponse impulsionnelle infinie : non ralisable.

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

    0.0

    0.2

    0.4

    0.6

    0.8

    1.0

    H(f)

    frquence

    -0.03 -0.02 -0.01 0.00 0.01 0.02 0.03

    -20

    0

    20

    40

    60

    80

    100

    h(t)

    t

    Ncessit de ne garder que la partie essentielle

    3. Fentrage de la rponse impulsionnelle :

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    83/105

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

    -0.03 -0.02 -0.01 0.00 0.01 0.02 0.03

    -1.0

    -0.5

    0.0

    0.5

    1.0

    1.5

    2.0

    h(t)

    t

    -0.03 -0.02 -0.01 0.00 0.01 0.02 0.03

    -20

    0

    20

    40

    60

    80

    100

    h(t)

    t

    =-0.03 -0.02 -0.01 0.00 0.01 0.02 0.03

    -20

    0

    20

    40

    60

    80

    100

    h(t)

    t

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    84/105

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

    ConsquencesTronquer la rponse impulsionnelle, pour obtenir une sommefinie, quivaut multiplier la rponse impulsionnelle par unefentre rectangulaire, donc convoluer la rponse frquentielle

    par un sinus cardinal.Consquences : introduction d'oscillations dans les bandespassantes et attnues de la rponse frquentielle etlargissement de la zone de transition.

    L'erreur due cette troncature sera attnue en appliquant unefentre de pondration non rectangulaire (ex : Hamming)

    4. Echantillonnage de cette rponse pour obtenir hn

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    85/105

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

    Consquence

    Priodisation de la rponse en frquence 1/Tech

    -0.03 -0.02 -0.01 0.00 0.01 0.02 0.03

    -20

    0

    20

    40

    60

    80

    100

    h(t)

    t

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    86/105

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

    5. Dcalage pour assurer la causalitConsquence :

    Dphasage, linaire en frquence.

    -0.01 0.00 0.01 0.02 0.03 0.04

    -20

    0

    20

    40

    60

    80

    100

    h(t)

    t

    3.2 Influence des fentres et du nombre de points

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    87/105

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

    0 2 4 6 8 10 12 14 16 18 20 22

    -0.1

    0.0

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50

    0.0

    0.2

    0.4

    0.6

    0.8

    1.0

    1.2

    f/Fe

    Ht(f)

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    88/105

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

    0 5 10 15 20 25 30 35 40 45 50 55

    -0.1

    0.0

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50

    0.0

    0.2

    0.4

    0.6

    0.8

    1.0

    1.2

    f/Fe

    Ht(f)

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    89/105

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

    0 5 10 15 20 25 30 35 40 45 50 55

    -0.1

    0.0

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50

    0.0

    0.2

    0.4

    0.6

    0.8

    1.0

    1.2

    f/Fe

    Ht(f)

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    90/105

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

    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.

    3.3 Autres mthodes

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    91/105

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

    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.

    Et toujours extrait du mme article

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    92/105

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

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

    4. Filtres4. Filtres rrponse impulsionnelle infinieponse impulsionnelle infinie

    4.1 Principe

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    93/105

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

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

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

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    94/105

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

    la forme :

    Cette expression permet de calculer la valeur de yn en fonction de

    xn et des chantillons prcdents :

    N

    N

    MM

    zazaza

    zbzbzbbzH

    ++++

    ++++=

    ...1

    ...)(

    2

    2

    1

    1

    22

    110

    NnNnnMnMnnn yayayaxbxbxby +++= ...... 2211110

    Dmonstration :

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    95/105

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

    11

    110

    1)(

    +

    +=

    za

    zbbzH

    Remarques :

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    96/105

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

    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

    4.2 Cas de la transforme bilinaire

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    97/105

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

    Le passage de lanalogique au numrique, si les signaux sont

    chantillonns la frquence Fch = 1/Te, se fait par :

    Cette transformation effectue une compression en frquence : une

    frquence f0 dun filtre analogique H(f) devient pour le filtrenumrique Ht(f)

    1

    1

    112

    +=zz

    Tp

    e

    )arctan(

    1

    0 eoet TfTf

    =

    Ainsi, lintervalle de frquences [0, [ est transform en [0,

    F h/2[

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    98/105

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

    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 :

    Remarque :

    pour f

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    99/105

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

    Filtre passe bas du premier ordre, Fch = 10 000 Hz

    Frquence de coupure souhaite = 1 000 Hz

    H(f) =

    Calcul de la frquence de coupure analogique prvoir :

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    100/105

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

    fc =

    H(p) =

    Transforme bilinaire :

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    101/105

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

    H(z) =

    Equation de rcurrence :

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    102/105

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

    5. Mises en5. Mises en uvreuvre

    5.1 Mise en uvre

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    103/105

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

    Analog Input 0

    chantillonnage +

    numrisation CAN

    de la carte

    dacquisition

    Calculateur

    PC + programme

    Analog Output 0

    restitution

    CNA de la carte

    dacquisition

    x(t) xn yn y(t)

    5.2 Performances

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    104/105

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

    RIF RII

    + - + -

    simple concevoir

    stablephase linaire

    rponseimpulsionnelle

    connuedirectement

    nombre decoefficients

    lev :retard

    sortie/entrebien adapt autemps diffr

    transpositiondirecte des

    filtresanalogiquesnombre decoefficients

    rduit : filtretemps rel

    phase nonlinaireinstabilit

    possible (si

    mauvaiseprcision descoefficients)

  • 7/31/2019 Cours Programmation Des Systemes Embarques 2010 2011

    105/105