20
  jean-philippe muller Filtrage numérique Physique appliquée Filtrage numérique 10 Hz 9 Hz 8 Hz 7 Hz 6 Hz 0 dB - 10 - 20 - 30 - 40 - 50 - 60 - 70 Filtre passe-bande numérique

Filtres numériques

Embed Size (px)

DESCRIPTION

Théorie filtrage numériqueAlgorithmeFiltres FIRFiltres IIR

Citation preview

  • jean-philippe muller Filtrage numrique

    Physique applique

    Filtrage numrique

    10 Hz9 Hz8 Hz7 Hz6 Hz

    0 dB

    - 10

    - 20

    - 30

    - 40

    - 50

    - 60

    - 70

    Filtre passe-bande numrique

  • jean-philippe muller Filtrage numrique

    Sommaire

    1- Transforme en z dune squence binaire2- Transformes en z des fonctions usuelles3- Transforme en z ou transforme de Laplace ?4- Transmittance en z5- Exemple de synthse dun filtre numrique6- Structure gnrale dun filtre numrique7- Algorithme de calcul et transmittance8- Exemple de passage de lalgorithme T(z)9- Exemple de passage de T(z) lalgorithme10- Les deux familles de filtres numriques11- Stabilit dun filtre numrique12- Rponse harmonique13- Exemple de rponse harmonique14- Synthse par la transforme bilinaire15- Outils de synthse de filtres FIR16- Outils de synthse de filtres IIR17- Exemple de ralisation de filtre numrique

  • jean-philippe muller Filtrage numrique

    1- Transforme en z dune squence binaire

    Soit une squence numrique xn constitue des valeurs du signal x(t) chantillonn aux instants t=0, Te, 2Te ...

    xn

    121

    11....1....1.11)( =+++++= zzzzzX n

    1)( =zX

    .........)( 22110 +++++= nn zxzxzxxzX

    temps

    1

    t

    1

    t

    On appelle transforme en z de la squence numrique xn le polynme X(z) dfini par la relation :

    Prenons quelques exemples simples :

    squence impulsion unit xn = 0 avant t = 0 xn = 1 t = 0 xn = 0 Te, 2Te ...

    squence chelon unit xn = 0 avant t = 0 xn = 1 t = 0, Te, 2Te ...

    NB : on suppose dans tout ce cours que le signal x(t) est nul avant t = 0.

    x2 x3x4x1

    x5x0

    Te 2Te 3Te 4Te 5Te

  • jean-philippe muller Filtrage numrique

    2- Transformes en z des fonctions usuelles

    dans quelques cas particuliers simples, la transforme en z se calcule directement partir de sa dfinition pour tous les autres cas, on dispose de tables donnant les transformes en z des signaux usuels

    )(tf )(pF )(zF

    )(tUp1

    1zz)(t 11

    ta.2pa

    2)1(..z zTea

    ate ap +1

    aTeezz

    ate 1 )( app a+ ))(1( )1( aTeaTeezz ez

    )cos(bte at 22)( bapap++

    +aTeaTe

    aTe

    ebTezezbTeezz

    2cos2)cos(

    2

    +

    )sin(bte at 22)( bapb

    ++ aTeaTeaTe

    ebTezezbTeze

    2cos2sin

    2

    +

  • jean-philippe muller Filtrage numrique

    3- Transforme en z ou transforme de Laplace ?

    En ralit, cette transforme en z nest rien dautre quune transforme de Laplace cache :

    le signal chantillonn x*(t) peut scrire comme une somme dimpulsions de Dirac retardes et damplitudes variables :

    ...)(....)2(.)(.)(.)(* 210 +++++= nTetxTetxTetxtxtx n ...1....1.1.1.)( 2210 +++++= nTepnTepTep exexexxzX la transforme de Laplace de x*(t) scrit alors :

    Tepez= .........)( 22110 +++++= nn zxzxzxxzX si on pose on retrouve la dfinition de la transforme en z :La transforme en z dun signal a donc les mmes proprits mathmatiques que la transforme de Laplace.

    xn

    x2 x3x4x1

    x5 Tepez=x0X(z) X*(p)

    Te 2Te 3Te 4Te 5Te

    un signal x(t) analogique continu a une transforme de Laplace X(p) un signal chantillonn x*(t) a une transforme en z X(z) et une transforme de Laplace X*(p) quon utilise rarement on passe facilement de X*(p) X(z) par un simple changement de variable, la transforme en z X(z) tant moins lourde crire que X*(p) il ny a pas de passage simple possible entre X(p) et X*(p), mais il existe des tables permettant de passer de X(p) X*(p) et X(z)

  • jean-philippe muller Filtrage numrique

    4- Transmittance en z dun filtre numrique

    Soit un systme qui une squence dentre xn restitue en sortie une squence yn :

    )()()( zXzYzT =filtrenumrique y0, y1, y2 x0, x1, x2 ... la transmittance T(z) du filtre est alors dfinie par :X(z) Y(z)

    Puisque les transformes X(z) et Y(z) sont des polynmes contenant les puissances ngatives de z, la transmittance sera un rapport de deux polynmes en puissances ngatives de z.

    Exemple de filtre numrique :

    passe-bande de Chebychev 6me ordre frquence centrale : fo = 0,25.fe largeur B = 0,1.fe 3 cellules 2me ordre en cascade transmittance T(z) T(z) = H1(z).H2(z).H3(z)

    2

    2

    1 .7233,01.1

    225,0)(

    += zzzH 21

    2

    3 .864,0.56,01.1

    225,0)(

    += zzzzH21

    2

    2 .864,0.56,01.1

    225,0)(

    ++= zzzzH

  • jean-philippe muller Filtrage numrique

    5- Exemple de synthse dun filtre numrique

    Exemple : on se propose de trouver la transmittance dun filtre passe-haut numrique qui rpond un chelon comme un filtre passe-haut analogique du 1er ordre de constante de temps 10 ms soit de frquence de coupure fc = 15,9 Hz

    905,01

    )()()( == z zzXzYzT

    100)()()( +== p

    ppXpYpT

    passe-hautanalogique

    tt

    1Filtre analogique

    1001)( += ppYppX 1)( = tety .1001)( =1)( =tx

    1)( =zzzX 905,0)( =zzzY1)( =nTex nTen eenTey 1,0..100 .1.1)( ==

    passe-hautnumrique

    tt

    1Filtre numrique

    Te

    fe = 1 kHzTe = 1 ms

    Remarques : il est simple de trouver la transmittance dun filtre numrique qui une entre donne rpond par une sortie de forme particulire si lentre est une impulsion, cette technique sappelle la mthode de lidentification de la rponse impulsionnelle si lentre est un chelon, cette technique sappelle la mthode de lidentification de la rponse indicielle

  • jean-philippe muller Filtrage numrique

    6- Structure gnrale dun filtre numrique

    Un filtre numrique calcule la valeur numrique de la sortie yn linstant t = nTe partir des chantillons prcdents de la sortie et des chantillons prcdents de lentre, plus celui qui vient dtre appliqu sur lentre xn :

    qnqnnpnpnnn xbxbxbyayayay +++++++= ............ 1102211Cette formule de calcul ou algorithme conduit naturellement la structure gnrale dun filtre numrique :

    Registre dcalage

    Remarques : toutes les Te secondes, les valeurs sont dcales dans les registres, multiplies par leur coefficient respectif et additionnes pour donner yn cette structure peut tre ralise sous forme matrielle ( registres, multiplicateurs, additionneur) ou entirement logicielle un filtre simple calcule la sortie partir de quelques chantillons seulement au contraire, lalgorithme dun filtre sophistiqu peut compter jusqu une centaine de termes

    nx

    0b 2b 3b 2nx1nx 3nx ... qnx Horloge Te

    1b qb 1a 2a 3a

    1ny 2ny 3ny ... pny

    pa

    ny

    Horloge Te

    Registre dcalage

  • jean-philippe muller Filtrage numrique

    7- Algorithme de calcul et transmittance T(z)

    Lalgorithme permet de calculer la valeur de lchantillon de sortie yn en fonction des chantillons dentre et de sortie prcdents.

    )(zTy0, y1, y2 x0, x1, x2 ...

    X(z) Y(z)

    qnqnnpnpnnn xbxbxbyayayay +++++++= ............ 1102211La transmittance T(z) permet de synthtiser le filtre, de tracer son diagramme de Bode et dtudier ses rponses une impulsion, un chelon ou une entre quelconque.

    inx

    iny

    izzX ).( 1zoprateur

    retard

    Pour passer de lalgorithme, relatif au domaine temporel, la variable z, on utilise la rgle de passage trs simple :

    izzY ).( en utilisant cette rgle, lalgorithme se transforme en :

    qq

    pp zzXbzzXbzXbzzYazzYazzYazY ++++++= ).(....).(.)(.).(....).(.).(.)( 1102211

    ).....)(()......1)(( 1102211 qqpp zbzbbzXzazazazY +++= soit, aprs factorisation :

    pp

    qq

    zazazazbzbb

    zXzYzT

    +++==

    ......1.....

    )()()(

    22

    11

    110

    ce qui donne la transmittance en z du filtre :

  • jean-philippe muller Filtrage numrique

    8- Exemple de passage de lalgorithme T(z)

    On souhaite tablir la transmittance T(z) du filtre qui effectue la moyenne glissante sur les 4 derniers chantillons arrivs sur lentre :

    ).(25,04 321321 +++=+++= nnnnnnnnn xxxxxxxxy son algorithme scrit :

    partir de lalgorithme, il est facile de calculer manuellement les sorties aux instants Te, 2Te pour observer le comportement du filtre :

    y0, y1, y2 xn ynx0, x1, x2 ...filtre

    numrique

    41

    )1.(25,0)()()(

    321321

    +++=+++== zzzzzzzX

    zYzT

    en utilisant la rgle de passage au domaine des z , lalgorithme se transforme en : )).().().()(.(25,0)( 321 +++= zzXzzXzzXzXzY

    ce qui donne la transmittance en z du filtre :

    t

    y4 y5

    1

    x3

    t

    x2 x55

    Te 5Te

    y1

    y2y3

    y0 = 0,25.x0 = 0y1 = 0,25.(x1+x0) = 0,25y2 = 0,25.(x2+x1+x0) = 1,5y3 = 0,25.(x3+x2+x1+x0) = 2y4 = 0,25.(x4+x3+x2+x1) = 2,75y5 = 0,25.(x5+x4+x3+x2) = 2,75

    5

    x4

    x11

    Te 5Te

    Exemple de signal dentre Sortie filtre

  • jean-philippe muller Filtrage numrique

    9- Exemple de passage de T(z) lalgorithme

    On souhaite trouver lalgorithme de calcul du filtre caractris par la transmittance T(z) suivante :

    1

    31

    2.21

    )(

    +++= zzzzT

    x0, x1, x2 ... y0, y1, y2

    la transmittance est le rapport entre la transforme en z de la sortie et la transforme en z de lentre :

    )()(

    2.21

    )( 131

    zXzY

    zzzzT =+

    ++=

    )().2()()..21( 131 zYzzXzz +=++soit , en faisant le produit en croix :

    311 )().(.2)().()(.2 +++= zzXzzXzXzzYzY ce qui donne , en isolant Y(z) :

    en utilisant la rgle de passage au domaine temporel, lalgorithme scrit : 211 .2.2 +++= nnnnn xxxyy

    211 .5,0.5,0.5,0 +++= nnnnn xxxyy soit, enfin :

  • jean-philippe muller Filtrage numrique

    10- Les deux familles de filtres numriques

    Suivant la forme de lalgorithme, on distingue deux grandes familles de filtres qui ont chacune leurs proprits particulires :

    filtres pour lesquels la sortie ne dpend que des entres et pas des sorties leur rponse une impulsion sannule au bout dun certain temps ils sappellent filtres non rcursifs ou rponse impulsionnelle finie (FIR) ils nont pas dquivalent analogique

    Rponse impulsionnelle Rponse indicielle

    Filtre moyenne glissante

    )(31

    21 ++= nnnn xxxy

    filtres pour lesquels la sortie dpend des entres et des sorties prcdentes leur rponse une impulsion sannule au bout dun temps infini ils sappellent filtres rcursifs ou rponse impulsionnelle infinie (IIR)

    ).(25,0.5,0 11 ++= nnnn xxyy

    Rponse impulsionnelle Rponse indicielle

    Passe-bas du premier ordre

  • jean-philippe muller Filtrage numrique

    11- Stabilit dun filtre numrique

    Comme pour les filtres analogiques, il est possible de prvoir la stabilit partir de la transmittance du systme.

    Rappel : un systme de transmittance T(p) est stable si tous ses ples sont partie relle ngative.

    Ce critre de stabilit reste valable pour les transmittances T*(p) des systmes chantillonns :

    iii bjap .+= 0iaavec un systme stable aura des ples pi partie relle ngative :( ) [ ])sin(.cos(.. iiTeabjaTepTei bjbeeez iiii +=== + la valeur de z correspondant ce ple scrit :

    1= iTeai ez si le systme est stable, le module de ce nombre complexe est tel que : 0iapuisque ImIm

    Critre de stabilit : un systme chantillonn de transmittance T(z) est stable si tous ses ples sont lintrieur du cercle unit.

    1

    Transmittance en z

    stable

    instable

    Re

    pleinstable 1

    stable

    Re

    Transmittance en p

  • jean-philippe muller Filtrage numrique

    12- Rponse harmonique dun filtre numrique

    Pour reprsenter la courbe de gain et de phase dun filtre, il faut tudier sa transmittance complexe et il faut donc passer de T(z) T(jw) :

    TejTep eez ==p

    p

    qq

    zazazazbzbbzT

    +++=

    ......1.....

    )(2

    21

    1

    110

    Tejpp

    TejTej

    Tejqq

    Tej

    eaeaeaebebbzT

    +++=

    ......1.....

    )( 221

    10

    lexpression obtenue pour la transmittance comporte des exponentielles complexes elle est donc assez lourde manipuler mathmatiquement le calcul du module et de la phase de la transmittance mne souvent des calculs fastidieux des logiciels de simulation permettent darriver rapidement la courbe de rponse

    Module de la transmittance dun filtre passe-bande

    fo

    B

    Ao

    fe/2

    nnnn xyyy += 21 .85,0.5,1

    Exemple de simulation :

    algorithme du filtre

    filtre passe-bande frquence dchantillonnage fe = 11 kHz frquence centrale fo = 1,1 kHz amplification maximale Ao = 11,2 bande passante B = 200 Hz coefficient de qualit Q = fo/B = 5,5

  • jean-philippe muller Filtrage numrique

    13- Exemple de rponse harmonique

    21+= nnn xxyOn sintresse un filtre moyenneur sur deux valeurs, la frquence dchantillonnage tant de fe = 1 kHz :

    TejTep eez ==2

    1)(

    1+= zzT 2)sin()cos(1

    21

    )( TejTeejTTej +=+=

    on travaille plus volontiers avec la frquence f :

    fc0

    Limite dutilisationmodule

    2

    )2sin()2cos(1)( fe

    fjfef

    jfT +

    =1

    0,707

    le module de la transmittance scrit :f

    fe/2 fe

    2

    )2cos(22

    2

    )2sin()2cos(1)(

    22

    fef

    fef

    fef

    jfT +

    =+

    +

    =Diagramme de Bode du filtre moyenneurphase

    fe/2

    et largument :

    +==

    )2cos(1

    )2sin())(arg(

    feffef

    arctgjfT

    f0

    - 90

    la bande des frquences utiles va de 0 fe/2 = 500 Hz le filtre est un filtre passe-bas la frquence de coupure dtermine graphiquement est denviron fc = 250 Hz la courbe de phase est linaire

  • jean-philippe muller Filtrage numrique

    14- Synthse par la transforme bilinaire

    Il existe diffrentes techniques possibles pour raliser des filtre numriques qui rpondent une spcification donne :

    nous avons dj vu la mthode par identification de la rponse indicielle ou impulsionnelle la mthode de la transforme bilinaire permet de raliser le filtre numrique quivalent un filtre analogique donn dans la pratique, les filtres sont labors par des logiciels de synthse auxquels il suffit de fournir les caractristiques souhaites

    Mthode de la transforme bilinaire :

    on veut raliser un filtre ayant une frquence caractristique fo on calcule une pulsation fictive a = tg(fo/fe) on crit T(p) du filtre ayant comme pulsation caractristique a on fait p = (z-1)/(z+1) pour obtenir T(z)

    Ao

    fc

    0,707.Ao

    Exemple : synthse dun filtre passe-bas du premier ordre

    11 .2273,0.2273,0.545,0 ++= nnnn xxyy

    frquence de coupure fo = 1 kHz frquence dchantillonnage fe = 11 kHz pulsation fictive a = tg(fo/fe) = 0,2936265

    T(p) scrit :

    T(z) scrit :

    do lalgorithme :

    pappT .4,31

    111)( +=+

    =

    1

    1

    .4,24,41

    4,24,41

    11.4,31

    1)(

    +=+=++

    = zz

    zz

    zzzT

    la bande des frquences utiles va de 0 fe/2 = 5500 Hz le filtre est un filtre passe-bas la frquence de coupure est denviron fc = 1000 Hz la transmittance en continu est de Ao=1

  • jean-philippe muller Filtrage numrique

    15- Outils de synthse de filtres FIR

    Ces outils crits par J. Taft permettent de synthtiser des filtres passe-bas, passe-haut, passe-bande et rjecteurs jusquau 36me ordre.

    tous les filtres obtenus sont des filtres non rcursifs ou rponse impulsionnelle finie pour ces filtres la sortie un instant donn ne dpend que de lentre et des entres prcdentes ils sont toujours stables

    1z

    iziHzHHzT +++= ).(...).1()0()( 1Algorithme innnn xiHxHxHy +++= ).(...).1().0( 1

    brpassEbapassEhipassElopassE+ phase linaire, trs bonne attnuation

    drivateurrjecteur dharmoniquesretard et

    en peigneFiltres spciaux

    brpassWbapassWhipassWlopassW+ phase linaire, bonne attnuation- transitions assez douces

    brpassNbapassNhipassNlopassN+ meilleure attnuation- ondulations plus fortes

    brpassbapasshipasslopass+ faible ondulation- phase non linaire, attnuation moyenne

    Coupe-bandePasse-bandePasse-hautPasse-basFiltres classiques

    Transmittance

    H(1)

    1z 1zx(n-1)x(n) x(n-q)

    H(2) H(q)H(0) H(q-1)

    y(n)

    Frquence normalise : Fc = fc/fe (passe-bas, passe-haut) et Fc = f0/fe (passe-bande, rjecteur)

  • jean-philippe muller Filtrage numrique

    16- Outils de synthse de filtres IIR

    Ces outils crits par J. Taft permettent de synthtiser des filtres du 2me au 12me ordre par mise en cascade de cellules du 2me ordre.

    Pour une cellule du second ordre :

    22

    11

    22

    110

    ..1..

    )(

    ++++= zazazbzbbGzT)...(.. 221102211 +++= nnnnnn xbxbxbGyayayAlgorithme : Transmittance :

    Exemple de ralisation en cellule biquad :

    ne ncessite que 2 mmoires structure peu sensible aux arrondis sur les coefficients

    brcauerbacauerhicauerlocauerCauer : coupure trs raide, ondulations de gain paramtrables

    brchebybachebyhichebylochebyChebichev : ondulations de gain, mais coupure plus raide

    brbutterbabutterhibutterlobutterButterworth : gain plat dans la bande passante, coupure correcte

    Coupe-bandePasse-bandePasse-hautPasse-basType

    Frquence normalise : Fc = fc/fe (passe-bas, passe-haut) et Fc = f0/fe (passe-bande, rjecteur)

  • jean-philippe muller Filtrage numrique

    17- Exemple de ralisation de filtre numrique

    module de filtrage numrique frquence maximale Fmax = 20 kHz passe-haut, passe-bas, passe-bande, rjecteur algorithmes de filtrage en mmoire Flash interface pour programmation et afficheur LCD

  • jean-philippe muller Filtrage numrique

    Physique applique

    Parapentistes au Markstein (Vosges)

    FINReproduction interdite sans autorisation pralable.