92
Algorithmes pour le Traitement Numérique du Signal Olivier VENARD ST4-SIG2 Année scolaire : 2009-2010

Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

  • Upload
    lynhan

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Algorithmes pour le Traitement Numérique du Signal

Olivier VENARD

ST4-SIG2

Année scolaire : 2009-2010

Page 2: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Olivier VENARD- 2010

Page 3: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Table des matières

I Introduction 71 Implantation logicielle et/ou matérielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.1 Critères de qualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2 Structure d’implantation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.3 Puissance de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Réalisation de systèmes discrets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

II Filtres Numériques 111 Filtres FIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.1 Structure directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2 Structure symétrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.3 Structure cascade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.4 Réalisation récursive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Filtres IIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.1 Formes directes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.2 Graphe de flot de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.3 Décomposition cascade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3 Structure couplée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Algorithme de GOERTZEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.1 Calcul de la réponse impulsionnelle d’un résonnateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.2 Amplitude du signal à la sortie du résonnateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

III Quantification et Stabilité 271 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Modélisation du bruit de quantification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Effets de la quantification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Quantification des coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.1 Position des pôles et des zéros après quantification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.2 Quantification et stabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.3 Variance de fonction de transfert en fonction de la quantification des coefficients . . . . . . . . . . . . . 314.4 Sensibilité des pôles et des zéros à la quantification des coefficients . . . . . . . . . . . . . . . . . . . . 32

5 Quantification des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.1 Cycles limites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

6 Mise à l’échelle et ordonnancement des cellules dans une structure cascade . . . . . . . . . . . . . . . . . . . . 386.1 Appariement des pôles et des zéros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.2 Facteur d’échelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.3 Bruit de calcul dans un filtre récursif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.4 Ordonnancement des cellules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.5 Rapport signal sur bruit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

IV Traitement multicadence 431 Suréchantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

1.1 Transformée en Z du signal suréchantillonné . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441.2 Identité remarquable du suréchantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461.3 Décomposition polyphase, cas du suréchantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2 Décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.1 Transformée en Z du signal décimé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.2 Identité remarquable de la décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

1

Page 4: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

2 TABLE DES MATIÈRES

2.3 Décomposition polyphase, cas de la décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.4 Exemple d’application : le convertisseur Sigma-Delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3 Commutativité de la décimation et du suréchantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 Changement de fréquence d’échantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.1 Principe général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.2 Implantation polyphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5 Banc de filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555.1 Quelques propriétés de la transformée en Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555.2 Banc de filtres à 2 canaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565.3 Banc de filtres multicadence à 2 canaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565.4 Filtres miroirs en quadrature (QMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585.5 Filtre conjugués en quadrature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

V Transformée en ondelettes 611 Banc de filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 Filtres de Daubechies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

2.1 Calcul des coefficients du filtre demi bande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622.2 Calcul des coefficients des filtres d’analyse et de synthèse . . . . . . . . . . . . . . . . . . . . . . . . . 622.3 Implantation des bancs de filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3 Lifting Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.1 Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.2 Décomposition polyphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.3 Exemple de factorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

VI Transformée de Fourier rapide 731 Algorithme de COOLEY-TUCKEY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

1.1 Calcul du nombre d’opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742 Décimation en temps et fréquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

2.1 TFD de taille 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762.2 Décimation en temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762.3 Décimation en fréquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772.4 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782.5 Réalisation complète de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3 Dérivation algébrique de l’algorithme en base 2 avec décimation en temps (P=2 et Q=N/2) . . . . . . . . . . . . 813.1 1ère étape de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

4 Bruit de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834.1 Facteur d’échelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834.2 Rapport signal sur bruit de quantification pour une TFD . . . . . . . . . . . . . . . . . . . . . . . . . . 844.3 Influence du facteur d’échelle sur le RSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844.4 Rapport signal sur bruit de quantification pour une TFR . . . . . . . . . . . . . . . . . . . . . . . . . . 854.5 Réalisation de la TFR en virgule flottante par bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5 Convolution par traitement par bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865.1 Implantation de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Olivier VENARD- 2010

Page 5: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Table des figures

I.1 Structure parallèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8I.2 Structure cascade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8I.3 Briques de base pour les algos de TNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

II.1 Structure directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11II.2 Étape de réalisation d’un filtre à réponse impulsionnelle finie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12II.3 Multiplieur-accumulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13II.4 Gestion du tableau de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13II.5 Étape de réalisation d’un filtre à réponse impulsionnelle finie à l’aide d’un multiplieur accumulateur . . . . . . . 14II.6 Structure symétrique pour un nombre pair de coefficients. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15II.7 Structure cascade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16II.8 Stucture cascade symétrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17II.9 Filtre moyenneur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17II.10 Forme directe I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18II.11 Structure directe II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19II.12 Réseau correspondant à la forme directe II et matrice correspondante . . . . . . . . . . . . . . . . . . . . . . . . 19II.13 Matrice transposée et Réseau correspondant obtenu (forme directe transposée II) . . . . . . . . . . . . . . . . . 20II.14 Forme directe transposée II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20II.15 Structure directe transposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20II.16 Structure couplée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22II.17 Résonnateur à coefficient complexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23II.18 Résonnateur avec partie récusrsive à coefficients réels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

III.1 Erreur d’arrondi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28III.2 Échantillonnage du plan complexe pour cellule d’ordre 2 implantée sous forme directe . . . . . . . . . . . . . . 30III.3 Échantillonnage du plan complexe pour une structure couplée . . . . . . . . . . . . . . . . . . . . . . . . . . . 30III.4 Triangle de stabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31III.5 Sensibilité de la fonction de transfert à la quantification des coefficients en fonction de la structure d’implantation 34III.6 Sources de bruit dans le cas d’une structure récursive d’ordre 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 35III.7 Source de bruit équivalente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35III.8 Phénomène de bande morte equation (III.27), la réponse idéale est représentée en pointillé. . . . . . . . . . . . . 37III.9 Phénomène de bande morte equation (III.28), la réponse idéale est représentée en noir, la réponse pour une

précision de 9 bits est en gris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37III.10Suppression du phénomène de bande morte en utilisant une troncature vers 0. . . . . . . . . . . . . . . . . . . . 38III.11Circularité de la représentation en complément à 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38III.12Appariement des pôles et des zéros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39III.13Cellule directe de type II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39III.14Structure directe de type II avec mise à l’échelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

IV.1 Structure d’un modulateur DQPSK en bande de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43IV.2 représentation du suréchantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44IV.3 Suréchantillonnage d’un facteur 3 dans le domaine temporel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44IV.4 Suréchantillonnage dans le domaine fréquentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45IV.5 Filtre d’interpolation après le suréchantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45IV.6 Signal suréchantillonné et interpolé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45IV.7 Filtre d’interpolation idéal et filtre en cosinus surélevé pour un rapport Fe/Fs = 16 (fréquence d’échantillonnage

et fréquence symbole) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46IV.8 Identité remarquable suréchantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3

Page 6: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

4 TABLE DES FIGURES

IV.9 Structure polyphase pour le suréchantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47IV.10Modèle du commutateur pour l’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47IV.11Opération de décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48IV.12 représentation de la décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48IV.13Étape de la décimation par 3 d’un signal dans le domaine temporel . . . . . . . . . . . . . . . . . . . . . . . . . 49IV.14Étape de la décimation d’un signal par 3 dans le domaine fréquentiel . . . . . . . . . . . . . . . . . . . . . . . . 50IV.15Filtre anti-repliement avant décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50IV.16 Identité remarquable de la décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50IV.17Décomposition polyphase pour la décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51IV.18Décomposition polyphase pour la décimation après translation de ladécimation vers l’entrée . . . . . . . . . . . 52IV.19Modèle du commutateur pour la décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52IV.20Filtrage du bruit de quantification pour un convertisseur Σ∆ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52IV.21Filtres moyenneurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53IV.22Structure récursive pour un filtre moyenneur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53IV.23Filtre moyenneur de longueur M suivi d’une décimation par M . . . . . . . . . . . . . . . . . . . . . . . . . . 53IV.24Application de l’identité remarquable pour la décimation (figIV.16) . . . . . . . . . . . . . . . . . . . . . . . . 53IV.25Suréchantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53IV.26Décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54IV.27Système complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54IV.28Structure SFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54IV.29Struture DFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54IV.301ère étape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54IV.31Structure finale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55IV.32 transformation passe-bas passe-haut par modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56IV.33Banc de filtres à 2 canaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56IV.34Type de gabarit des filtres du banc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57IV.35Banc de filtres à 2 canaux multicadence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57IV.36Banc de filtres miroirs en quadrature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59IV.37Branche passe-bas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59IV.38Branche passe-haut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59IV.39Structure résultante pour le banc d’analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59IV.40Banc d’analyse et de synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

V.1 bloc de base de la transformée en ondelettes, algorithme de Mallat. . . . . . . . . . . . . . . . . . . . . . . . . . 61V.2 gain de P (z) et P (−z) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63V.3 Racines de P (z) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63V.4 racines de H0(z) et de F0(z) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64V.5 Gain de H0(z) et H1(z) dans le cas orthogonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64V.6 racines de H0(z) et de F0(z) dans le cas bi-orthogonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65V.7 Gain du banc d’analyse et du banc de synthèse dans le cas bi-orthogonal . . . . . . . . . . . . . . . . . . . . . . 65V.8 Gains des filtres du banc d’analyse et du banc de synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65V.9 Propriété remarquable de la décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66V.10 Structure polyphase pour le banc d’analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66V.11 Identité remarquable pour l’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66V.12 Structure polyphase du banc de synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67V.13 Réseau correspondant à la factorisation de la matrice identité (V.28) . . . . . . . . . . . . . . . . . . . . . . . . 68V.14 Réseau correspondant à la factorisation de la matrice identité (V.29) . . . . . . . . . . . . . . . . . . . . . . . . 68V.15 Réseau correspondant à l’opération de «lifting» et de «lifting» inverse (V.30) . . . . . . . . . . . . . . . . . . . 69V.16 Structure d’un étage de transformée en ondelette 5-3 après factorisation de la matrice polyphase . . . . . . . . . 71V.17 Dépendance des données pour le banc d’analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71V.18 Dépendance des données pour le banc de synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

VI.1 Algorithme de COOLEY-TUCKEY (P = 3, Q = 2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75VI.2 Structure papillon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76VI.3 Première étape de l’algorithme avec une décimation temporelle, N = 8 . . . . . . . . . . . . . . . . . . . . . . 76VI.4 Seconde étape de l’algorithme avec une décimation temporelle, N = 8 . . . . . . . . . . . . . . . . . . . . . . . 77VI.5 Structure complète avec décimation en temps pour N = 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77VI.6 Première étape de l’algorithme avec une décimation fréquentielle, N = 8 . . . . . . . . . . . . . . . . . . . . . 77VI.7 Seconde étape de l’algorithme avec une décimation fréquentielle, N = 8 . . . . . . . . . . . . . . . . . . . . . . 78

Olivier VENARD- 2010

Page 7: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

TABLE DES FIGURES 5

VI.8 Structure complète avec décimation en fréquence pour N = 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 78VI.9 Structure papillon pour la décimation en temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78VI.10Structure papillon pour la décimation en fréquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78VI.11Décomposition complète pour N = 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79VI.12Ordonnancement des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80VI.13Organigramme d’implantation d’une TFR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81VI.141ère étape de la décomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83VI.15Modèle du bruit de calcul pour l’évaluation d’une TFR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83VI.16Contribution des papillons à une sortie X(k) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85VI.17Convolution Linéaire (Les parties grisées représentent le support de chacune des séquences) . . . . . . . . . . . 87VI.18Convolution de deux signaux N périodiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87VI.19Convolution circulaire de longueur N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88VI.20Convolution linéaire à l’aide d’une convolution circulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88VI.21Représentation de l’algorithme «overlap and add» au cours du temps . . . . . . . . . . . . . . . . . . . . . . . . 89VI.22Algorithme «overlap and add» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Olivier VENARD- 2010

Page 8: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

6 TABLE DES FIGURES

Olivier VENARD- 2010

Page 9: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Chapitre I

Introduction

Ce cours porte sur les techniques d’implantation numérique de fonction de traitement de signal. Nous étudierons deux typesde fonctions, les systèmes linéaires et invariants dans le temps (LIT) et la transformée de FOURIER. Ces deux types de fonctionscorrespondent à deux des principales classes de traitement que l’on peut rencontrer en TNS :

– Le traitement au fil de l’eau, échantillon par échantillon, pour le filtrage numérique. Le temps de traitement nécessaire pourl’algorithme doit alors être inférieur à la période d’échantillonnage Te.

– le traitement par bloc, tableau d’échantillon par tableau d’échantillon, comme la transformée de FOURIER rapide (TFR),par exemple. Dans ce cas la limite supérieure du temps de traitement est N · Te si N est la taille du tableau d’échantillons.

Cette différence de structure d’implantation induit un temps de latence 1 différent :– Il correspond à la durée du traitement ou plus généralement à une période d’échantillonnage dans le cas du traitement au

fil de l’eau,– il est égale à la durée d’acquisition d’un tableau (N · Te) dans le cas du traitement par bloc.Ces deux principes d’implantation ne sont pas hermétiquement cloisonnés et du fait du théorème de convolution on peut se

douter qu’il sera possible d’implanter un algorithme de filtrage sous la forme d’un traitement par bloc.

1 Implantation logicielle et/ou matérielle

l’implantation logicielle conduit «naturellement» à une structure de boucle du type «FOR» ou «WHILE» où les ressourcesmatérielles sont réutilisées et conduit donc à un séquencement des opérations élémentaires alors que l’implantation matérielleconduit à une implantation déroulée parallèle ou série.

1.1 Critères de qualité

L’étude de l’implantation d’algorithmes conduit à les comparer et donc à avoir des critères de comparaison et de qualité. Lescritères qui vont conduire à une modification de l’implantation sont :

– La complexité de calcul,– Le coût mémoire,– Les effets induits par la quantification (précision finie de la machine de calcul).– La minimisation des chemins critiques.

Complexité de calcul

La complexité de calcul se résume en général au nombre d’opérations, toutefois l’ «unité» de quantification de cette com-plexité diffère d’une cible à l’autre et dépendra en quelque sorte de la granularité d’opération de celle-ci :

– Dans le cas d’une structure micro-programmée, (Processeur de Traitement du signal, DSP), la granularité correspond àl’opération que l’on peut réaliser en un cycle machine ; en l’occurence, indifférement, une multiplication-accumulationMAC, une multiplication ou une addition.

– Dans le cas d’une implantation circuit, c’est la surface silicium qui sera importante. Une multiplication aura un coûtbeaucoup plus élevé qu’une addition, en fonction de l’algorithme utilisé pour implanter cette multiplication, de la largeurdu chemin de donnée ...

1. Le temps de latence est le temps entre l’arrivée du premier échantillon et la restitution du premier résultat.

7

Page 10: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

8 Introduction

Coût mémoire

Le coût mémoire caractérise essentiellement la quantité de mémoire nécessaire à l’éxécution d’un algorithme, cependantsa technique d’accès, différente suivant la cible pourra avoir des conséquences sur le temps de traitement. Du point de vuearchitecture d’accès mémoire on rencontre deux types de DSP. Dans le premier type le bus mémoire accède directement auchemin de données le temps d’accès aux données est donc inclus dans le temps d’exécution de l’opération. Dans le second cas,que l’on nomme généralement architecture orienté registre, le chemin de donnée n’est accédé qu’au travers de registre. Ainsi letemps d’accès aux données pourra induire un temps de cycle supplémentaire.

longueur finie des mots

la longueur finie des mots pour représenter les données en mémoire contraint la dynamique (bits de poids forts) et la précision(bits de poids faibles).

Des algorithmes conduisants à des structures équivalentes pour une arithmétique en précision infinie pourront présenter descomportements profondément différents, en terme de sensibilité dans le cas d’une arithmétique en précision finie.

1.2 Structure d’implantation

Outre les critères de «qualité» définis ci-dessus , d’autre considérations peuvent être prises en compte dans le choix d’unalgorithme, notamment l’architecture de la cible :

– Structure parallèle conduisant à une structure d’algorithme additive H(z) = H1(z) + H2(z) + H3(z) (figure I.1). Cetteapproche utilise la technique de décomposition en éléments simples.

– Structure cascade ou pipeline supposant une forme multiplicativeH(z) = H1(z)·H2(z)·H3(z) (figure I.2). Cette approcherepose sur une factorisation.

FIGURE I.1 – Structure parallèle

FIGURE I.2 – Structure cascade

1.3 Puissance de calcul

La complexité de calcul d’un traitement peut être évaluée en fonction de plusieurs paramètres. Le premier concerne lapériodicité de calcul Tc qui peut correspondre à la période d’échantillonnage dans le cas d’un traitement au fil de l’eau ou à unmultiple de celle-ci dans le cas d’un traitement par bloc. Le second paramètre concerne le nombre d’opération Nop nécessaire

Olivier VENARD- 2010

Page 11: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Introduction 9

à la réalisation de l’algorithme. Le troisième correspond au nombre de voie Nv qu’il est nécessaire de traiter en parallèle. lapuissance de calcul Pc nécessaire est alors donné par l’expression suivante :

Pc =Nv ·Nop

Tc. (I.1)

Si on appelle B la largeur de bande du signal, on doit avoir la fréquence d’échantillonnage Fe > 2B. En introduisant cetteinégalité dans (I.1) on obtient la borne inférieure sur la puissance de calcul nécessaire :

Pc > 2B ·Nv ·Nop. (I.2)

Dans le cas d’un traitement par bloc pour un tableau de N échantillons, l’inégalité devient :

Pc >Nv ·NopN · Tc

= 2BNv ·Nop

N. (I.3)

2 Réalisation de systèmes discretsUn système LIT est caractérisé par une équation aux différences à coefficients constants :

y(n) = −N∑k=1

aky(n− k) +M∑k=0

bkx(n− k) (I.4)

qui correspond, après transformée en Z à la fonction de transfert :

Y (z) =

N∑k=0

bkz−k

1 +N∑k=1

akz−k

(I.5)

À partir de l’équation (I.5), on détermine la position des pôles et des zéros de la fonction de transfert qui sont des fonctions desak et des bk. On détermine la réponse en fréquence du système à partir de la position des pôles et des zéros, en évaluant (I.5) surle cercle unité (z = ejω).

(a) Retard

(b) Arc

(c) Multiplieur (d) Additionneur

FIGURE I.3 – Briques de base pour les algos de TNS

On réalise l’implantation matérielle ou logicielle à partir des équations (I.4) ou (I.5). L’équation (I.4), qui représente ledéroulement temporel du calcul permettant d’évaluer la sortie y(n), peut être reformulée de diffèrentes manières chacune corres-pondant à une implantation (algorithme) différente. Ces différentes réalisations du système pourront aussi être avantageusementreprésentée (pour la compréhension) sous forme de diagramme bloc consistant en l’interconnection des «briques» de base pourles algorithmes de TNS (figure I.3) que sont :

– Les retards (ou délais) correspondant à une sortie égale à l’entrée retardée de k périodes d’échantillonnage que l’on notey(n) = x(n− k) (cf. figure I.3(a)).

– Les arcs correspondant à une sortie égale à l’entrée, notée y(n) = x(n) (cf. figure I.3(b)).– Les multiplieurs avec le cas particulier de la multiplication par une constante scalaire ou complexe, notée y(n) = a · x(n)

(cf. figure I.3(c)).– Et enfin les additionneurs réalisant cette opération arithmétique entre deux, ou plus, entrées, notée z(n) = x(n) + y(n)

(cf. figure I.3(d)).

Olivier VENARD- 2010

Page 12: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

10 Introduction

Olivier VENARD- 2010

Page 13: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Chapitre II

Filtres Numériques

Dans ce chapitre seront présentées les structures «classiques» des filtres numériques, ainsi que les problèmes de quantificationassociés. Les structures treillis, moins classiques, seront présentées dans le chapitre suivant.

1 Filtres FIRUn filtre FIR est décrit par une équation aux différences non récursive :

y(n) =N−1∑k=0

bkx(n− k) (II.1)

ou par sa fonction de transfert en z :

H(z) =N−1∑k=0

bkz−k (II.2)

La réponse impulsionnelle d’un filtre FIR est donc identique à ses coefficients. Dans ce chapitre nous présenterons deux tech-niques d’implantation :

– la structure directe,– la structure cascade.

1.1 Structure directeLa structure directe (figure II.1) découle directement de l’équation aux différences (II.1) ou, de manière équivalente pour un

filtre FIR, du produit de convolution :

y(n) =N−1∑k=0

h(k)x(n− k). (II.3)

FIGURE II.1 – Structure directe

Cette structure nécessite N − 1 cases mémoire et a une complexité de calcul de N multiplications et N − 1 additions paréchantillons de sortie.

Dans l’équation (II.1), y[n] représente la sortie du filtre, x[n] l’entrée du filtre et la suite b[] représente les coefficients dufiltre. Nous avons ici un filtre d’ordre N − 1.

11

Page 14: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

12 Filtres Numériques

(a) Chaîne de retards

x[n]x[n− 1]· · ·

x[n−N + 1]

(b) Données four-nies par le traite-ment

(c) Produit terme à terme

x[n] · b0x[n− 1] · b1· · ·

x[n−N + 1] · bN−1

(d) Données fournies par letraitement

(e) Somme des produit terme à termey[n] =

N−1∑k=0

b[k]x[n− k]

(f) Données fournies par le trai-tement

FIGURE II.2 – Étape de réalisation d’un filtre à réponse impulsionnelle finie

L’implantation d’un filtre numérique dont le comportement est décrit par l’équation aux différences (II.1) se fait en implantantles calculs décrit par cette équation. Pour ce faire nous avons besoin d’une chaîne de N − 1 retards qui permettent de conserveren mémoire lesN−1 valeurs de x[] précédent l’instant courant n. Cela est réalisé à l’aide d’une cascade de case mémoire (figureII.2(a)). Chaque case mémoire est représentée par un symbole z−1 qui est la transformée en z d’un filtre ayant comme réponseimpulsionnelle δ[n− 1] c’est à dire un filtre correspondant à un retard pur d’une période d’échantillonnage.

Il faut ensuite réaliser le produit scalaire entre la suite de coefficients b[] et la suite de donnée contenue dans la chaîne deretards x[]. Cela se fait en deux étapes, on effectue les produits terme à terme entre la suite de coefficients 1 et la suite de donnée :b[k]x[n−k] pour k = 0 · · ·N −1, (figure II.2(c)), la multiplication par une constante est représentée par un triangle. On effectueensuite la somme des produits terme à terme. Pour chaque nouvel échantillon x[n] en entrée, l’ensemble de ces opérations estréalisé afin de fournir un nouvel échantillon y[n] en sortie.

Cette manière de conduire les calculs suppose pour l’étape fig.II.2(c) que l’on ait N multiplieurs en parallèle. Sur les proces-seurs et notamment les processeurs de traitement du signal on dispose en général d’un multiplieur intégré au sein d’un structureappelée multiplieur-accumulateur(figure II.3), qui comme son nom l’indique permet de réaliser une multiplication d’en ajouterle résultat au contenu d’un registre appelé accumulateur et de stocker le résultat de cette somme dans ce même accumulateur.

Le déroulement des calculs à l’aide d’une structure «multiplieur-accumulateur» est représenté figure II.5. Les étapes decalculs sont les suivantes :

– Les coefficients du filtre (la suite bk) sont contenus dans un tableau de N cases mémoires (mémoire1 par exemple sur lafigure II.3).

– Les données du filtre (la suite x[]) sont contenues dans un tableau de N cases mémoires (mémoire2 par exemple sur lafigure II.3).

Le calcul est alors conduit de la manière suivante :

1. Le nouvel échantillon x[] est rangé au début du tableau de donnée et l’accumulateur est mis à 0.

1. Les coefficients sont eux aussi contenu dans des cases mémoires qui resteront constantes dans le temps

Olivier VENARD- 2010

Page 15: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Filtres Numériques 13

FIGURE II.3 – Multiplieur-accumulateur

(a) Vieillisement du tableau de donnée (b) Tableau de donnée après vieilli-sement

FIGURE II.4 – Gestion du tableau de données

2. Boucle de traitement sur le nombre de coefficients (N ), compteur de coefficients est mis à 0.

(a) Multiplication de la donnée et du coefficient courants et accumulation au résultat précédent dans l’accumulateur.

(b) Si encore des coefficients à traiter, incrémentation du compteur de coefficients et retour à l’étape 2a ; sinon aller àl’étape 3.

3. Le contenu de l’accumulateur est transféré vers la case mémoire devant contenir le résultat du filtrage (y par exemple).

4. Le tableau de données est préparé pour le prochain échantillon x[]. C’est l’étape de vieillissement des données (figure II.4) :on recopie le contenu de chaque case mémoire dans la case mémoire immédiatement supérieure en partant de l’adresseN − 1, l’adresse 1 se trouve ainsi disponible pour recevoir le prochain échantillon en entrée du filtre.

5. on retourne à l’étape 1 en attente du prochain échantillon x[].

Olivier VENARD- 2010

Page 16: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

14 Filtres Numériques

(a) premier produit, accumulateur préalablement mis à 0 (b) second produit, accumulation avec le résultat précédent

(c) troisième produit, accumulation avec le résultat précédent (d) Nème produit, accumulation avec le résultat précédent

FIGURE II.5 – Étape de réalisation d’un filtre à réponse impulsionnelle finie à l’aide d’un multiplieur accumulateur

Olivier VENARD- 2010

Page 17: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Filtres Numériques 15

1.2 Structure symétriqueLes filtres FIR sont souvent caractérisées par une phase linéaire, propriété qui se traduit par une symétrie ou une anti-

symétrie des coefficents qu’il est possible d’exploiter pour réduire le coût en nombre d’opérations. Cette propriété s’exprimepar : h(k) = ±h(N − 1− k). Le produit de convolution s’écrit alors dans le cas d’un nombre pair de coefficients :

y(n) =

N2 −1∑k=0

h(k)x(n− k)±N2 −1∑k=0

h(N − 1− k)x(n− (N − 1− k)).

=

N2 −1∑k=0

h(k)(x(n− k)± x(n− (N − 1− k)))

(II.4)

Ce qui conduit à la structure représentée figure II.6 :

FIGURE II.6 – Structure symétrique pour un nombre pair de coefficients.

Cette implantation nécessite toujoursN−1 cases mémoire mais la complexité de calcul est réduite àN/2−1 multiplicationset N additions. De plus la longueur du chemin critique est divisée par 2. Le gain est donc proportionnel à la longueur du filtrequi est souvent importante dans le cas des filtres FIR.

1.3 Structure cascadeLa structure cascade est directement dérivée de la mise sous forme produit de la fonction de transfert :

H(z) =N−1∑k=0

bkz−k =

K∏k=1

Hk(z), (II.5)

avec Hk(z) = bk0 + bk1z−1 + bk2z

−2 si les cellules Hk sont d’ordre 2. On a alors K = N2 cellules cascadées. Le coefficient b0

de la fonction de transfert initiale (H(z)), correspondant au gain du filtre peut être réparti sur tout les étages :

b0 =K∏k=1

bk0,

ou affecté à une seule cellule, les autres cellules étant caractérisées par des polynomes normalisés (bk0 = 1).Ce type de décomposition (figure II.7) aboutit donc à K (K = N/2) cellule d’ordre 2, demandant chacune 3 multiplications

et 2 additions. Soit donc 3K multiplications et 2K additions au lieu de, respectivement 2K et 2K − 1 dans le cas de la structuredirecte.

Dans la mise en structure cascade, Il est toujours souhaitable de constituer des cellules du 2nd ordre en appariant les racinescomplexes conjuguées, de manière à obtenir des coefficients réels. Cependant une des caractéristiques de certains filtres FIR, laphase linéaire, peut être dégradée par la conjonction de la factorisation en cellule du 2nd ordre et la représentation en précisionfinie des coefficients de ces cellules, qui entraîne la perte de la propriété de (anti)symétrie des coefficients (condition nécessaireet suffisante pour une phase linéaire).

Dans le cas où le filtre est à phase linéaire , on peut exploiter la (anti)symétrie des coefficients afin d’obtenir une brique debase d’ordre 4 ayant une (anti)symétrie de coefficients. Cette nouvelle structure a aussi pour conséquence de réduire le nombred’opérations par deux.

Soit la fonction de transfert en z d’un filtre FIR :

H(z) =N−1∑k=0

h(k)z−k

Olivier VENARD- 2010

Page 18: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

16 Filtres Numériques

FIGURE II.7 – Structure cascade

que l’on évalue en z−1

H(z−1) =N−1∑k=0

h(k)zk.

On multiplie chaque côté de l’égalité par z−(N−1)

z−(N−1)H(z−1) =N−1∑k=0

h(k)zk−(N−1)

et l’on envisage séparement les deux cas, symétrique et anti-symétrique :

Cas symétrique, h(k) = h(N − 1− k)

z−(N−1)H(z−1) =N−1∑k=0

h(N − 1− k)zN−1−k−(N−1) =N−1∑k=0

h(N − 1− k)z−k,

z−(N−1)H(z−1) =N−1∑k=0

h(k)z−k = H(z).

Cas anti-symétrique, h(k) = −h(N − 1− k)

z−(N−1)H(z−1) =N−1∑k=0

−h(N − 1− k)zN−1−k−(N−1),

z−(N−1)H(z−1) = −N−1∑k=0

h(k)z−k = −H(z).

Dans le cas d’un filtre à (anti)symétrie de coefficients, un zéro de H(z) est aussi un zéro de H(z−1). Si z0 et z∗0 sont des racinescomplexes conjuguées de H(z), elles le sont aussi de H(z−1), de même bien sûr que 1

z0et 1

z∗0. On peut alors constituer une

cellule d’ordre 4 ayant ces quatre racines, possédant une (anti)symétrie de coefficients, donc une phase linéaire :

Hk(z) = ck0(1− zkz−1)(1− z∗kz−1)(

1− z−1

zk

)(1− z−1

z∗k

)= ck0 + ck1z

−1 + ck2z−2 + ck1z

−3 + ck0z−4.

Olivier VENARD- 2010

Page 19: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Filtres Numériques 17

En adoptant la structure exploitant la (anti)symétrie des coefficients (figure II.8), on obtient pour chaque cellule 3 multiplicationset 4 additions. Soit un filtre d’ordre N avec N = 4K ′ et K ′ = K/2, on a alors (3K)/2 multiplications et 2K additions. Cequi divise par deux le nombre d’opérations nécessaires par rapport à la structure où l’on n’exploite pas la (anti)symétrie descoefficients (figure II.7). Cela permet en plus de préserver la linéarité de la phase.

FIGURE II.8 – Stucture cascade symétrique

1.4 Réalisation récursiveLe cas des filtres moyenneurs où tous les coefficients sont égaux en général à 1 permet une réalisation récursive d’un filtre

FIR. Soit le filtre moyenneur dont la transformée en z est donnée par :

H(z) =1N

N−1∑k=0

z−k (II.6)

La structure directe de ce filtre est représentée figure II.9(a)

(a) Structure directe (b) Structure récursive

FIGURE II.9 – Filtre moyenneur

En exprimant la somme discrète sous forme rationnelle on obtient :

H(z) =1N

1− z−N

1− z−1, (II.7)

ce qui aboutit à une structure comportant une partie directe et une partie récursive. Le diagramme bloc correspondant est repré-sentée figure II.9(b). Cette transformation permet de passerN −1 additions à 2 additions, par contre elle induit 2 cases mémoiressupplémentaires : N dans la branche directe et 1 dans la branche récursive au lieu de N −1 dans la structure directe. L’autre grosavantage de cette structure est d’avoir un nombre d’opération indépendant de l’ordre du filtre.

Olivier VENARD- 2010

Page 20: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

18 Filtres Numériques

2 Filtres IIR

2.1 Formes directes

La fonction rationnelle en z qui caractérise un filtre IIR est donné par

H(z) =

M∑k=0

bkz−k

1 +N∑k=1

akz−k

, (II.8)

et peut être décomposée en deux systèmes cascades

H(z) = H1(z)H2(z)

avec H1(z) comportant les zéros de H(z),

H1(z) =M∑k=0

bkz−k,

et H2(z) comprenant les pôles de H(z),

H2(z) =1

1 +N∑k=1

akz−k

.

En ayantH2(z) en cascade avecH1(z) on obtient la forme directe I (figure II.10). Dans cette structure nous avonsN+M+1

FIGURE II.10 – Forme directe I

multiplications, M +N additions et M +N cases mémoires.Si maintenant on place en cascade H1(z) après H2(z), on obtient une structure qui utilise moins de mémoire. Dans ce cas la

partie récursive correspond à l’équation aux différences :

w(n) = x(n)−N∑k=1

akw(n− k),

w(n) devient l’entrée de H1(z), la sortie y(n) correspond alors à l’équation aux différences

y(n) =N∑k=0

bkw(n− k).

Nous aboutissons ainsi à la structure directe II (figure II.11). On a toujours M +N + 1 multiplications et M +N additions, maisseulement max{M,N} cases mémoires au lieu de M +N .

Nous verrons par la suite que les structures directes peuvent être extrêmement sensible à la quantification des coefficients.

Olivier VENARD- 2010

Page 21: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Filtres Numériques 19

FIGURE II.11 – Structure directe II

2.2 Graphe de flot de donnéesIl peut être intéressant pour manipuler les réseaux et notamment les transformer sans changer la relation entrée-sortie d’utiliser

les techniques et les méthodes de transformation associées aux graphes de flot de données. C’est ainsi que peuvent être dérivéesles structures transposées. La transposition d’un graphe opère les transformations suivantes :

– L’entrée devient la sortie et la sortie devient l’entrée,– Les directions des branches sont inversées et conservent la même transmittance,– Les additions deviennent des nœuds,– Les nœuds deviennent des additions.

Le théorème TELLENGEN nous dit alors que la fonction de transfert entrée-sortie demeure inchangée.Cette transformation peut aussi s’obtenir en partant d’une description matricielle du graphe de donnée. Cette matrice est

construite de la manière suivante :– Les entrées correspondant aux numéros de ligne correspondent aux numéros de nœud de l’entrée d’un arc du graphe de

flot de données,– Les entrées correspondant aux numéros de colonne correspondent aux numéros de nœud de la sortie d’un arc du graphe de

flot de donnée,– L’entrée de la matrice correspondant à ces coordonnées correspond à la transmittance de l’arc du graphe de flot de donnée.

En transposant cette matrice et en en déduisant la graphe correspondant, on obtient la même structure transposée que celleobtenue par la méthode précédente.

0 1 0 0 0 0 0 0 00 0 b0 0 z−1 0 0 0 00 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 00 0 0 −a1 0 b1 0 z−1 00 0 1 0 0 0 0 0 00 0 0 0 0 0 −a2 0 b2

FIGURE II.12 – Réseau correspondant à la forme directe II et matrice correspondante

En appliquant cette transformation à la forme directe II (figure II.11, on obtient la forme directe tranposée II (figure II.14).Si on écrit les équations aux différences régissant ce système pour N = M = 2 on obtient :

y(n) = w1(n− 1) + b0x(n),w1(n) = b1x(n)− a1y(n) + w2(n− 1),w2(n) = b2x(n)− a2y(n).

En remplaçant w1(n) et w2(n) par leurs valeurs il vient :

y(n) =2∑k=0

bkx(n− k)−2∑k=1

aky(n− k),

Olivier VENARD- 2010

Page 22: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

20 Filtres Numériques

0 0 0 1 0 0 01 0 0 0 0 0 00 b0 0 0 0 1 00 0 0 0 −a1 0 00 z−1 0 0 0 0 00 0 0 0 b1 0 00 0 0 0 0 0 −a2

0 0 0 0 z−1 0 00 0 0 0 0 0 b2

FIGURE II.13 – Matrice transposée et Réseau correspondant obtenu (forme directe transposée II)

FIGURE II.14 – Forme directe transposée II

qui est l’équation aux différences de départ. La relation entrée-sortie est donc bien inchangée. Cette transposition peut aussi avoirlieu pour les filtres FIR, on aboutit alors au diagramme bloc représenté figure II.15.

FIGURE II.15 – Structure directe transposée

2.3 Décomposition cascadeLa décomposition cascade consiste comme pour les filtres FIR à décomposer la fonction de transfert H(z) en un produit de

fonction de transfert Hk(z) généralement du second ordre dans le cas de racines complexes conjuguées.

H(z) =K∏k=1

Hk(z). (II.9)

avec

Hk(z) =bk0 + bk1z

−1 + bk2z−2

1 + ak1z−1 + ak2z−2,

etb0 = b10b20 . . . bK0.

Chaque bloc du second ordre peut être réalisé par une structure directe I ou II ou par une structure transposée II.La manière d’ordonner les cellules sera abordé dans le chapitre suivant.

Olivier VENARD- 2010

Page 23: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Filtres Numériques 21

3 Structure coupléeLa structure couplée s’applique à des cellules d’ordre 2 , donc après factorisation de la fonction de transfert globale (II.9).

H(z) =b0 + b1z

−1 + b2z−2

1 + a1z−1 + a2z−2=b0z

2 + b1z + b2z2 + a1z + a2

(II.10)

La démarche consiste ensuite à décomposer (II.10) en éléments simples, sous la forme :

H(z) = b0 +A

z − ρ+

A∗

z − ρ∗(II.11)

où (·)∗ correspond au complexe conjugué, ρ et ρ∗ sont les poles complexes conjugués de (II.10).

A =d0

2− j d0α1 + d1

2α2

avec

d0 = b1 − b0a1,

d1 = b2 − b0a2,

ρ = α1 + jα2.

La TZ de la sortie y(n) en fonction de l’entrée x(n) s’exprime alors par

Y (z) = H(z)X(z) = b0X(z) +A

z − ρX(z) +

A∗

z − ρ∗X(z) (II.12)

On pose

S(z) =A

z − ρX(z), (II.13)

qui correspond à l’équation aux différencess(n+ 1) = ρs(n) +Ax(n),

on a de mêmes∗(n+ 1) = ρ∗s∗(n) +A∗x(n)

en exprimant s(n), ρ et A sous forme complexe :s(n) = v1(n) + jv2(n),ρ = α1 + jα2,

A = q1 + jq2.

On obtient pour s(n+ 1) :

(v1(n+ 1) + jv2(n+ 1)) = (α1v1(n)− α2v2(n)) + j (α1v2(n) + α2v1(n)) + (q1 + jq2)x(n),

que l’on peut formuler sous forme matricielle :[v1(n+ 1)v2(n+ 1)

]=[α1 −α2

α2 α1

] [v1(n)v2(n)

]+[q1

q2

]x(n). (II.14)

En utilisant (II.12) et (II.13) la sortie temporelle du système devient :

y(n) = b0x(n) + s(n) + s∗(n)= b0x(n) + 2R{s(n)}

(II.15)

qui peut là encore s’écrire sous forme matricielle :

y(n) =[2 0

] [v1(n)v2(n)

]+ b0x(n) (II.16)

La représentation sous forme de bloc diagramme du système définit par l’équation d’état (II.14) et l’équation de sortie (II.16)est donné figure II.16.

L’intérêt de la structure couplée réside dans sa robustesse à la quantification des coefficients qui est obtenue au prix d’uncoût légèrement supérieur en nombre d’opération par rapport à une structure directe d’ordre 2 : 7 multiplications (et non 8, lamultiplication par 2 pouvant être effectuée par un simple décalage)et 5 additions au lieu de 5 multiplications et 4 additions.

Olivier VENARD- 2010

Page 24: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

22 Filtres Numériques

FIGURE II.16 – Structure couplée

4 Algorithme de GOERTZEL

L’algorithme de GOERTZEL correspond à une application de détection de fréquence, quand on ne s’intéresse pas à l’ensembledu spectre, mais seulement à quelques raies fréquentielles du signal comme dans le cas des signaux DTMF 2.

Cet algorithme va permettre de détecter une fréquence à l’aide d’un filtre résonnateur IIR. Son équation aux différences estdérivée à partir de l’équation de la transformée de FOURIER discrète :

X(k) =N−1∑n=0

x(n)e−j2πN kn

=N−1∑n=0

x(n)W−nkN ,

(II.17)

avec WN = ej2πN donc WNk

N = 1. On peut donc introduire ce terme unitaire en facteur dans l’expression (II.17) :

X(k) = WNkN

N−1∑n=0

x(n)W−nkN ,

=N−1∑n=0

x(n)W (N−n)kN .

(II.18)

Si on note X(k) = yk(m) avec m = N l’équation (II.18) se réécrit :

yk(m) =N−1∑n=0

x(n)W k(m−n)N , (II.19)

qui est l’expression du produit de convolution entre un signal de durée finie x(n), et un filtre de réponse impulsionnelle hk(n) =W knN u(n) 3. Ce filtre a pour transformée en Z :

Hk(z) =+∞∑n=0

WnkN z−n =

11−W k

Nz−1

(II.20)

avec comme rayon de convergence, |z| > 1. Cette transformée en Z correspond à un filtre récursif ayant un pôle en ωk = 2πk/Nqui a pour équation aux différences :

yk(n) = W kNyk(n− 1) + x(n), (II.21)

qui correspond à la structure représentée figure II.17.

2. numérotation téléphonique à fréquence vocale3. u(n) est la fonction échelon.

Olivier VENARD- 2010

Page 25: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Filtres Numériques 23

FIGURE II.17 – Résonnateur à coefficient complexe

Pour obtenir un dénominateur à coefficients réels, on le multiplie par un polynome ayant pour racine W−kN :

Hk(z) =1−W−kN z−1(

1−W kNz−1) (

1−W−kN z−1)

=1−W−kN z−1

1− 2 cos(2πk/N)︸ ︷︷ ︸(=αk)

z−1 + z−2.

(II.22)

L’équation aux différences pour la partie récursive est donc :

w(n) = x(n) + αkw(n− 1)− w(n− 2), (II.23)

et pour la partie directe :yk(n) = w(n)−W−kN w(n− 1). (II.24)

Comme on ne s’intéresse qu’à la valeur finale du calcul, la partie directe ne sera calculée que lors de la dernière itération, c’est àdire pour n = N − 1, alors que la partie récursive est évaluée pour n = 0 · · ·N − 1. On obtient donc la valeur correspondant à

FIGURE II.18 – Résonnateur avec partie récusrsive à coefficients réels

X(k) (II.17) en évaluant la partie directe de l’équation aux différences (II.24) à l’instant n = N − 1 :

X(k) = yk(N − 1) = w(N − 1)−W−kN w(N − 2). (II.25)

Ce type d’algorithme est en général utilisé quand on cherche à détecter un seuil d’énergie à une fréquence donnée, pour cela oncalculera |X(k)|2 :

|X(k)|2 = |w(N − 1)|2 + |w(N − 2)|2 − αkw(N − 1)w(N − 2) (II.26)

En terme de complexité, cet algorithme demande N multiplications et 2N − 2 additions pour la partie récursive ainsi que4 multiplications et 2 additions pour le calcul de (II.26). Un algorithme de tranformée de Fourier rapide a une complexitéde 2N log2(N) multiplications réelles. L’algorithme de GOERTZEL restera donc avantageux tant que l’on cherchera à évaluerl’énergie pour un nombre de fréquence M 6 2 log2(N).

Olivier VENARD- 2010

Page 26: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

24 Filtres Numériques

4.1 Calcul de la réponse impulsionnelle d’un résonnateur

On s’intéresse ici à la réponse impulsionnelle de la partie récursive (II.23) dont l’équation aux différences est de la forme :

y(n) = x(n) + 2 cos θky(n− 1)− y(n− 2), (II.27)

et dont la transformée en Z est donnée par :

H(z) =Y (z)X(z)

=1

1− 2 cos θkz−1 + z−2

=1

(1− ejθkz−1) (1− e−jθkz−1).

(II.28)

On pose z0 = ejθk et z0 complexe conjugué de z0, on obtient alors comme expression pour la transformée en Z :

H(z) =1

(1− z0z−1) (1− z0z−1)

=z2

(z − z0) (z − z0)

(II.29)

On obtient la réponse impulsionnelle en utilisant le théorème des résidus :

h(n) =1

2πj

∮CH(z)zn−1dz =

∑zi⊂C

Res[H(z)zn−1

]∣∣∣∣∣z=zi

. (II.30)

On choisit un contour d’intégration C qui inclut le cercle unité et donc les deux pôles, on obtient alors l’expression suivante pourla réponse impulsionnelle :

h(n) =∑i

(z − zi)H(z)zn−1

∣∣∣∣∣z=zi

. (II.31)

On remplace H(z) dans cette équation par son expression (II.29) et on développe la somme :

h(n) = (z0 − z0)z2

0zn−10

(z0 − z0) (z0 − z0)+ (z0 − z0)

z20 zn−10

(z0 − z0) (z0 − z0)

=ejθk(n+1)

2j sin θk− −e

jθk(n+1)

2j sin θk=

sin (θk(n+ 1))sin θk

.

(II.32)

4.2 Amplitude du signal à la sortie du résonnateur

Nous allons maintenant étudier la dynamique du signal de sortie, afin d’éviter tout risque de saturation dans le cas d’uneimplantation concrète. Le maximum en valeur absolue de la réponse à ce filtre (II.27) est :

|y(n)| =

∣∣∣∣∣N−1∑n=0

x(n− k)h(k)

∣∣∣∣∣ 6N−1∑n=0

|x(n− k)||h(k)|.

Si on considère que |x(n)| 6 xmax, alors cette équation se réécrit :

|y(n)| 6 xmax

N−1∑n=0

|h(k)|. (II.33)

Pour que |y(n)| 6 1 on doit donc avoir la condition :

xmax 61

N−1∑n=0

|h(k)|

=1

N−1∑n=0

∣∣∣∣ sin (θk(n+ 1))sin θk

∣∣∣∣. (II.34)

Nous allons maintenant étudier les cas extrêmes.

Olivier VENARD- 2010

Page 27: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Filtres Numériques 25

Cas le plus favorable

Cette situation se produit pour θk = π/2. On a alors :

N−1∑n=0

∣∣∣∣ sin (π/2(n+ 1))sinπ/2

∣∣∣∣ =N−1∑n=0

|sin (π/2(n+ 1))| =N2 −1∑n=0

|sin (π/2(2n+ 1))| = N

2, (II.35)

on doit donc avoir :

xmax 62N

(II.36)

Cas le moins favorable

Ce cas survient pour θk = {0, π}. Si θk = 0, alors :

limθk→0

sin (θk(n+ 1))sin θk

=(n+ 1) cos (θk(n+ 1))

cos θk

∣∣∣∣θk=0

= n+ 1. (II.37)

On a alors :N−1∑n=0

n+ 1 = 1 + 2 + · · ·+N,

en remarquant que :

[1 + 2 + · · ·+N ] + [N + (N − 1) + · · ·+ 1] = N(N + 1) = 2N−1∑n=0

n+ 1,

on obtient :

limθk→0

sin (θk(n+ 1))sin θk

=N(N + 1)

2. (II.38)

on doit alors avoir :

xmax 62

N(N + 1). (II.39)

Olivier VENARD- 2010

Page 28: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

26 Filtres Numériques

Olivier VENARD- 2010

Page 29: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Chapitre III

Quantification et Stabilité

1 IntroductionL’implantation effective de filtre sur une structure va se heurter à un problème de précision finie. En effet quand on calcul

une fonction de transfert, les coefficients obtenus sont représentés avec une précision infinie. Les DSP ou les circuits intégrésspécifiques n’auront pas cette capacité à représenter les nombres avec une précision infinie. Les coefficients du filtre à implanterse trouveront codés dans des registres de longueur finie. Le codage pourra être en virgule fixe ou en virgule flottante, dans la suitenous ne nous intéresserons uniquement au cas de la représentation virgule fixe. Nous verrons comment le bruit de quantificationpeut être représenté, quel effet il a quand il est appliqué sur les coefficients et sur les données.

2 Modélisation du bruit de quantificationSuivant le type de cible matérielle le bruit de quantification interviendra à des endroits différents. Dans le cas d’un DSP le

résultat d’une multiplication est transféré dans l’accumulateur sans quantification, par contre ce dernier subira une quantificationlors du stockage en mémoire. On ne conservera que les bits de poids forts en calcul fractionnaire simple précision. Dans le casd’un circuit intégré spécifique, la quantification du résultat interviendra en général après la multiplication puisqu’alors seul lesbits de poids forts seront implantés en hardware.

On aura donc, pour les DSP, une source de bruit de quantification à chaque stockage en mémoire alors que dans le cas descircuits intégrés spécifiques on aura une source de quantification à chaque multiplication.

La quantification est une opération non linéaire qui ramène un intervalle continu de valeur à une valeur discrète. Pour évaluerles effets de la distorsion apportés au signal par ce type de non linéarité, on est amené à élaborer un modèle linéarisé du bruit dequantification. Ce modèle repose sur une représentation statistique de l’erreur introduite par la quantification. Le signal quantifiéest alors vu comme la somme du signal initial x(n) et d’une erreur de quantification e(n) correspondant à la distance entre lavaleur initiale du signal avant quantification et la valeur de celui-ci (xq(n)) à la sortie de la non linéarité :

xq(n) = x(n) + e(n) (III.1)

Dans la suite on ne considérera que le bruit de quantification introduit par une technique d’arrondi qui correspond à l’opérationsuivante :

xq(n) = a si a− ∆2

6 x(n) < a+∆2, (III.2)

avec a une valeur discrète représentée sur b bits (pouvant donc prendre 2b valeurs) et ∆ = 2−b représentant l’intervalle dequantification.

Pour pouvoir évaluer quantitativement les effets du bruit de quantification on est amené on considérer le bruit de quantificatione(n) comme un signal aléatoire sur lequel on émet les hypothèses suivantes :

– e(n) est uniformément distribué sur l’intervalle[−∆

2 ,+∆2

[,

– e(n) est blanc (ie. non corrélé),– les différentes sources de bruit sont indépendantes,– x(n) et e(n) sont indépendants.La qualité d’un algorithme en précision finie s’évaluera notamment par son rapport Signal sur Bruit de quantification (SQNR) :

SQNR = 10 log(σ2x

σ2e

). (III.3)

où σ2x est la variance du signal quantifié et σ2

e la variance du bruit de quantification.

27

Page 30: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

28 Quantification et Stabilité

FIGURE III.1 – Erreur d’arrondi

Si l’on appelle ∆ l’intervalle de quantification, la variance du bruit de quantification sera σ2e = ∆2

12 sous les hypothèsesci-dessus. Si l’on considère une dynamique normalisée du signal d’entrée x(n) comprise dans l’intervalle [−1, 1] et que l’on a bbits pour le quantifier ; l’intervalle de quantification sera alors

∆ =2

2b − 1≈ 2

2b,

le rapport signal sur bruit de quantification devient alors

SQNR(dB) = 10 log(σ2x)− 10 log

(∆2

12

),

= 10 log(σ2x) + 4.77 + 6.02b.

(III.4)

Cette relation fait apparaître que l’on gagne 6dB de rapport signal sur bruit de quantification pour chaque bit de quantificationsupplémentaire.

3 Effets de la quantificationLa quantification dans un filtre numérique intervient à deux niveaux :– Les coefficients du filtre vont être représentés en précision finie et donc ne correspondront pas à ceux effectivement calculé

en précision infinie. Les coefficients alors implantés réaliseront un filtre dont la fonction de transfert subira une pertubationdu fait de la modification des coefficients induite par leur quantification.

– Les données seront représentées en mémoire en précision finie , elles seront donc quantifiées tout au long de l’algorithmesoit en sortie des multiplieurs, soit au moment de l’écriture en mémoire. Cette quantification des données entraînera unedégradation du rapport signal sur bruit de l’algorithme

la quantification des coefficients entraîne une pertubation statique de la fonction de transfert, alors que la quantification desdonnées entraîne une pertubation dynamique sur les données.

4 Quantification des coefficientsLa quantification des coefficients va avoir un effet de pertubation sur la fonction de transfert synthétisée. Dans le cas d’une

précision infinie, on part d’une infinité de possibilité quant aux fonctions de transfert réalisable, puisque les coefficients peuventprendre une infinité de valeur. À partir du moment où ils ne peuvent prendre leurs valeurs que dans un ensemble fini, il est évidentque l’on ne pourra réaliser qu’un ensemble fini de fonctions de transfert. Celles-ci seront plus ou moins éloignées des fonctionsde tranfert initiale en fonction du nombre de bits disponibles pour coder les coefficients. Nous allons présenter dans la suitel’effet de la quantification des coefficients sur le comportement du filtre. Dans un premier temps nous verrons quelles sont lescontraintes sur les pôles et les zéros dues à la quantification. Puis nous caractériserons la pertubation sur la fonction de transfertinduite. Et enfin nous aborderons le problème de la sensiblité à la quantification.

4.1 Position des pôles et des zéros après quantificationNous avons dit dans l’introduction que le nombre de fonction de transfert réalisable était fini puisque le nombre de valeur que

pouvait prendre les coefficients était fini. Pour appréhender ce fait nous considérerons une fonction de transfert d’ordre 2 ayant

Olivier VENARD- 2010

Page 31: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Quantification et Stabilité 29

des racines complexes conjuguées re±jθ, que l’on peut donc écrire sous la forme d’un produit de deux polynomes d’ordre 1 :

D(z) =(1− rejθz−1

) (1− re−jθz−1

),

= 1− 2r cos θ z−1 + r2z−2,

= 1 + a1z−1 + a2z

−2,

(III.5)

où a1 et a2 seront les coefficients quantifiés. La quantification est représentée par l’opérateur Q(·) . Après quantification on auradonc :

r =√Q(a2), (III.6)

r cos θ =Q(a1)

2. (III.7)

Où r et θ sont le module et l’argument des racines complexes conjuguées après quantification des coefficients. En introduisant(III.6) dans (III.7) on obtient

cos θ =Q(a1)

2√Q(a2)

(III.8)

La quantification implique un nombre de positions fini pour les racines du polynome D(z). Si celui-ci correspond au dénomina-teur, on aura un nombre fini de positions possibles pour les pôles, si il correspond au numérateur, on aura alors un nombre finipositions possibles pour les zéros. On aura donc un nombre fini de fonctions de transfert possibles.

Le coefficient a1 correspond au double de la partie réelle, le coefficient a2 correspond au carré du module de la racine (III.6).Si ils sont quantifiés avec un pas ∆. Alors la partie réelle de la racine est quantifiée uniformément avec un pas de ∆/2. Laquantification du module de la racine est non uniforme, du fait que le coefficient quantifié correspond à son carré. Les modulespossibles pour les racines sont égales à

√a2.

la discrétisation du cercle est alors non uniforme et la densité des positions possibles est beaucoup plus faible pour des filtresayant des pôles et des zéros autour de 0 et π que pour ceux ayant leurs racines autour de π/2 ou −π/2.

La position des zéros sur le cercle unitaire sera assurée pour une cellule d’ordre 2 du fait que dans ce cas le coefficient b2 estégal à 1. L’équation aux différences correspond alors à

y(n) = x(n) + b1x(n− 1) + x(n− 2). (III.9)

La seule pertubation due à la quantification aura lieu sur la partie réelle de la racine qui correspond au cosinus de la pulsationdiscrète θ. Il y aura donc un zéro de transmission, seule sa position fréquentielle sera affecté par le processus de quantification.

La structure couplée, qui est une représentation sous forme d’état de la fonction de transfert d’ordre 2 présente l’avantaged’introduire une discrétisation uniforme du cercle unité. Cette structure est définie par l’équation d’état :[

v1(n+ 1)v2(n+ 1)

]=[α1 −α2

α2 α1

] [v1(n)v2(n)

]+[q1

q2

]x(n). (III.10)

et l’équation d’observation

y(n) =[2 0

] [v1(n)v2(n)

]+ b0x(n) (III.11)

où α1 et α2 correspondent aux coordonnées rectangulaires des racines qui sont donc discrétisées uniformément avec un pas de∆. Pour cette structure la position des racines autour de 0 et π est plus importante que dans le cas précédent.

Par contre dans cette structure le cercle unité ne correspond plus par construction à une discrétisation du module comme dansle cas précédent. Si les valeurs α1 et α2 sont arrondies, la racine résultante peut donc se retrouver en dehors du cercle unité etrendre le filtre instable.

4.2 Quantification et stabilitéLe processus de quantification peut donc entraîner des problèmes d’instabilités dans l’implantation d’un filtre récursif.

Test de stabilité de SCHÜR-COHN

Cette méthode nous renseigne sur le fait que qu’un polynome H(z) aura ses racines à l’intérieur du cercle unité si lescoefficients de réflexion associés sont inférieurs à 1.

Pour une structure récursive on a alors la condition suivante :

H(z) =1

D(z)est stable si |Ki| < pour i = 1 · · ·N. (III.12)

Olivier VENARD- 2010

Page 32: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

30 Quantification et Stabilité

(a) (b)

FIGURE III.2 – Échantillonnage du plan complexe pour cellule d’ordre 2 implantée sous forme directe

(a) (b)

FIGURE III.3 – Échantillonnage du plan complexe pour une structure couplée

Étude pour une cellule d’ordre 2 Soit D(z) = A2(z) = 1 + a1z−1 + a2z

−2 et B2(z) = z−2A2

(z−1).

On initialise le calcul des coefficients de réflexion en posant :

K2 = a2,

puis on calcul le polynome A1(z) tel que :

A1(z) =A2(z)−K2B2(z)

1−K22

= 1 +a1

1 + a2z−1,

on a alors K1 = a1/(1 + a2).La condition de stabilité s’exprime par :

|K2| < 1⇒ |a2| < 1,

|K1| < 1⇒∣∣∣∣ a1

1 + a2

∣∣∣∣ < 1.

La condition sur K1 définit une borne supérieure et inférieure sur a1 en fonction de a2. Le test sur les coefficients de réflexionfournit donc quatre conditions : {

−1 < a2 < 1,−a1 − 1 < a2 < a1 − 1.

Olivier VENARD- 2010

Page 33: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Quantification et Stabilité 31

En traçant le domaine correspondant à ces quatre contraintes dans le plan (a1, a2) on obtient le triangle de stabilité (figureIII.4).

FIGURE III.4 – Triangle de stabilité

On peut aussi déduire du couple des coordonnées du point (a1, a2), le type de racines (complexes ou réelles) du polynomeD(z). Il a pour discriminant :

∆ = a21 − 4a2,

– si a2 = a21/4, alors ∆ = 0 et D(z) a deux racines réelles identiques,

– si a2 < a21/4, ∆ > 0 et il y a deux racines réelles distinctes,

– si a2 > a21/4, ∆ < 0 et il y a deux racines complexes conjuguées.

exemple de système instable

Calcul des pôles Soit H(z) = 1/D(z) = 1/(1 + 1.9z−1 + 0.1z−2

), le discriminant de D(z) est ∆ = 3.61− 0.4 = 3.21.

les racines sont donc :

ρ1 =−1 +

√3.21

2= 0.375

ρ2 =−1−

√3.21

2= −1.395,

Il y a un pôle en dehors du cercle unité, donc le filtre et instable.

Test SCHÜR-COHN En utilisant la méthode développé ci-dessus on en déduit la valeur du premier coefficient de réflexionK2 = 0.1, qui est bien inférieur à 1. Le deuxième coefficient de réflexion est donné par K1 = 1.9/1.1 = 1.73 qui est supérieurà 1, donc le filtre est instable.

Ce test peut être étendu à un filtre d’ordre quelquonque. On peut effet calculer les coefficients de réflexion manière récursive.Au premier qui est supérieur à 1, le filtre est instable.

Triangle de stabilité Ce test peut être utilisé dans le cas d’une structure d’ordre 2. Si le point de coordonnée (a1, a2)appartient au triangle de stabilité, ce qui n’est pas le cas de cet exemple, alors le filtre est stable.

4.3 Variance de fonction de transfert en fonction de la quantification des coefficientsOn peut exprimer la variance de la réponse en fréquence en fonction de la variance du bruit de quantification.Si chaque coefficient est arrondi à b bits, l’erreur de quantification e(n) introduite est alors comprise dans l’intervalle

−2−(b+1) 6 e(n) 6 2−(b+1),

la valeur des coefficients quantifiés peut donc s’écrire :

h(n) = h(n) + e(n).

Olivier VENARD- 2010

Page 34: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

32 Quantification et Stabilité

En effectuant la transformée de FOURIER de cette expression et du fait que cette transformation est linéaire, l’erreur introduitepar la quantification sur la fonction de transfert s’exprime par :

E(ω) =M−1∑n=0

e(n)e−iωn.

On remarque que le bruit de quantification introduit par la technique d’arrondi est à moyenne nulle, La composante continue dela fonction de transfert de bruit sera donc elle aussi nulle.

E{e(n)} = 0⇒ E(0) = 0.

En supposant le bruit de quantification e(n) non corrélé et en appelant sa variance σ2e , la variance de la fonction de tranfert de

bruit peut s’écrire :

σ2E =

M−1∑n=0

σ2e = M σ2

e ,

on a alors,

σ2E =

2−2b

12M =

2−2(b+1)

3M,

soit un écart-type :

σE =2−(b+1)

√3

√M.

Ainsi si la longueur du filtre est multiplié par 4, on doit rajouter un bit de quantification pour maintenir le même écart-type surla fonction de transfert de bruit : Soit M ′ = 4 M et b′ = b + 1, l’écart-type de la fonction de transfert du filtre de longueur m′

s’écrit alors :

σE′ =2−(b′+1)

√3

√M ′

=2−(b+2)

√3

2√M

=2−(b+1)

√3

√M = σE .

Ainsi la sensibilité de la fonction de transfert à la quantification des coefficients est proportionnelle à la longueur du filtre. Plusle filtre sera long, plus on aura besoin de bits pour coder les coeffcients afin de ne pas trop distordre la réponse en fréquence dufiltre.

4.4 Sensibilité des pôles et des zéros à la quantification des coefficientsNous avons vu dans la partie précédente que la pertubation introduite sur la fonction de transfert était fonction de la longueur

du filtre. Nous allons dans cette partie étudier la sensibilité des racines (pôles ou zéros) à la quantification des coefficients. Soitun filtre de transformée en Z (II.8) et les coefficients quantifiés {ak} et {bk} définis par :

ak = ak + ∆ak,bk = bk + ∆bk,

(III.13)

où ∆ak et ∆bk représentent les erreurs de quantification. Dans la suite on ne s’intéresse qu’au dénominateur, l’étude étantsimilaire en ce qui concerne le numérateur. En mettant le dénominateur sous forme produit, on obtient :

D(z) = 1 +N∑k=1

akz−k =

N∏k=1

(1− pkz−1

), (III.14)

le dénominateur quantifié devient alors :

D(z) =N∏k=1

(1− pkz−1

), (III.15)

où les pk sont les pôles issus du processus de quantification des coefficients. On a donc pk = pk + ∆pk avec ∆pk l’erreur induitepar l’ensemble des ∆ak c’est à dire l’ensemble des erreurs de quantification ∆ak sur les coefficients ak.

Olivier VENARD- 2010

Page 35: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Quantification et Stabilité 33

Dans la section précédente nous avons mis en évidence que pour un nombre de bits donnés, plus le filtre était long, plus lafonction de transfert serait pertubée par le processus de quantification. Nous allons maintenant montrer que cette pertubationdépend aussi de la position des pôles les uns par rapport aux autres.

Nous avons déjà dit que les ∆pk dépendaient de l’ensemble des ∆ak. Ce que nous pouvons écrire par :

∆pi =N∑k=1

∂pi∂ak

∆ak. (III.16)

Nous allons maintenant déterminer la dérivée partielle ∂pi/∂ak pour k = 1, 2, . . . , N . Elle peut s’obtenir à partir de la dérivationpartielle de la fonction de transfert pour z = pi :

∂D(z)∂ak

∣∣∣∣z=pi

=∂D(z)∂z

∣∣∣∣z=pi

∂pi∂ak

. (III.17)

on obtient alors :∂pi∂ak

=∂D(z)∂ak∂D(z)∂z

∣∣∣∣∣z=pi

. (III.18)

On a pour le numérateur :∂D(z)∂ak

∣∣∣∣z=pi

= z−k∣∣z=pi

= p−ki , (III.19)

et pour le dénominateur :∂D(z)∂z

∣∣∣∣z=pi

=∂

∂z

N∏k=1

(1− pkz−1

)∣∣∣∣∣z=pi

, (III.20)

on rappelle que la dérivée d’un produit de fonction est donnée par :

∂∏i fi

∂x=∑i

∂fi∂x

∏j 6=i

fj .

La dérivée partielle au dénominateur s’écrit donc :

∂D(z)∂z

∣∣∣∣z=pi

=N∑k=1

pkz−2

N∏l=1l 6=k

(1− plz−1

)∣∣∣∣∣∣∣z=pi

,

=N∑k=1

pkp2i

N∏l=1l 6=k

(1− pl

pi

).

(III.21)

Dans le terme de droite de (III.21) le terme produit est non nul seulement pour k = i. En effet pour k 6= i on a :

N∏l=1l 6=k

(1− pl

pi

)=(1− pip−1

i

) N∏l=1l 6=kl 6=i

(1− pl

pi

)= 0.

En conséquence (III.21) devient :

∂D(z)∂z

∣∣∣∣z=pi

=1pi

N∏l=1l 6=i

(1− pl

pi

)

=1pi

N∏l=1l 6=i

1pi

(pi − pl)

=1pNi

N∏l=1l 6=i

(pi − pl) .

(III.22)

Olivier VENARD- 2010

Page 36: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

34 Quantification et Stabilité

En introduisant (III.19) et (III.22) dans (III.18), la dérivée partielle des pôles par rapport aux coefficients est alors donnée par :

∂pi∂ak

=pN−ki

N∏l=1l 6=i

(pi − pl)

. (III.23)

L’effet de la quantification de l’ensemble des coefficients sur un pôle pi s’obtient en introduisant (III.23) dans (III.16) :

∆pi =N∑k=1

pN−kiN∏l=1l 6=i

(pi − pl)

∆ak. (III.24)

Le dénominateur de (III.22) représente la distance du pôle pi dont on étudie la sensibilité aux autres pôles pk du filtre. Plus cettedistance sera faible plus la dérivée partielle sera importante, cette expression nous renseigne aussi sur le fait que plus le filtre aurade pôle (plus il sera d’ordre élevé) plus cette dérivée partielle sera importante. Cette première expression nous enseigne l’effetde la quantification d’un seul coefficent sur chacun des pôles. L’effet global de la quantification est donné par le terme somme del’ensemble des pertubations (III.24) qui en représente donc l’effet cumulé.

La conclusion est la suivante : pour que la dérivée partielle (III.22) soit la plus faible possible, il faut que les pôles du filtre soitle plus éloigné possible entre eux. Pour que l’effet cumulé de la quantification des coefficients soit la plus petite possible, il fautqu’il y ait le moins de coefficients possible. Ces deux contraintes font converger vers le même type de solutions : On implanterade préférence un filtre sous la forme de cellule d’ordre le plus faible possible, soit des cellules d’ordre 2. La figure III.5 illustrela plus faible sensibilité à la quantification des coefficients obtenue avec une structure cascade.

(a) Structure directe (b) Structure cascade

FIGURE III.5 – Sensibilité de la fonction de transfert à la quantification des coefficients en fonction de la structure d’implantation

5 Quantification des donnéesLa quantification des données peut intervenir à deux endroits dans un algorithme, soit après les multiplications, soit au

moment de l’écriture en mémoire. Dans les deux cas le bruit introduit peut être modélisé par un bruit additif (dans le cas ducodage en virgule fixe). Pour une structure récursive d’ordre 2, on peut se ramener dans les deux cas à une source de bruitéquivalent en entrée. La transformée en Z de la sortie en fonction des entrées est donc :

Y (z) =1

1− az−1(X(z) + E(z))

La puissance du bruit en sortie sera donc :

σ2es = σ2

e

1Fe

∫ Fe2

−Fe2

∣∣H (ej2πfTe)∣∣2 df= σ2

e

∑h2(k),

Olivier VENARD- 2010

Page 37: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Quantification et Stabilité 35

(a) bruit après la multiplication (b) bruit à l’écriture en mémoire

FIGURE III.6 – Sources de bruit dans le cas d’une structure récursive d’ordre 2

(a) quantification après la multiplication (b) quantification à l’écriture en mémoire

FIGURE III.7 – Source de bruit équivalente

en appliquant le théorème de PARSEVAL. Ici on a h(k) = ak donc :

σ2es = σ2

e

∑a2k = σ2

e

11− a2

.

La source de bruit est donc filtrée (donc atténuée) par le filtre.Pour un filtre purement récursif du 2nd ordre on trouve :

σ2es = σ2

e

(1 + r2

1− r2

1r4 + 1− 2r2 cos θ

).

On voit dans cette dernière expression que plus le pôle sera proche du cercle unité, plus le gain introduit sur le bruit de quantifi-cation sera important.

5.1 Cycles limitesLa quantification des données est un phénomène non linéaire. Pour évaluer la pertubation qu’elle introduit sur les données

on utilise un modèle linéaire additif, en la modélisant par un bruit supposé blanc uniforme et non corrélé avec les données. Cemodèle linéaire permet d’apprécier la dégradation sous la forme d’un rapport signal sur bruit de quantification.

Cependant le phénomène non linéaire introduit des comportements particuliers qui ne peuvent être modélisé par un modèlelinéaire. Ces comportements concerne ce que l’on appelle les cycles limites.

Cycles limites de petite amplitude

Soit un filtre d’équation aux différences :

y(n) = x(n) + 0.9y(n− 1),

Olivier VENARD- 2010

Page 38: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

36 Quantification et Stabilité

la réponse impulsionnelle de ce filtre est h(n) = 0.9n. Si on applique en entrée de ce filtre une impulsion d’amplitude 10. Laséquence correspondant à la sortie sera

10 9 8.1 7.29 6.561 5.9 5.31 4.78 · · · .

On suppose que l’on ne peut représenter que la partie entière des données, la sortie du filtre est donc quantifiée en supprimant lapartie fractionnaire. La séquence en sortie est alors :

entrée 10 0 0 0 0 0 0 0sortie 10 9 8.1 7.2 6.3 5.4 4.5 4.5

sortie quantifiée 10 9 8 7 6 5 5 5

la sortie devient constante et égale à 5 pour une entrée nulle !Si le coefficient du filtre n’est plus 0.9 mais −0.9, on a alors en sortie la séquence suivante :

entrée 10 0 0 0 0 0 0 0sortie 10 -9 8.1 -7.2 6.3 -5.4 4.5 -4.5

sortie quantifiée 10 -9 8 -7 6 -5 5 -5

Dans le premier cas la sortie est une composante continue d’amplitude 5 et dans le second un signal oscillant de fréquence Fe/2et d’amplitude crête 5. On a donc un système qui «fournit» de l’énergie alors que l’entrée n’est plus excitée. La quantification adonc pour effet de créer un système résonnant qui aura son pôle sur l’axe réel soit à droite dans le premier cas soit à gauche dansle second.

Cas général

Cellule du 1erordre On considère que les valeurs sont codés sur b bits, dont 1 bit de signe. Q[ ] représente l’opérateur nonlinéaire de quantification. Pour une entrée nulle l’équation de récurrence du filtre se ramène après quantification à

y(n) = Q[a y(n− 1)],

l’erreur introduite par la quantification est bornée et est inférieure à q/2 avec q = 2−b.Si on a l’égalité :

|Q[a y(n− 1]| = |y(n− 1)| (III.25)

l’équation de récurrence devient

y(n) = y(n− 1) ou y(n) = −y(n− 1),

suivant le signe du coefficient a. Ainsi la non linéarité a introduit un pôle sur le cercle unitaire en 1 ou −1. On obtient l’égalité(III.25) quand on a la condition :

|y(n− 1)| − |Q[a y(n− 1)]| 6 q

2,

qui est vérifiée quand

|y(n− 1)| 6 0.5 q1− |a|

. (III.26)

Cette dernière relation définit ce que l’on appelle l’intervalle de bande morte , qui correspond à la zone de valeur qui peuvent êtreprésentes en sortie pour une entrée nulle.

Dans l’exemple numérique présenté en introduction on avait q = 1 et a=0.9, l’intervalle de bande morte est donné, en utilisantla relation (III.26), par [−5, 5]. La dynamique de cet intervalle dépend du nombre de bits disponibles pour représenter les données.

la figure III.8 illustre le phénomène de bande morte pour une résolution respectivement de 7, 9 et 11 bits. cette figure repré-sente la réponse impulsionnelle d’un filtre correpondant à l’équation aux différences :

y(n) = x(n) + 0.988y(n− 1). (III.27)y(n) = x(n)− 0.988y(n− 1). (III.28)

Olivier VENARD- 2010

Page 39: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Quantification et Stabilité 37

FIGURE III.8 – Phénomène de bande morte equation (III.27), la réponse idéale est représentée en pointillé.

FIGURE III.9 – Phénomène de bande morte equation (III.28), la réponse idéale est représentée en noir, la réponse pour uneprécision de 9 bits est en gris.

Cellule du 2nd ordre Dans le cas des cellules du 2nd ordre, on obtient après quantification des données, l’apparition de pôlessur le cercle unité si :

|y(n− 2)| − |Q[a2 y(n− 2)]| 6 q

2, (III.29)

qui est vérifiée si on a la condition :

|y(n− 2)| 6 0.5q1− |a2|

.

La fréquence des oscillations sera alors contrôlé par la valeur apparente du coefficient a1.Il est possible de supprimer l’effet des cycles limites de petites amplitudes en utilisant à la place d’un arrondi, une troncature

vers 0 avant le stockage en mémoire. La puissance du bruit de quantification est alors multiplié par 2, mais le phénomène debande morte disparait (figure III.10).

Cycles limites de grandes amplitudes

Un autre phénomène peut intervenir du fait des «surtensions» si on utilise un additionneur en mode débordement. Ce phéno-mène provient de l’opération de modulo du au codage en complément à deux des données.

On considère dans l’exemple qui suit que la dynamique des données est limitée à [−3, 2].Soit l’équation de récurrence :

y(n) = 1.1 y(n− 1)− 0.9 y(n− 2),

avec les conditions initiales :y(n− 1) = 2 et y(n− 2) = −2.

à l’instant n la sortie vaut :y(n) = 1.1 · 2− 0.9 · −2 = 4 → −2,

Olivier VENARD- 2010

Page 40: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

38 Quantification et Stabilité

(a) Troncature vers 0 (b) la RI idéale est en gris, celle correspondant à une quantifica-tion sur 9 bits est en noir.

FIGURE III.10 – Suppression du phénomène de bande morte en utilisant une troncature vers 0.

à l’instant n+ 1 :y(n+ 1) = 1.1 · −2− 0.9 · 2 = −4 → 2,

Ce phénomène se comprend mieux en observant la figure III.11 où on a représenté sur un cercle les valeurs correspondantau codage de l’intervalle. L’oscillation en sortie est causé par le phénomène de débordement dans l’accumulateur, la solution

FIGURE III.11 – Circularité de la représentation en complément à 2

consiste alors à utiliser l’accumulateur dans un mode où le débordement se traduira par une saturation et non un débordement.

6 Mise à l’échelle et ordonnancement des cellules dans une structure cascadeOn a vu que si on veut minimiser la sensibilité des coefficients à la quantification, on a intérêt à implanter le filtre sous forme

de structure cascade d’ordre le plus faible possible (On choisira un ordre 2 qui est l’ordre le plus faible permettant d’avoir desracines complexes conjuguées).

6.1 Appariement des pôles et des zérosLe premier problème à résoudre est de fixer le critère d’appariement des pôles et des zéros pour associer tel numérateur avec

tel dénominateur.l’objectif est d’obtenir des cellules du 2nd ordre ayant une surtension la plus faible possible. L’appariement des pôles et des zérosva donc suivre la règle suivante :

– On choisit la paire de pôles complexes conjugués qui est la plus proche du cercle unité, donc celle qui provoque la surten-sion la plus importante.

– pour atténuer au maximum cette surtension, on l’associe avec la paire de zéros complexes conjugués qui en est le procheen fréquence.

Olivier VENARD- 2010

Page 41: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Quantification et Stabilité 39

– Puis on prend les pôles suivants les plus proches du cercle unité et on les associe avec les zéros qui en sont les plus prochesen fréquence, etc ...

FIGURE III.12 – Appariement des pôles et des zéros

6.2 Facteur d’échelle

L’implantation d’une structure récursive va poser des problèmes de dynamique du fait de la surtension. Si on choisit uneimplantation sous forme directe de type II (figure III.13) L’équation de récurrence pour le nœud v1(n) (figure III.13) est

FIGURE III.13 – Cellule directe de type II

v1(n) = x(n) + a1y(n− 1) + a2y(n− 2),

et la fonction de transfertV1(z)X(z)

=1

1− a1z−1 − a2z−2.

Au nœud v1(n) seul le dénominateur contribut à la sortie. Il y a donc risque de saturation, puisque la surtension ne sera pasatténuée par le zéro de transmission associé. Si on associe au filtre défini ci-dessus la réponse impulsionnelle h(n), on peutreprésenter la sortie par le produit de convolution :

v1(n) =∞∑k=0

h(k)x(n− k).

avec

h(n) = rnsin[(n+ 1)θ]

sin θpour n > 0

Olivier VENARD- 2010

Page 42: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

40 Quantification et Stabilité

et a1 = −2r cos θ, a2 = r2. Si la dynamique disponible est M . Pour qu’il n’y ait pas saturation, on doit avoir |v1(n)| < M onen déduit la condition :

|v1(n)| 6∞∑k=0

|h(k)||x(n− k)|.

En majorant |x(n− k)| par M , on obtient :

|v1(n)| 6 M

∞∑k=0

|h(k)|,

d’où on déduit la condition de mise à l’échelle∞∑k=0

|h(k)| 6 1.

Le facteur d’échelle à appliquer sur les données x(n) pour éviter les situations de débordement est donné par α :

α =1

∞∑k=0

|h(k)|.

Cette approche revient à appliquer une contrainte très sévère qui peut énormément diminuer la dynamique de l’entrée. Lebruit de quantification restant lui constant, puisque lié à la résolution, cela entraîne une diminution du rapport signal sur bruit dequantification.

Mise à l’echelle suivant une norme Lp

On peut utiliser d’autres critères moins sévères, qui même s’ils n’excluent pas totalement les risques de saturation, les rendentpeu probables.Ces contraintes sont dérivées de la norme Lp définie dans le domaine de FOURIER par :

‖H‖p =[

12π

∫ 2π

0

|H(ω)|p dω] 1p

.

– La norme L1 correspond à la valeur moyenne de H(ω),– La norme L2, à sa valeur efficace,– La norme L∞, à sa valeur crête :

‖H‖∞ = max |H(ω)|.On a de plus la suite d’inégalités :

|h(n)| 6 ‖H‖1 6 ‖H‖2 6 · · · 6 ‖H‖∞ 6∞∑n=0

|h(n)|. (III.30)

la mise à l’échelle suivant le choix d’une norme Lp, se fait en tenant compte de la relation :

|v1(n)| 6 ‖H‖p ‖X‖q avec1p

+1q

= 1. (III.31)

Norme L∞ Soit x(n) un signal déterministe dont la norme L1 satisfait :

‖X‖1 6 M,

alors

v1(n) =1

∫ 2π

0

H(ω)X(ω) ejω dω,

qui est maximisé par

v1(n) 6‖H(ω)‖∞1

∫ 2π

0

X(ω) ejω dω

6‖H(ω)‖∞‖X(ω)‖16‖H(ω)‖∞M.

On doit donc introduire sur les données un facteur d’échelle

α =1

‖H‖∞.

Olivier VENARD- 2010

Page 43: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Quantification et Stabilité 41

Norme L2 On considère x(n) un signal déterministe d’énergie finie ‖X‖22 = E. On en déduit la condition de mise à l’échelle :

‖X‖2 =√E 6 M. (III.32)

Les relations (III.31) et (III.32) nous indiquent qu’il n’y aura pas débordement si on a la condition :

‖H‖2 6 1.

Dans le cas de signaux aléatoires dont la variance est connue, cela nous permet de dire que la variance ou la puissance moyennedu signal de sortie sera la même que celle du signal d’entrée. Cela se traduit donc par le fait que la probabilité de débordementen sortie est la même qu’en entrée.

Ce type de mise à l’échelle convient mieux à des signaux large bande, alors que le choix précédent (norme L∞ de la fonctionde transfert) est mieux adapté à des signaux bande étroite.

6.3 Bruit de calcul dans un filtre récursifLe synoptique d’une cellule correspondant à la structure directe de type II avec mise à l’échelle de l’entrée est représentée

figure III.14 avec α0 · α1 = 1 la source équivalente de bruit de quantification est filtrée par la cellule entière. la puissance B du

FIGURE III.14 – Structure directe de type II avec mise à l’échelle

bruit issu de la quantification en sortie est donnée par :

B =q2

12α2

1

∫ 1

0

|H(f)|2 df =q2

121α2

0

∫ 1

0

|H(f)|2 df.

Dans le cas d’une mise en cascade de plusieurs cellules pour réaliser un filtre d’ordre supérieur à 2. Le bruit de quantificationintroduit à la première cellule est filtré par l’ensemble des cellules, celui introduit à la seconde est filtré par cette cellule et touteles suivantes etc ...Par exemple si on a trois cellules en cascade, la puissance totale du bruit de quantification en sortie est donné par :

B =q2

12

∫ 1

0

α21α

22α

23|H1(f)|2|H2(f)|2|H3(f)|2 df (III.33)

+q2

12

∫ 1

0

α22α

23|H2(f)|2|H3(f)|2 df (III.34)

+q2

12

∫ 1

0

α23|H3(f)|2 df (III.35)

– Dans le terme (III.35), α3 correspond au facteur multiplicatif placé en sortie de la dernière cellule pour compenser l’en-semble des facteurs d’échelle introduit dans les étages précédents.

– Dans le terme (III.34), α2 correspond au facteur d’échelle qui permet d’éviter ou de limiter les saturations dans le 3ème etdernier étage.

– et ainsi de suite.La forme générale pour un nombre quelquonque de cellules est :

B =q2

12

N∑j=1

∫ 1

0

3∏i=j

αi|Hi(f)|2 df (III.36)

Olivier VENARD- 2010

Page 44: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

42 Quantification et Stabilité

6.4 Ordonnancement des cellulesLe problème de l’ordonnancement des cellules peut recevoir plusieurs réponses. En analogique, on cascade les cellules du 2nd

ordre par ordre de surtension croissante pour minimiser les problèmes de saturation locale, mais on ne rencontre pas de problèmede bruit de quantification.

En numérique l’ordonnancement des cellules dépend du type de norme que l’on cherche à minimiser pour le bruit de quanti-fication et du type de norme adoptée pour le calcul du facteur d’échelle.

On retiendra les règles suivantes :– Si la mise à l’échelle est faite suivant la norme L2 et que l’on souhaite minimiser la norme L∞ du bruit de quantification,

alors les cellules devront être ordonnées par ordre de surtension décroissante.– Si la mise à l’échelle est faite suivant la norme L∞ et que l’on souhaite minimiser la norme L2 du bruit de quantification,

alors les cellules seront ordonnées par ordre de surtension croissante.– Si on choisit pour les 2 critères la même norme, L2 ou L∞, La norme du bruit de quantification sera peu sensible à

l’ordonnancement des cellules.

6.5 Rapport signal sur bruitSi on considère une cellule d’ordre 2 ayant en entrée un bruit blanc de variance σ2

x, le rapport signal sur bruit de quantificationen sortie est donné par :

σ2x

∫ 1

0

|H(f |2 df

q2

121α2

0

∫ 1

0

|H(f)|2 df=

σ2x

q2

121α2

0

. (III.37)

Plus la cellule aura une surtension importante , plus petit sera le facteur d’échelle appliquée sur les données. Cela entraînera unedégradation du rapport signal sur bruit de quantification.

Olivier VENARD- 2010

Page 45: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Chapitre IV

Traitement multicadence

Le traitement multicadence, traitement qui implique plusieurs fréquences d’échantillonnage, peut avoir plusieurs motivations.Il peut être le fruit de contraintes liées à une application dans laquelle les flux de signaux numériques à traiter et à générer doiventl’être à des fréquences d’échantillonnage différentes. Cette situation peut se rencontrer par exemple dans les applications audiooù co-existent plusieurs fréquences d’échantillonnage : 32kHz, 44.1kHZ, , 48kHz, 96kHZ, ...Cette approche peut aussi permettre d’améliorer les caractéristiques d’implantation d’un algorithme en adoptant pour chacune deses étapes un échantillonnage que l’on appelle critique dans le sens où la fréquence de traitement est choisie égale à la fréquencede NYQUIST. Ainsi la chaîne de traitement correspondant à l’émetteur bande de base d’un modulateur DPQSK représentéefigure IV.1, où l’on a trois fréquences de traitement : la fréquence bit, la fréquence symbole et la fréquence d’échantillonnage.Les frontières entre chaque domaine de fréquence de traitement doit gérer le changement correspondant.

FIGURE IV.1 – Structure d’un modulateur DQPSK en bande de base

Dans ce chapitre nous aborderons les changements de fréquence d’échantillonnage entier ou rationnel, c’est à dire pouvantse décomposer en une étape de suréchantillonnage par un facteur entier et une étape de décimation, là encore d’un facteur entier.

1 Suréchantillonnage

Le suréchantillonnage d’un signal d’un facteur L consiste à insérer L − 1 échantillons à zéro entre chaque échantillon dusignal d’entrée. Cette opération correspond à l’équation aux différences :

y(m) =

{x(n) si m = nL,

0 sinon.(IV.1)

Cette opération de suréchantillonnage se représente par le diagramme bloc figure IV.2.

43

Page 46: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

44 Traitement multicadence

FIGURE IV.2 – représentation du suréchantillonnage

1.1 Transformée en Z du signal suréchantillonnéLa transformée en Z du signal suréchantillonné est donné par :

Y (z) =+∞∑

m=−∞y(m)z−m =

+∞∑n=−∞

y(nL)z−nL (avec m = nL)

=+∞∑

n=−∞x(n)(zL)−n = X(zL).

(IV.2)

Si on évalue cette transformée en Z sur le cercle unité, en notant Fe la fréquence d’échantillonnage après le suréchantillon-nage, on obtient :

Y (z) = X(zL)∣∣z=e

j2π fFe

= X(ej2π

fFeL)

= X(ej2π

fFe/L

)= X

(ej2π f

F ′e

). (IV.3)

Ceci illustre que y(n) et de x(n) ont le même spectre, seul change la fréquence d’échantillonnage. Ceci n’a rien de surprenantdans la mesure où le suréchantillonnage introduit seulement des échantillons à zéro, donc aucune information, dans le signal dedépart et maintient un écart uniforme entre les échantillons significatifs (y(nL)) .

L’opération de suréchantillonnage par un facteur L fait passer du signal représenté figure IV.3.a au signal représenté figureIV.3.b.

(a) signal original (b) signal suréchantilloné par 3

FIGURE IV.3 – Suréchantillonnage d’un facteur 3 dans le domaine temporel

La fréquence d’échantillonnage du signal original est F ′e = Fe/L, son spectre est représenté figure IV.4.a, il est F ′e périodique.Après suréchantillonnage, sa forme reste la même (figure IV.4.b)(aucune énergie n’a été ajoutée au signal), mais la fréquenced’échantillonnage est maintenant de Fe.

Si on considère les fréquences entre −Fe et Fe, le suréchantillonnage fait apparaître ce que l’on appelle des spectres miroirsautour des fréquences kFeL pour k = 1 · · ·L− 1.

Pour obtenir une signal dont la forme temporelle correspondrait au signal x(n) que l’on aurait échantillonné à une fréquenceFe, il faut supprimer ces spectres miroirs et donc filtrer passe-bas le signal suréchantillonné y(m) avec un filtre ayant une bandeatténuée à partir de Fe

2L , comme illustré sur le synoptique IV.5.Dans le domaine temporel ce filtre est simplement un filtre d’interpolation. Les échantillons du signal de sortie xL(m) sont

égaux aux échantillons du signal d’entrée x(n) pour m = nL, sinon ils sont égaux à une combaison linéaire de l’ensemble dusignal d’entrée (produit de convolution).

y(m) =+∞∑p=−∞

xL(m)h(p−m) (IV.4)

Le filtre d’interpolation idéal a pour gabarit :∣∣∣∣H (kFeL)∣∣∣∣ =

{1 si

∣∣kFeL ∣∣ 6 Fe2L ,

0 sinon.(IV.5)

Olivier VENARD- 2010

Page 47: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Traitement multicadence 45

(a) spectre du signal original (b) spectre du signal suréchantillonnéd’un facteur 3

FIGURE IV.4 – Suréchantillonnage dans le domaine fréquentiel

et pour réponse impulsionnelle h(n) = 1L sinc

(nL

). Ainsi en utilisant un tel filtre on aurait xL(m) = x(n)

L pour m = nL.Le filtre d’interpolation idéal doit donc avoir un gain de L dans la bande passante et répondre au gabarit :∣∣∣∣HL

(kFeL

)∣∣∣∣ =

{L si

∣∣kFeL ∣∣ 6 Fe2L ,

0 sinon.(IV.6)

Après interpolation du signal suréchantillonné on obtient le signal temporel représenté figure IV.6.a dont le spectre est représentéfigure IV.6.b.

FIGURE IV.5 – Filtre d’interpolation après le suréchantillonnage

(a) domaine temporel (b) domaine fréquentiel

FIGURE IV.6 – Signal suréchantillonné et interpolé

Filtres Lème de bande

Les filtres dits Lème de bande répondent aux critères ci-dessus. Deux filtres particuliers sont le filtre ayant comme réponseimpulsionnelle le sinus cardinal (filtre d’interpolation idéal) et le filtre en cosinus surélevé Un filtre Lème de bande a les caracté-ristiques temporelles suivantes : {

h(0) = 1h(nL) = 0 ∀n 6= 0.

(IV.7)

Ces filtres ont comme propriété particulière :L−1∑n=0

H (zWnL ) = L. (IV.8)

Olivier VENARD- 2010

Page 48: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

46 Traitement multicadence

FIGURE IV.7 – Filtre d’interpolation idéal et filtre en cosinus surélevé pour un rapport Fe/Fs = 16 (fréquence d’échantillonnageet fréquence symbole)

1.2 Identité remarquable du suréchantillonnagela propriété remarquable du traitement multicadence dans le cas du suréchantillonnage, figure IV.8.

FIGURE IV.8 – Identité remarquable suréchantillonnage

La transformée en Z correspondant à la partie gauche de la figure IV.8 est le produit de la transformée en Z d’un signal x(n)suréchantillonné d’un facteur L et d’un filtre ayant pour transformée en Z R(zL) :

Y (z) = X(zL)R(zL).

La transformée en Z correspondant au schéma bloc de la partie droite de la figure IV.8 est le suréchantillonnage du produit de latransformée en Z d’un signal x(n) et d’un filtre de transformée en Z R(z).

W (z) =X(z)R(z),

Y (z) =W (zL) = X(zL)R(L).

Les deux systèmes représentés sur la figure IV.8 ont la même transformée en Z et sont donc équivalents.

1.3 Décomposition polyphase, cas du suréchantillonnageLa décomposition polyphase est obtenue en effectuant le changement de variable n = mL + (L − k − 1) avec N = lL,

k = 0 · · ·L− 1 et m = 0 · · · l − 1. On obtient alors :

Q(z) =N−1∑n=0

q(n)z−n =L−1∑k=0

l−1∑m=0

q(mL+ L− k − 1)z−(mL+L−k−1),

=L−1∑k=0

z−(L−1−k)l−1∑m=0

q(mL+ (L− k − 1))(zL)−m,

Q(z) =L−1∑k=0

z−(L−1−k)Rk(zL).

(IV.9)

avec

Rk(z) =l−1∑m=0

rk(m)z−m

et rk(m) = q(mL+ (L− k − 1)).

(IV.10)

Le diagramme bloc correspondant à l’équation (IV.9) est représenté figure IV.9.a. En appliquant la propriété remarquable (figureIV.8), on obtient le synoptique figure IV.9.b.

Olivier VENARD- 2010

Page 49: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Traitement multicadence 47

(a) Structure polyphase I (b) Structure polyphase II

FIGURE IV.9 – Structure polyphase pour le suréchantillonnage

A chaque instant d’échantillonage en sortie du système représenté sur la partie droite de la figure IV.9, une seule composantepolyphase est non nulle. Cela conduit au modèle du commutateur représenté figure IV.10, où on ne considère à chaque instantd’échantillonnage que la composante non nulle. Cette figure représente aussi la charge de calcul associée.

FIGURE IV.10 – Modèle du commutateur pour l’interpolation

2 DécimationLa décimation par M d’un signal consiste à ne conserver en sortie qu’un échantillon sur M du signal d’entrée. Il s’agit donc

d’une opération d’échantillonnage sur un signal numérique et en tant que telle, elle doit respecter la règle de NYQUIST concernantla fréquence de ce nouvel échantillonnage afin de ne pas introduire de distorsion par repliement spectral dans le signal de sortie.

Cette opération de décimation se représente par le diagramme bloc figure IV.12 et elle correspond à l’équation aux diffé-rences :

y(m) =

{x(n) si n = mM,

0 sinon.(IV.11)

que l’on peut aussi écrire :y(m) = x(mM). (IV.12)

Olivier VENARD- 2010

Page 50: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

48 Traitement multicadence

FIGURE IV.11 – Opération de décimation

FIGURE IV.12 – représentation de la décimation

L’opération de décimation correspond donc à une opération d’échantillonnage dans le domaine discret :

y(m) =+∞∑

m=−∞x(n)δ(n−mM), (IV.13)

on note p(n) =∑δ(n−mM), un peigne de kronecker de période M donc développable en série de FOURIER 1 :

p(n) =1M

M−1∑k=0

P (k)ej2πkM n, (IV.14)

avec P (k) les coefficients du développement en série de FOURIER, que l’on obtient de la manière suivante :

P (k) =1M

M−1∑n=0

+∞∑m=−∞

δ(n−mM) e−j2πkM n. (IV.15)

avec δ(n−mM) 6= 0 pour n = mM , mais on a n ∈ {0,M − 1}. Donc δ(n−mM) 6= 0 seulement pour n = 0. On a donc :

P (k) =1M, (IV.16)

et

p(n) =1M

M−1∑k=0

ej2πkM n (IV.17)

En introduisant (IV.17) dans (IV.13), on obtient sachant la relation n = mM :

y(m) = y( nM

)= x(n) · 1

M

M−1∑k=0

ej2πkM n (IV.18)

que l’on peut réécrire :

y(m) =1Mx(n) +

1Mx(n)

M−1∑k=1

ej2πkM n, (IV.19)

où le terme de droite fait apparaître les versions modulées du signal initial autour de la nouvelle fréquence d’échantillonnage 2πM

et de ses multiples k 2πM .

2.1 Transformée en Z du signal déciméLa transformée en Z du signal décimé est donné par :

Y (z) =+∞∑

m=−∞y(m)z−m, (IV.20)

1. Somme de POISSON.

Olivier VENARD- 2010

Page 51: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Traitement multicadence 49

(a) signal non décimé (b) signal dont 2 échantillons sur 3 sontmis à zéro

(c) signal décimé

FIGURE IV.13 – Étape de la décimation par 3 d’un signal dans le domaine temporel

donc

Y (z) =+∞∑

n=−∞y( nM

)z−

nM

=+∞∑

n=−∞

[x(n) · 1

M

M−1∑k=0

ej2πkM n

]z−

nM

=1M

M−1∑k=0

+∞∑n=−∞

x(n)(z

1M ej2π

kM

)−n=

1M

M−1∑k=0

X(z

1M ej2π

kM

).

(IV.21)

On note, avec WM = ej2πM :

Y (z) =1M

M−1∑k=0

X(z

1MW k

M

)(IV.22)

La transformée en Z du signal décimé est donc :

Y (z) =1MX(z

1M ) +

1M

M−1∑k=1

X(z

1MW k

M

)(IV.23)

L’évaluation de Z sur le cercle unité(z = e

j2π fF ′e

), avec F ′e la fréquence d’échantillonnage après décimation, nous permet de

faire ressortir le changement de fréquence d’échantillonnage :

z1M

∣∣∣z=e

j2π fF ′e

= ej2π f

MF ′e = ej2πfFe , (IV.24)

on a donc la relation :Fe = MF ′e,

qui montre bien que la fréquence d’échantillonnage initiale est M fois supérieure à la fréquence d’échantillonnage du signaldécimé.

Les figures IV.13 et IV.14 représentent le processus de décimation dans le domaine temporel et dans le domaine fréquentiel.Le signal initial dont le spectre est représenté à gauche, figure IV.14 est échantillonné à la fréquence d’échantillonnage Fe. Aprèsdécimation d’un facteur M ce qui revient à mettre à zéro M − 1 échantillons tout les M échantillons (voir figure centrale IV.13),le spectre se trouve périodisé à la fréquence Fe/M (partie centrale de la figure IV.14). On ne conserve que les échantillonssignificatifs (non mis à zéro) pour obtenir le signal représenté sur la partie droite de la figure IV.13, dont le spectre est périodiséà la nouvelle fréquence d’échantillonnage F ′e. On peut observer la partie centrale de la figure IV.14 à la lumière de l’équation(IV.23). On retrouve bien autour de la fréquence nulle le spectre du signal initial pondéré d’un facteur 1/M . Puis à tout lesmultiples positifs et négatifs de Fe/M .

Olivier VENARD- 2010

Page 52: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

50 Traitement multicadence

(a) spectre du signal non décimé (b) spectre du signal dont 2 échantillonssur 3 sont mis à zéro

(c) spectre signal décimé

FIGURE IV.14 – Étape de la décimation d’un signal par 3 dans le domaine fréquentiel

Cette périodisation du spectre peut entraîner un repliement de spectre dans le signal décimé si aucune précaution n’est prise.Pour pouvoir décimer un signal sans introduire de distorion due au repliement de spectre il est nécessaire que le signal décimé soitstrictement à bande limité Fe/2M . Pour cela l’opération de décimation doit souvent être précédée d’un filtre passe-bas (figureIV.15).

FIGURE IV.15 – Filtre anti-repliement avant décimation

2.2 Identité remarquable de la décimationUne propriété remarquable de la décimation est que la sortie d’un système composé par un filtre suivi d’un décimateur est la

même que celle d’un décimateur suivi d’un filtre figure IV.16. L’intérêt de cette transformation est que dans le second cas le filtreest évalué à la fréquence d’échantillonnage la plus faible.

FIGURE IV.16 – Identité remarquable de la décimation

Sur la partie gauche de la figure IV.16, une entrée x(n) est filtrée par un filtre de fonction de transfertH(zM ). La transforméeen Z de la sortie v(n) du filtre est donnée par :

V (z) = X(z)H(zM ),

qui devient en sortie du sortie du décimateur (IV.22) :

Y (z) =1M

M−1∑k=0

V(z

1MW k

M

)=

1M

M−1∑k=0

X(z

1MW k

M

)H

((z

1MW k

M

)M)

=1M

M−1∑k=0

X(z

1MW k

M

)H (z) .

(IV.25)

Sur la partie droite de cette figure, l’entrée x(n) est d’abord décimée, la transformée en Z de la sortie v(n) du décimateur estdonc :

V (z) =1M

M−1∑k=0

X(z

1MW k

M

),

Olivier VENARD- 2010

Page 53: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Traitement multicadence 51

puis la sortie du décimateur est filtrée par un filtre de fonction de transfert H(z). La transformée en Z de la sortie y(n) est donc :

Y (z) = V (z)H(z) =1M

M−1∑k=0

X(z

1MW k

M

)H (z) . (IV.26)

Cette dernière équation est strictement identique à (IV.25). Les deux structures représentées figure IV.16 sont donc équivalentes.

2.3 Décomposition polyphase, cas de la décimationSi on considère un filtre FIR de longueur N ayant pour réponse impulsionnelle h(n), dont la transformée en Z est donnée

par :

HM (z) =N−1∑n=0

h(n)z−n, (IV.27)

siN = mM (ce qui est toujours possible en rallongeant la séquence h avec des zéros), soit le changement de variable n = lM+kque l’on introduit dans (IV.27), on obtient alors :

HM (z) =M−1∑k=0

NM−1∑l=0

h(lM + k)z−(lM+k)

=M−1∑k=0

z−k

NM−1∑l=0

h(lM + k)(zM)−l

=M−1∑k=0

z−kEk(zM )

(IV.28)

avec

Ek(z) =m−1∑l=0

ek(l)z−l =m−1∑l=0

h(lM + k)z−l. (IV.29)

Ce qui nous permet de passer de la figure IV.15 à la structure représentée figure IV.17.

FIGURE IV.17 – Décomposition polyphase pour la décimation

Puis en appliquant l’identité remarquable de la décimation (figure IV.16), on obtient la structure figure IV.18.

2.4 Exemple d’application : le convertisseur Sigma-DeltaLe modulateur Σ∆ d’ordre 1 a pour fonction de transfert :

Y (z) = X(z)z−1 + E(z)(1− z−1) (IV.30)

En évaluant sur le cercle unité :

|He(f)|2 = 2(

1− cos(

2πfFe

))≈(

2πfFe

)2

(IV.31)

si f � Fe. Le spectre de ce filtre de mise en forme est représenté figure 2.4 pour des modulateurs d’ordre 1 et 2.

Olivier VENARD- 2010

Page 54: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

52 Traitement multicadence

FIGURE IV.18 – Décomposition polyphase pour la décimation après translation de ladécimation vers l’entrée

FIGURE IV.19 – Modèle du commutateur pour la décimation

FIGURE IV.20 – Filtrage du bruit de quantification pour un convertisseur Σ∆

3 Commutativité de la décimation et du suréchantillonnageLes opérateurs de décimation et de suréchantillonnage sont commutatifs si le rapport de décimation (M ) et le rapport de

suréchantillonnage (L) sont premiers entre eux.

4 Changement de fréquence d’échantillonnage

4.1 Principe général

On souhaite changer numériquement la fréquence d’échantillonnage d’un signal x(n) et passer d’une fréquence d’échan-tillonnage F1 à une fréquence d’échantillonnage F2 où F2

F1= L

M est un rationnel. Cela conduit donc à suréchantillonner le signal

Olivier VENARD- 2010

Page 55: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Traitement multicadence 53

(a) filtre moyenneur de longueur 128 (b) 3 filtres moyenneur de longueur 128en cascade

FIGURE IV.21 – Filtres moyenneurs

FIGURE IV.22 – Structure récursive pour un filtre moyenneur

FIGURE IV.23 – Filtre moyenneur de longueur M suivi d’une décimation par M

FIGURE IV.24 – Application de l’identité remarquable pour la décimation (figIV.16)

x(n) d’un facteur L puis à le décimer d’un facteur M .Le suréchantillonnage par L doit être suivie d’un filtre passe-bas coupant à Fe/2L pour supprimer les spectres dus à l’suré-

chantillonnage, où Fe est la fréquence d’échantillonnage du signal de sortie (Figure IV.25).

FIGURE IV.25 – Suréchantillonnage

La décimation par M doit être précédée d’un filtrage anti-repliement ayant une fréquence de coupure de Fe/2M , si Fe est lafréquence d’échantillonnage du signal d’entrée (Figure IV.26).

Le système complet de changement de fréquence d’échantillonnage est donc représenté par le synoptique Figure (IV.27)Il apparait clairement sur cette figure qu’il est possible de ne conserver qu’un seul des deux filtres passe-bas : celui dont la

fréquence de coupure est la plus basse :

Olivier VENARD- 2010

Page 56: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

54 Traitement multicadence

FIGURE IV.26 – Décimation

FIGURE IV.27 – Système complet

– Si L > M , on conserve le filtre HL(Z),– si M > L, on conserve le filtre HM (Z).Dans cette configuration le filtre est évalué à la fréquence d’échantillonnage la plus élevée, ce qui correspond à la densité

maximum d’opérations (MAC/s). La décomposition polyphase permet d’obtenir une implantation où le filtre sera évalué à lafréquence d’échantillonnage la plus basse.

L’objectif est donc de passer à l’aide de ces identités d’une structure suréchantillonnage filtrage décimation (SFD) (FigureIV.28) où le filtre passe-bas est évalué à la fréquence d’échantillonnage la plus élevée à une structure décimation filtrage sur-échantillonnage (DFS) (Figure IV.29).

FIGURE IV.28 – Structure SFD

FIGURE IV.29 – Struture DFS

Le passage de la structure SFD à la structure DFS nécessite que les opérations de suréchantillonnage et de décimation soientcommutatives, ce qui n’est vrai que dans le cas où L et M sont premiers entre eux.

4.2 Implantation polyphaseDans cet exemple, on souhaite sur une réduction de fréquence d’échantillonnage d’un signal audio d’un facteur 2/3 (passage

de 48kHz à 32kHz). Dans la partie ci-dessous nous présentons la structure polyphase conduisant évaluer le filtre à la fréquencela plus basse possible. On a donc au départ la structure de la figure IV.28 avec L = 2 et M = 3. En appliquant la décompositionpolyphase pour le suréchantillonnage (figure IV.9) on obtient la structure figure IV.30 :

FIGURE IV.30 – 1ère étape

Puis on transforme le retard Z−1 = Z2 Z−3. Puisque L etM sont premiers entre eux, les opérations de décimation et de suréchan-tillonage sont commutatives, on peut donc permutter le décimateur et le suréchantillonneur. Enfin on applique sur chacune descomposantes polyphases une décomposition polyphase pour la décimation (figure IV.18), afin d’obtenir la structure représentéefigure IV.31 qui correspond à une implantation DFS (Figure IV.29).

Olivier VENARD- 2010

Page 57: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Traitement multicadence 55

FIGURE IV.31 – Structure finale

À partir de la structure proposée figure IV.31, on pourra concevoir un système permettant d’effectuer un changement defréquence d’échantillonnage 48kHz→ 32kHz avec, par exemple, 16 bits de précision. Cette précision déterminera le gabarit dufiltre (ondulation dans la bande passante et dans la bande atténuée).

Complexité de calcul

Si on note N la longueur du filtre, la puissance de calcul nécessaire pour une implantation SFD est :

N.Fe.L = N.48e3.2 MAC/s.

Après la décomposition polyphase pour les suréchantillonnage réalisée dans l’étape 1, la complexité de calcul devient, en posantN = Ll = 2l :

N

L.Fe.L = N.48e3 MAC/s.

En appliquant la décomposition polyphase pour la décimation à R0(z) et R1(z), on obtient pour chacun de ces filtres la com-plexité de calcul suivante (en notant l = Mm) :

l

MFe = m.48e3 MAC/s,

on a donc une charge de calcul pour les deux filtres :

2.m.48e3 MAC/s.

On peut exprimer cette charge de calcul en fonction de la longueur N du filtre, avec N = L.l = L.M.m = 2.3.m :

2.m.48e3 = 2N

2.348e3 =

N

348e3 MAC/s.

5 Banc de filtres

5.1 Quelques propriétés de la transformée en Z

Modulation autour de Fe/2

Soit un signal h(n) que l’on module autour de Fe/2, on a :

h(n)ejπn = (−1)nh(n). (IV.32)

La transformée en Z du signal modulé est :∑n

h(n)ejπnz−n =∑n

h(n)(e−jπz

)−n= H(−z). (IV.33)

Olivier VENARD- 2010

Page 58: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

56 Traitement multicadence

FIGURE IV.32 – transformation passe-bas passe-haut par modulation

Retournement temporel

Soit H(z) la transformée en Z de la suite h(n) :

H(z) =∑n

h(n)z−n = h0 + h1z−1 + · · ·+ hN−1z

−(N−1). (IV.34)

On considère maintenant cette suite retournée temporellement :

H ′(z) = hN−1 + · · ·+ h1z−(N−2) + h0z

−(N−1),

que l’on peut reécrire :

H ′(z) = (hN−1zN−1 + · · ·+ h1z + h0)z−(N−1),

on a donc l’égalité :H ′(z) = H

(z−1)z−(N−1). (IV.35)

5.2 Banc de filtres à 2 canauxDans un banc de filtres à 2 canaux on sépare le signal d’entrée en un signal passe-haut et un signal passe-bas, respectivement

d(n) et a(n) sur la figure IV.33. On appelleH0(z) etH1(z) les filtres passe bas et passe haut du banc d’analyse et F0(z) et F1(z)les filtres passe bas et passe haut du banc de synthèse. On appelle X(z) la transformée en Z du signal x(n). L’expression de la

FIGURE IV.33 – Banc de filtres à 2 canaux

sortie du banc de filtre est donnée par :

X(z) = [F0(z)H0(z) + F1(z)H1(z)]X(z). (IV.36)

Il y aura reconstruction parfaite, c’est à dire x(n) = x(n) à un retard près, si on a la propriété :

F0(z)H0(z) + F1(z)H1(z) = z−k. (IV.37)

Cette dernière égalité correspond au fait que le banc de filtres n’introduit aucune distorsion d’amplitude, ni de phase.

5.3 Banc de filtres multicadence à 2 canauxL’inconvénient de la structure représentée figure IV.33 est que le nombre d’échantillon est multiplié par 2 en sortie du banc

d’analyse ; il y a autant d’échantillon pour a(n) et d(n) que pour x(n).Si les filtres du banc d’analyse H0(z) et H1(z) ont des gabarits correspondant à ceux représentés figure IV.34, alors il est

possible d’introduire un échantillonnage critique en décimant par deux en sortie des filtres du banc du d’analyse. La structureobtenue est représentée figure IV.35. En considérant la transformée en Z du signal décimé, (IV.23), on peut écrire la transformée

Olivier VENARD- 2010

Page 59: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Traitement multicadence 57

FIGURE IV.34 – Type de gabarit des filtres du banc

FIGURE IV.35 – Banc de filtres à 2 canaux multicadence

en Z de la sortie du filtre passe-bas du banc d’analyse suivi du décimateur :

A(z) =12

[H0(z1/2)X(z1/2) +H0(−z1/2)X(−z1/2)

](IV.38)

et celle de la sortie du filtre passe-haut suivi du décimateur par 2 :

D(z) =12

[H1(z1/2)X(z1/2) +H1(−z1/2)X(−z1/2)

](IV.39)

Si maintenant on considère la transformée en Z d’un signal suréchantillonné (IV.2). La sortie du banc de synthèse est alors donnépar :

X(z) = A(z2)F0(z) +D(z2)F1(z). (IV.40)

En remplaçant A(z) et D(z) par leurs expressions dans (IV.38) et (IV.39), on obtient :

X(z) =12

[F0(z)H0(z) + F1(z)H1(z)]X(z)

+12

[F0(z)H0(−z) + F1(z)H1(−z)]X(−z)(IV.41)

Le premier terme de (IV.41) correspond à (IV.36) et le second terme est introduit du fait de la décimation (repliement de spectre)et du suréchantillonnnage (spectres miroirs).

Pour obtenir une reconstruction parfaite on doit donc avoir les conditions :

F0(z)H0(−z) + F1(z)H1(−z) = 0, (IV.42)

etF0(z)H0(z) + F1(z)H1(z) = 2z−l, (IV.43)

où l correspond au temps de groupe de la mise en cascade des filtres passe-bas H0(z) et F0(z) et passe-haut H1(z) et F1(z). Lapremière condition (IV.42) est réalisée si on choisit les filtres du banc de synthèse en fonction de ceux du banc d’analyse de l’unedes deux manières suivantes :

F0(z) = −H1(−z) et F1(z) = H0(−z), (IV.44)

ou

F0(z) = H1(−z) et F1(z) = −H0(−z). (IV.45)

L’équation (IV.43) se réécrit alors (respectivement) :

−H1(−z)H0(z) +H0(−z)H1(z) = 2z−l, (IV.46)

Olivier VENARD- 2010

Page 60: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

58 Traitement multicadence

ou

H1(−z)H0(z)−H0(−z)H1(z) = 2z−l. (IV.47)

En posant :P (z) = H1(−z)H0(z), (IV.48)

Les deux relations (IV.46) et (IV.47) se réécrivent :

−P (z) + P (−z) = 2z−l, (IV.49)

ou

P (z)− P (−z) = 2z−l. (IV.50)

Les filtres P (z) vérifiant la propriété (IV.50) (ou de manière équivalente(IV.49)) sont des filtres demi-bandes 2.

notation matricielle

L’équation (IV.41) peut s’exprimer sous forme matricielle en faisant intervenir ce que l’on nomme les matrices de modula-tion : [

X(z)X(−z)

]=

12

[F0(z) F1(z)F0(−z) F1(−z)

] [H0(z) H0(−z)H1(z) H1(−z)

] [X(z)X(−z)

]. (IV.51)

Que l’on peut noter :

xm(z) =12Fm(z)HT

m(z)xm(z). (IV.52)

La condition (IV.47) se reécrit alors :det Hm(z) = 2z−l (IV.53)

5.4 Filtres miroirs en quadrature (QMF)

Si en plus des conditions (IV.45) (ou (IV.44)), on impose aussi : H1(z) = H0(−z). On a alors le jeu de contraintes :

H1(z) = H0(−z), (IV.54)F0(z) = H0(z), (IV.55)

F1(z) = −H0(−z). (IV.56)

le filtre passe-haut du banc d’analyse correspond à la version modulée du filtre passe-bas (cf figure IV.32). La condition (IV.50)peut se réécrire :

H20 (z)−H2

1 (z) = 2z−l (IV.57)

ou

H20 (z)−H2

0 (−z) = 2z−l, (IV.58)

dans les expressions (IV.57) et (IV.58) les deux formulations des termes de gauche correspondent à la fonction de distorsiond’amplitude et de phase. Si ces deux distorsions sont effectivement supprimées, alors ces termes correspondent à un retard purtel qu’exprimé dans ces expressions.

Si H0(z) est à phase linéaire, alors l’expression (IV.58) montre qu’il n’y aura pas de distorsion de phase. Il reste alors àchoisir H0(z) afin de minimiser la distorsion d’amplitude du banc de filtres. Le terme de gauche de l’équation (IV.58) est unefonction impaire de z, et donc l doit être impaire, ce qui contraint à choisir H0(z) d’ordre pair 3.

En imposant les conditions (IV.45) et (IV.54), le banc de filtres représenté figure IV.35 devient celui représenté figure IV.36.

2. Ces filtres ont la propriété suivante concernant leurs coefficients : tous leurs coefficients de rang pair sauf le coefficient central (n = 0) sont nuls.3. Sinon le banc de filtre aura un zéro de transmission à π/2

Olivier VENARD- 2010

Page 61: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Traitement multicadence 59

FIGURE IV.36 – Banc de filtres miroirs en quadrature

Décomposition polyphase

Les décompositions polyphases pour deux composantes de H0(z), H0(−z) et −H0(−z) sont données par :

H0(z) =∑m

h0(2m)z−2m + z−1∑m

h0(2m+ 1)z−2m = H0,0(z2) + z−1H0,1(z2), (IV.59)

H0(−z) =∑m

h0(2m)z−2m − z−1∑m

h0(2m+ 1)z−2m = H0,0(z2)− z−1H0,1(z2), (IV.60)

−H0(−z) = −∑m

h0(2m)z−2m + z−1∑m

h0(2m+ 1)z−2m = −H0,0(z2) + z−1H0,1(z2). (IV.61)

L’exploitation de la structure des expressions polyphases (IV.59) et (IV.60) permet d’obtenir pour le banc d’analyse la structure

(a) Filtre passe-bas (b) Décomposition polyphase (c) Propriété de la décimation

FIGURE IV.37 – Branche passe-bas

(a) Filtre passe-haut (b) Décomposition polyphase (c) Propriété de la décimation

FIGURE IV.38 – Branche passe-haut

FIGURE IV.39 – Structure résultante pour le banc d’analyse

représentée figure IV.39 et pour le banc global la structure représentée figure IV.40.Pour réaliser un tel banc de filtre, il faut donc trouver un filtre prototype P (z) = H2

0 (z) respectant la propriété (IV.58). C’està dire un filtre P (z) qui soit un filtre demi-bande qui puisse s’exprimer sous forme la forme factorisée H2

0 (z) = H0(z)H0(z−1).Il n’existe en fait pas de filtre FIR à phase linéaire permettant de vérifier la condition (IV.58) et pouvant se factoriser selon lemodèle ci-dessus, hormis le filtre de HAAR : 1 + z−1.La réalisation d’un tel banc de filtre se fait donc en utilisant une procédure d’optimisation.

Olivier VENARD- 2010

Page 62: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

60 Traitement multicadence

FIGURE IV.40 – Banc d’analyse et de synthèse

5.5 Filtre conjugués en quadratureUne autre structure de banc de filtre peut être obtenu en choisissant :

H1(z) = −z−(N−1)H0(−z−1), (IV.62)

le filtre passe-haut du banc d’analyse correspond au filtre passs-bas modulé dont la réponse impulsionnelle a été retournée.Les filtres passe-bas et passe-haut du banc de synthèse sont alors donnés par :

F0(z) = H1(−z) = z−(N−1)H0(z−1), (IV.63)F1(z) = −H0(−z). (IV.64)

La propriété de reconstruction parfaite (IV.43)(distorsion d’amplitude et de phase) s’écrit alors :

z−(N−1)[H0(z−1)H0(z) +H0(−z−1)H0(−z)

]= 2z−l, (IV.65)

avec l = N − 1.

Olivier VENARD- 2010

Page 63: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Chapitre V

Transformée en ondelettes

La norme JPEG2000 spécifie deux bases d’ondelettes bi-orthogonales pour la compression : les filtres bi-orthogonaux 9-7et 5-3. Les premiers sont utilisés dans le cas de la compression avec pertes et les seconds pour la compression sans pertes. Lacompression sans perte peut être obtenu dans le cas des filtres 5-3 car leurs coefficients peuvent être représentés exactement enprécision finie. Ces deux bases sont dérivés à partir des filtres demi-bandes spécifiés par I.Daubechies et correspondent à unefactorisation spectrale spécifique de ces filtres demi-bande qui dans le cas d’une base orthogonale aboutissent respectivementaux bases d’ondelettes dites D8 et D4. Structure de base de la transformée en ondelettes L’algorithme classique d’implantationde la transformée en ondelettes dyadique est l’algorithme de Mallat où la transformée en ondelettes (TO) est réalisée par un filtrepasse haut suivi d’une décimation par 2 et d’un filtre passe-bas suivi d’une décimation par 2. Ce bloc de base est ensuite itéré à lasortie du filtre passe bas de l’étage précédent. Le nombre d’étage utilisé dans la transformation correspond au nombre de niveaude décomposition. On appelle les filtres appliqués pour réaliser la transformée en ondelettes filtres d’analyse.

FIGURE V.1 – bloc de base de la transformée en ondelettes, algorithme de Mallat.

La transformée en ondelettes est une transformation sans perte. On peut retrouver exactement le signal de départ aprèstransformée inverse (TOI). Cette transformée inverse est obtenue en appliquant une interpolation par 2 puis un filtrage passe-bassur le signal passe-bas obtenu par la TO et en appliquant une interpolation par 2 puis un filtrage passe-haut sur le signal passe-haut obtenu par la TO. Le résultat de ces deux opérations sont ensuite sommés. Dans le cas d’une base orthogonale, les filtresde synthèse, filtres correspondant à la transformée inverse, sont les mêmes que ceux d’analyse, mais retournés temporellement.Pour une base bi-orthogonale les filtres de synthèse et d’analyse sont différents et ne sont pas forcément de la même longueur.

1 Banc de filtresEn posant P (z) = H0(−z)H1(z) :

P (z)− P (−z) = 2z−l. (V.1)

Le terme de gauche de cette équation nous montre qu’il s’agit d’une fonction impaire, pour que le terme de droite soit unefonction impaire il est nécessaire que l soit impair. Si on multiplie les deux cotés de cette équation par zl et que l’on poseP0(z) = zlP (z), on obtient la condition sous la forme :

P0(z)− P0(−z) = 2. (V.2)

Le filtre de transformée en Z, P0(−z) correspond au filtre P0(z) modulé autour de la moitié de la fréquence d’échantillonnage.Le type de filtre dont la transformée en Z respecte la condition donnée par l’équation (V.2) sont les filtres demi-bande. Ces filtresont la propriété suivante concernant leurs coefficients : tous leurs coefficients de rang pair sauf le coefficient central (n = 0) sontnuls.

Pour calculer les filtres correspondant à une transformée en ondelettes, il suffit donc de choisir un filtre demi bande P0(z)puis de le factoriser en deux filtres H0(z) et H1(−z) et d’en déduire F0(z) et F1(z).

61

Page 64: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

62 Transformée en ondelettes

2 Filtres de DaubechiesLe choix du filtre demi-bande conditionne les propriétés de la base d’ondelettes que l’on obtient. En général et c’est tous

particulièrement vrai dans les applications de compression, on souhaite obtenir une ondelette qui aura le plus de moments nuls.Le nombre de moments nuls est définit par la valeur de k dans l’expression suivante :∫

xk(t)ψa,b(t)dt = 0,

Cette propriété correspond au fait que la projection de toutes fonctions polynomiale de degré inférieur ou égale à k sur uneondelette ψ à l’échelle a sera nulle. seules les fonctions de degré supérieur à k auront des coefficients non nuls. On chercheradonc à avoir le nombre de moments nuls k le plus élevé possible, toutefois le nombre de moments nuls implique une longueurminimale pour les filtres FIR réalisant la TO. Ingrid DAUBECHIES a montré que le nombre de moments nuls est relié au nombrede zéro du filtre à la moitié de fréquence d’échantillonnage.

Pour obtenir un filtre ayant le plus de moments nuls pour une longueur donné on utilise comme point de départ un polynomede la forme (1+z−1)2p qui possède 2p racines à la fréquence de NYQUIST. Pour obtenir un filtre demi bande tout les coefficientsde rang pair sauf le coefficient central doivent être nuls. Pour cela on multiplie le polynome (1 + z−1)2p par un polynome Q(z).Si on se place dans le cas d’un filtre causal on cherche donc à trouver un polynome P(z) de la forme :

P (z) = (1 + z−1)2pQ(z). (V.3)

On a vu ci-dessus que l devait prendre une valeur impaire, donc pour que le polynome P (z) soit un filtre demi bande il faut quetous ses coefficients impairs hormis le coefficient central de rang l soient nuls. Le polynome (1 + z−1)2p est de degré 2p, il auradonc 2p− 2 coefficients de rang impair. Le polynome Q(z) doit donc être de degré 2p− 2. Le polynome P (z) est donc de degré4p − 2 d’où l = 2p − 1. Ainsi on pourra obtenir une base d’ondelettes ayant p moments nuls en choisissant à l’analyse et à lasynthèse des filtres de longueur 2p.

2.1 Calcul des coefficients du filtre demi bandeOn choisit de calculer les filtres correspondant à un filtre demi bande ayant 2p = 4 zéros à la moitié de la fréquence

d’échantillonnage. On a alors :P (z) = (1 + 4z−1 + 6z−2 + 4z−3 + z−4)Q(z), (V.4)

le polynome P (z) sera de degré 6 et on doit choisir Q(z) de degré 2 pour que les coefficients de degré 1 et 5 de P (z) soient nuls.En réécrivant l’équation ci-dessus dans le domaine temporel sous forme matricielle on obtient :

p0

0p2

1p4

0p6

=

q0 0 0 0 0q1 q0 0 0 0q2 q1 q0 0 00 q2 q1 q0 00 0 q2 q1 q0

0 0 0 q2 q1

0 0 0 0 q2

14641

. (V.5)

d’où l’on tire les équations qui nous permettent de déterminer q0, q1 et q2, on en tire le polynomeQ(z) = (−1+4z−1−z−2)/16.Puis on obtient P (z) en substituant les valeurs obtenus dans l’équation matricielle ci-dessus. Ce qui nous donne :

P (z) = (−1 + 9z−2 + 16z−3 + 9z−4 − z−6)/16. (V.6)

La figure ci-dessous représente le gain en fréquence du filtre passe-bas demi bande correspondant à P (z) et du filtre passe-hautcorrespondant à P (−z). L’axe des abscisses représentent les fréquences normalisées par rapport à la moitié de la fréquenced’échantillonnage.

La figure suivante représente sur le cercle unitaire les racines du polynome P (z).Il a 4 racines à z = −1 (qui correspond àFe/2) et deux autres racines à z0 = 0, 2679 et z1 = 3, 7321 = 1/z0. Cette dernière propriété correspond aux filtres à coefficientssymétriques.

2.2 Calcul des coefficients des filtres d’analyse et de synthèseOn rappelle que le filtre demi bande P (z) correspond au produit des transformées en Z des filtres passe-bas du banc d’analyse

et du banc de synthèse respectivement H0(z) et F0(z) = H1(−z). Les coefficients de ces deux filtres peuvent être obtenus parfactorisation spectrale du polynome P (z), c’est à dire ici en choisissant de fabriquer un polynome à partir d’une partie des racines

Olivier VENARD- 2010

Page 65: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée en ondelettes 63

FIGURE V.2 – gain de P (z) et P (−z)

FIGURE V.3 – Racines de P (z)

de P (z) et l’autre polynome à partir des racines restantes. Le produit de ces deux polynomes correspondra donc par constructionà P (z).

Il existe plusieurs alternatives pour conduire cette factorisation spectrale. Si l’on désire construire une base orthogonale ondevra avoir pour le banc d’analyse et de synthèse les mêmes filtres dont les coefficients seront seulement retournés temporelle-ment. Mais dans ce cas il ne sera pas possible d’obtenir des filtres à phase linéaire (sauf pour une base de Haar qui correspond àdes filtres de longueurs 2). Si l’on désire obtenir des filtres à phase linéaire ce qui peut être souhaitable dans le cas où l’on traitedes images, on obtiendra une base bi-orthogonale, c’est à dire que les filtres du banc d’analyse ne seront pas les mêmes que ceuxdu banc de synthèse.

Base orthogonale, filtres D4

Dans le cas où l’on souhaite obtenir des filtres orthogonaux, on contruit le filtre H0(z) en choisissant deux racines à z = −1et z0 par exemple soit un polynome de degré 3. On dénormalise son gain à z = 0 afin qu’il soit égal à

√2, on fera de même pour

F0(z) en choisissant les autres racines à z = −1 et z1 = 1/z0, cette relation entre z1 et z0 se traduit par le fait que les coefficientsde F0(z) sont les mêmes que ceux de H0(z) mais retournés :

H0(z) = 0, 4830 + 0, 8365z−1 + 0, 2241z−2 − 0, 1294z−3 (V.7)

F0(z) = −0, 1294 + 0, 2241z−1 + 0, 8365z−2 + 0, 4830z−3 (V.8)

Les filtres H1(z) et F1(z) sont obtenus à partir des relations données au paragraphe 1.2 :

F1(z) = −0, 4830 + 0, 8365z−1 − 0, 2241z−2 − 0, 1294z−3 (V.9)

H1(z) = −0, 1294− 0, 2241z−1 + 0, 8365z−2 − 0, 4830z−3 (V.10)

La fonction de gain pour ces deux filtres est la même, aussi dans la figure ci-dessous représentons nous les fonctions detransfert en gain de H0(z) et H1(z) :

Olivier VENARD- 2010

Page 66: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

64 Transformée en ondelettes

FIGURE V.4 – racines de H0(z) et de F0(z)

FIGURE V.5 – Gain de H0(z) et H1(z) dans le cas orthogonal

Base bi-orthogonale, filtres 5-3

On obtient une base bi-orthogonale quand on cherche à obtenir des filtres à phase linéaire. La linéarité de la phase im-plique que les coefficients du filtres sont symétriques ou anti-symétriques ce qui se traduit au niveau des racines du polynomereprésentant la transformée en Z du filtre par le fait que si z0 est une racine de ce polynome alors 1/z0 en est aussi une racine.

Ainsi on peut construire le filtre H0(z) en choisissant deux racines à z = −1 et les racines z0 et z1, on obtient alors unpolynome de degré 4 donc un filtre de longueur 5, dont on dénormalise aussi le gain à z = 0 afin qu’il soit égal à

√2. On

construit le polynome F0(z) à partir des deux dernières racines à z = −1. On obtient donc :

H0(z) =(−1 + 2z−1 + 6z−2 + 2z−3 − z−4

)√2/8, (V.11)

F0(z) =(1 + 2z−1 + z−2

)√2/4. (V.12)

Les filtres H1(z) et F1(z) sont obtenus à partir des relations données au paragraphe 1.2 :

F1(z) = (−1− 2z−1 + 6z−2 − 2z−3 − z−4)√

2/8, (V.13)

H1(z) = (−1 + 2z−1 − z−2)√

2/4. (V.14)

Un des intérêts de cette base sont les valeurs des coefficients des filtres. En choisissant par exemple de transférer le gain dedu filtre de longueur 5 vers le filtre de longueur 3, obtient alors les coefficients suivants :

H0(z) = (−1 + 2z−1 + 6z−2 + 2z−3 − z−4)/8, (V.15)

F0(z) = (1 + 2z−1 + z−2)/2. (V.16)

Où tous les coefficients sont des entiers et les diviseurs des puissances de 2, ce qui peut être réalisé par simple décalage.

Olivier VENARD- 2010

Page 67: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée en ondelettes 65

FIGURE V.6 – racines de H0(z) et de F0(z) dans le cas bi-orthogonal

FIGURE V.7 – Gain du banc d’analyse et du banc de synthèse dans le cas bi-orthogonal

FIGURE V.8 – Gains des filtres du banc d’analyse et du banc de synthèse

On aura donc dans le cas du banc d’analyse le filtre passe-bas qui aura un gain maximum de 1, 125 et le filtre passe-haut quiaura un gain de 2 (ce sera l’inverse pour le banc de synthèse).

2.3 Implantation des bancs de filtresLa structure d’implantation classique de la transformée en ondelettes dyadique est l’algorithme de S.MALLAT où une itération

de transformée en ondelettes est réalisée par un filtrage passe-bas suivi d’une décimation par 2 pour l’approximation et d’unfiltrage passe-haut suivi d’une décimation par 2 pour les détails (coefficients d’ondelettes)(figure V.2).

Structure polyphase

Banc d’analyse Dans cette configuration les filtres sont évalués à la fréquence d’échantillonnage la plus élevée puis on sup-prime une sortie sur deux. On peut utiliser la propriété remarquable du traitement multicadence représentée figure V.9 pour

Olivier VENARD- 2010

Page 68: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

66 Transformée en ondelettes

?MHM(Z)- -- H(Z)?M- - -

FIGURE V.9 – Propriété remarquable de la décimation

permuter la décimation par 2 et le filtrage :Il faut donc pour pouvoir appliquer cette identité mettre le filtre passe haut et le filtre passe bas du banc d’analyse sous la

forme H(z2). On réécrit la transformée en Z des filtres du banc d’analyse en séparant les coefficients pairs et les coefficientsimpairs :

H0 (z) = He0

(z2)

+ z−1Ho0

(z2)

(V.17)

H1 (z) = He1

(z2)

+ z−1Ho1

(z2)

(V.18)

De cette manière on obtient une formulation de la TZ qui nous permet d’appliquer l’identité remarquable ci-dessus (figure V.10).

FIGURE V.10 – Structure polyphase pour le banc d’analyse

l’intérêt de cette structure repose dans le fait qu’elle permet de paralléliser les calculs correspondant à l’évaluation du bancde filtre et diviser la fréquence de fonctionnement d’un facteur égal au facteur de décimation.

Banc de synthèse Pour le banc de synthèse, le signal d’entrée est suréchantillonné d’un facteur 2 puis filtré. Là encore le filtreest évalué à la fréquence la plus élevée. On va donc utiliser une autre identité remarquable du traitement multicadence (figureV.11)pour modifier la structure d’implantation :

De manière identique au cas de la décimation on reformule les transformée en z des filtres du banc de synthèse en faisantapparaître les coefficients pairs et impairs :

F0 (z) = Fe0

(z2)

+ z−1Fo0

(z2)

(V.19)

F1 (z) = Fe1

(z2)

+ z−1Fo1

(z2)

(V.20)

6L HL(Z)- - - H(Z) 6L- --

FIGURE V.11 – Identité remarquable pour l’interpolation

Olivier VENARD- 2010

Page 69: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée en ondelettes 67

En appliquant l’identité remarquable (figure V.11) à ces expressions on obtient la structure V.12 qui permet de diviser lenombre d’opération par un facteur égal au taux d’interpolation.

FIGURE V.12 – Structure polyphase du banc de synthèse

La décomposition polyphase, si elle permet de supprimer les opérations devenues inutiles du fait de la décimation et del’interpolation, ne permet cependant pas le calcul en place. Il est nécessaire de disposer d’un buffer pour les données en entrée etde les conserver tant que l’on n’a pas calculer les sorties passe haut et passe bas (détails et approximations).

Une technique d’implantation appelée lifting scheme, construite à partir d’un factorisation des matrices dites polyphases,permet de réaliser le calcul de la transformée en ondelettes en place.

3 Lifting Scheme

3.1 PrincipesStructure non polyphase

La structure de départ (figure V.1) où l’on n’a pas utilisé les propriétés du traitement multicadence afin d’optimiser la structured’implantation peut être représentée par une équation matricielle mettant en jeu les matrices de modulation :[

X(z)]

=[F0(z) F1(z)

] [H0(z) H0(−z)H1(z) H1(−z)

] [X(z)X(−z)

], (V.21)

que l’on peut étendre à l’équation matricielle :[X(z)X(−z)

]=[F0(z) F1(z)F0(−z) F1(−z)

] [H0(z) H0(−z)H1(z) H1(−z)

] [X(z)X(−z)

](V.22)

Pour que l’on ait un système à reconstruction parfaite ce système doit se ramener à :[X(z)X(−z)

]= 2z−l

[1 00 1

] [X(z)X(−z)

]. (V.23)

Ce qui correspond aux systèmes d’équation :

H0(z)F0(z) +H1(z)F1(z) = 2z−l

H0(−z)F0(z) +H1(−z)F1(z) = 0(V.24)

H0(−z)F0(−z) +H1(−z)F1(−z) = 2z−l

H0(z)F0(−z) +H1(z)F1(−z) = 0(V.25)

Les systèmes d’équation (V.24) et (V.25) sont équivalents, on retient donc le système (V.24) qui correspond à la condition dereconstruction parfaite pour l’équation matricielle (V.21),

H0(z)F0(z) +H1(z)F1(z) = 2z−l (V.26)H0(−z)F0(z) +H1(−z)F1(z) = 0. (V.27)

On a vu que l’équation (V.27) était satisfaite si l’on choisissait :

F0(z) = H1(−z) et F1(z) = −H0(−z),

On peut dès lors réécrire l’équation (V.26) sous la forme :

P (z)− P (−z) = 2z−l et P (z) = H0(z)H1(−z),

où P (z) est un filtre demi-bande.

Olivier VENARD- 2010

Page 70: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

68 Transformée en ondelettes

Réseau passe-tout

On peut introduire entre les matrices de modulation de l’équation matricielle (V.22) une matrice identité ou un produit dematrice correspondant à la matrice identité. Deux cas particulier de factorisation d’une matrice identité correspondent d’une partau produit de deux matrices triangulaires supérieures :[

1 00 1

]=[1 −A(z)0 1

] [1 A(z)0 1

], (V.28)

qui correspond au réseau représenté figure 3.1. Et d’autre part au produit de deux matrices triangulaires inférieures :

FIGURE V.13 – Réseau correspondant à la factorisation de la matrice identité (V.28)

[1 00 1

]=[

1 0−A(z) 1

] [1 0

A(z) 1

], (V.29)

représenté graphiquement par le diagramme bloc figure 3.1.

FIGURE V.14 – Réseau correspondant à la factorisation de la matrice identité (V.29)

En choisissant A(z) = S(z2) dans le cas (V.28) et A(z) = T (z2) dans le cas de (V.29), on obtient pour le réseau l’équationmatricielle suivante (Le choix d’un polynome en z2 se justifie ici car cela nous permettra d’utiliser par la suite les identitésremarquables du traitement multicadence) :[

X(z)X(−z)

]=[F0(z) F1(z)F0(−z) F1(−z)

] [1 −S(z2)0 1

] [1 0

−T (z2) 1

]· · ·[

1 0T (z2) 1

] [1 S(z2)0 1

] [H0(z) H0(−z)H1(z) H1(−z)

] [X(z)X(−z)

], (V.30)

qui correspond au diagramme bloc figure 3.1.

Theorème du «lifting scheme»

En effectuant les produits externes dans l’équation matricielle (V.30), on obtient[X(z)X(−z)

]=[F0(z) F ′1(z)F0(−z) F ′1(−z)

] [1 0

−T (z2) 1

]· · · [

1 0T (z2) 1

] [H ′0(z) H ′0(−z)H1(z) H1(−z)

] [X(z)X(−z)

], (V.31)

Olivier VENARD- 2010

Page 71: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée en ondelettes 69

FIGURE V.15 – Réseau correspondant à l’opération de «lifting» et de «lifting» inverse (V.30)

avec

H ′0(z) = H0(z) +H1(z)S(z2) (V.32)

F ′1(z) = F1(z)− F0(z)S(z2) (V.33)

Le theorème dit que si une paire de filtre (H0(z), H1(z)) est complémentaire (c’est à dire permet une reconstruction parfaite,propriété exprimée par les conditions (V.24)), alors la paire de filtre (H ′0(z), H1(z)) (avec H ′0(z) défini par (V.32)) est aussicomplémentaire.

Il est possible de vérifier que la relation F ′1(z) = −H ′0(−z) est toujours vérifiée.En effectuant les produits externes de l’équation (V.31), on obtient :[

X(z)X(−z)

]=[F ′0(z) F ′1(z)F ′0(−z) F ′1(−z)

] [H ′0(z) H ′0(−z)H ′1(z) H ′1(−z)

] [X(z)X(−z)

], (V.34)

avec

H ′1(z) = H1(z) +H ′0(z)T (z2) (V.35)

F ′0(z) = F0(z)− F ′1(z)T (z2). (V.36)

Cette opération correspond à l’opération de «lifting» duale. Ici encore la relation F ′0(z) = H ′1(−z) est vérifiée.L’intéret de ce theorème vient aussi de sa réciproque : si une paire de filtre (H ′0(z), H ′1(z)) est complémentaire, alors ils

peuvent s’exprimer sous la forme

H ′1(z) = H1(z) +H ′0(z)T (z2) (V.37)

H ′0(z) = H0(z) +H1(z)S(z2) (V.38)

3.2 Décomposition polyphaseEn réalisant une décomposition polyphase des filtres H0(z), H1(z), F0(z) et F1(z) (paragraphe 2.3) suivie d’une application

des identités remarquables du traitement multicadence (figures V.9 et V.11), on obtient pour les échantillons pairs et impairs dusignal x(n), l’équation matricielle :[

Xe(z)Xo(z)

]=[F e1 (z) F e0 (z)F o1 (z) F o0 (z)

] [1 −S(z)0 1

] [1 0

−T (z) 1

]· · · [

1 0T (z) 1

] [1 S(z)0 1

] [He

0(z) Ho0 (z)

He1(z) Ho

1 (z)

] [Xe(z)Xo(z)

], (V.39)

où Xe, He, et F e correspondent aux composantes paires et Xo, Ho, et F o aux composantes impaires. En partant de l’équation(V.39), on obtient alors le système d’équation :{

H ′0e(z) = He

0(z) +He1(z)S(z)

H ′0o(z) = Ho

0 (z) +Ho1 (z)S(z)

(V.40){H ′1

e(z) = He1(z) +H ′0

e(z)T (z)H ′1

o(z) = Ho1 (z) +H ′0

o(z)T (z)(V.41)

Ainsi on peut utiliser les systèmes d’équations (V.41) et (V.40) pour factoriser une matrice polyphase et obtenir une implantationde type treillis. La forme générale d’une factorisation est alors donnée par :[

He0(z) Ho

0 (z)He

1(z) Ho1 (z)

]=[K 00 1/K

] N∏n=1

[1 0

Tn(z) 1

] [1 Sn(z)0 1

], (V.42)

Olivier VENARD- 2010

Page 72: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

70 Transformée en ondelettes

où K est une constante non nulle. On peut noter que les opérations de «lifting» et de «lifting dual» sont commutatives.

3.3 Exemple de factorisation

On choisit de factoriser la matrice polyphase de la transformée en ondelette basée sur les filtres 5-3 (V.15) et (V.16) :

H(0)0 (z) = (−1 + 2z−1 + 6z−2 + 2z−3 − z−4)/8

H(0)1 (z) = (−1 + 2z−1 − z−2)/2

On a alors les composantes polyphases suivantes :

H(0)0

e(z) = −1

8+

34z−1 − 1

8z−2

H(0)0

o(z) =

14

+14z−1

H(0)1

e(z) = −1

2− 1

2z−1

H(0)1

o(z) = 1

Le système d’équation (V.41) s’écrit−1

2− 1

2z−1 = H

(1)1

e(z) +

(−1

8+

34z−1 − 1

8z−2

)T1(z)

1 = H(1)1

o(z) +

(14

+14z−1

)T1(z).

Comme ici H(0)0 (z) est degré supérieur à H(0)

1 (z), on a T1(z) = 0, H(1)1

e(z) = H

(0)1

e(z) et H(1)

1

o(z) = H

(0)1

o(z).

L’étape suivante consiste à écrire le système d’équation (V.40)18

+34z−1 − 1

8z−2 = H

(1)0

e(z) +

(−1

2− 1

2z−1

)S1(z)

14

+14z−1 = H

(1)0

o(z) + S1(z).

S1(z) correspond donc au quotient de la division polynomiale H(0)0

e(z)/H(1)

1

e(z) et H(1)

0

e(z) à son reste.

Une solution est S1(z) =14

+14z−1

H(1)0

e(z) = z−1,

on en déduit alorsH

(1)0

o(z) = 0.

On peut continuer à factoriser la matrice polyphase ainsi obtenue en réappliquant le système d’équation (V.41) :−12− 1

2z−1 = H

(2)1

e(z) + z−1T2(z)

1 = H(2)1

o(z)

une solution est alors T2(z) = −12z − 1

2H

(2)1

e(z) = 0.

On obtient donc la factorisation suivante de la matrice polyphase :[− 1

8 + 34z−1 − 1

8z−2 1

4 + 14z−1

− 12 −

12z−1 1

]=[1 1

4 + 14z−1

0 1

] [1 0

− 12z −

12 1

] [z−1 00 1

].

La structure correspondant à cette factorisation est représentée figure 3.3

Olivier VENARD- 2010

Page 73: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée en ondelettes 71

FIGURE V.16 – Structure d’un étage de transformée en ondelette 5-3 après factorisation de la matrice polyphase

FIGURE V.17 – Dépendance des données pour le banc d’analyse

Dépendance des données

Banc d’analyse L’équation aux différences de la structure d’analyse est :

d′i = di −12

(ai + ai+1) , (V.43)

pour les détails et

a′i = ai +14(d′i−1 + d′i

), (V.44)

pour les approximations.La figure V.17 illustre la dépendance des données pour le banc d’analyse. Le calcul de d′1 et a′1 correspond au calcul régulier,

l’organisation de la dépendance des données fait que l’on peut calculer en parallèle d′i et a′i à partir de l’instant où l’on a reçu ai+1.Les bords de l’image sont traités par symétrisation, les flèches en traits pleins illustre les calculs effectués à partir de donnéesinexistantes extrapolées par symétrie.

Banc de synthèse L’équation aux différences de la structure de synthèse est :

ai = a′i −14(d′i−1 + d′i

), (V.45)

pour les approximations et :

di = d′i +12

(ai + ai+1) , (V.46)

pour les détails. La figure V.18 illustre la dépendance des données pour le banc de synthèse. Le calcul de a1 et d0 correspond aucalcul régulier, l’organisation de la dépendance des données fait que l’on peut calculer en parallèle ai et di−1 à partir de l’instant

FIGURE V.18 – Dépendance des données pour le banc de synthèse

Olivier VENARD- 2010

Page 74: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

72 Transformée en ondelettes

où l’on a reçu d′i. Les bords de l’image sont traités par symétrisation, les flèches en traits pleins illustre les calculs effectués àpartir de données inexistantes extrapolées par symétrie.

L’énorme avantage de cette structure est qu’elle est insensible par construction à la quantification des données. En effet laquantification des données qui intervient en sortie de l’évaluation de T (z) et S(z) est la même au banc d’analyse et au bancde synthèse où elle est retranchée. Si de plus on peut représenter exactement les coefficients, comme c’est le cas pour les filtresbi-orthogonaux 5-3, on obtient une reconstruction parfaite en précision finie.

Olivier VENARD- 2010

Page 75: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Chapitre VI

Transformée de Fourier rapide

La Transformée de Fourier Discrète (TFD) est définie par l’équation(WN = ej

2πN

):

X(k) =N−1∑n=0

x(n)W−nkN pour k = 0 · · ·N − 1, (VI.1)

ce calcul comporte le nombre d’opérations suivant :– N2 multiplications (’×’) complexes et N(N − 1) additions (’+’) complexes

Le tableau VI donne le nombre d’opérations nécessaires pour calculer une TFD correspondant à des longueurs usuelles designaux. Pour 4096 points, le nombres d’opérations (≈ 32.106) nécessaires rend ce calcul difficilement utilisable dans la pratique.

N × +128 16384 16256

1024 1048576 10475524096 16777216 16773120

TABLE VI.1 – Nombre d’opérations complexes

1 Algorithme de COOLEY-TUCKEY

L’algorithme de COOLEY-TUCKEY[?] décompose le calcul d’une TFD de longueur N (VI.2) en plusieurs calculs de TFDplus petite si N n’est pas premier.Dans ce cas on peut écrire :

N = P ·Q. (VI.2)

On effectue alors les changements d’indices suivants :– Variable temps n :

n = Pq + p avec 0 6 q 6 Q− 1 et 0 6 p 6 P − 1, (VI.3)

la séquence x(n) est donc divisée en P séquences xp(q) de longueur Q.– Variable fréquence k :

k = Qs+ r avec 0 6 s 6 P − 1 et 0 6 r 6 Q− 1, (VI.4)

la séquence X(k) est donc divisée en Q séquences Xr(s) de longueur P .Après ce changement d’indice, l’exposant nk dans l’expression de la TFD (VI.1) devient :

nk = (Pq + p)(Qs+ r) = Nqs+ Pqr +Qsp+ pr, (VI.5)

On obtient donc l’expression suivante pour W−nkN :

W−nkN = W−NsqN W−PqrN W−QspN W−prN , (VI.6)

qui peut être simplifiée en utilisant les identitées suivantes :

W−NsqN = e−j2πN Nsq = 1 car sq est un entier,

73

Page 76: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

74 Transformée de Fourier rapide

etW−PqrN = e−j

2πN Pqr = e−j

2πQ qr = W−qrQ ,

on a de mêmeW−QspN = W−spP .

En introduisant les changements d’indice et les expressions ci-dessus dans l’expression générale de la TFD (VI.1), on obtientalors :

X(Qs+ r) =P−1∑p=0

Q−1∑q=0

x(Pq + p)W−spP W−rqQ W−rpN

que l’on peut écrire

X(Qs+ r) =P−1∑p=0

W−rpN

[Q−1∑q=0

x(Pq + p)W−rqQ

]W−spP . (VI.7)

Dans le terme entre crochets de l’expression (VI.7), on considère une séquence décimée puisque l’on ne conserve de la suite{x(n)} qu’un échantillon tout les P échantillons. Cette décimation se faisant avec une phase p, on note cette nouvelle séquence :

xp(q) = x (Pq + p) . (VI.8)

Le terme entre crochet de (VI.7) correspond alors à la TFD de la séquence {xp(q)} de taille Q :

Xp(r) =Q−1∑q=0

xp(q)W−rqQ pour r = 0 · · ·Q− 1. (VI.9)

On réécrit alors l’expression (VI.7) :

X(Qs+ r) =P−1∑p=0

(W−rpN Xp(r)

)W−spP , (VI.10)

en notant :Yr(p) = W−rpN Xp(r) pour p = 0 · · ·P − 1, (VI.11)

on obtient l’expression finale qui correspond à une TFD de taille P :

X(Qs+ r) =P−1∑p=0

Yr(p)W−spP , pour s = 0 · · ·P − 1. (VI.12)

L’Algorithme de COOLEY-TUCKEY se décompose donc en 3 phases :– Création des P séquences décimées {xp(q)} et calcul des P TFD de taille Q, Xp(r) (VI.9).– Multiplication des sorties de ces TFD par les facteurs de rotation W−rpN pour obtenir la séquence Yr(p), (VI.11).– Calcul des Q TFD de taille P , (VI.12).

1.1 Calcul du nombre d’opérations

Le décompte du nombre d’opérations pour chaque étape correspond à :– La première étape consiste en le calcul de P TFD de taille Q, soit :

– PQ2 = NQ ’×’ complexes,– PQ(Q− 1) = N(Q− 1) ’+’ complexes.

– La deuxième étape correspond à la multiplication par les facteurs de rotation :– N ’×’ complexes.

– La troisième étape consiste en le calcul de Q TFD de taille P :– QP 2 = NP ’×’ complexes,– QP (P − 1) = N(P − 1) ’+’ complexes.

On a donc un total de :– N(P +Q+ 1) ’×’ et N(P +Q− 2) ’+’,

au lieu de :– N2 = NPQ ’×’ et N(N − 1) = N(PQ− 1) ’+’

Olivier VENARD- 2010

Page 77: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée de Fourier rapide 75

FIGURE VI.1 – Algorithme de COOLEY-TUCKEY (P = 3, Q = 2).

dans le calcul direct.La réduction du nombre d’opération est de type logarithmique car le terme PQ dans le calcul direct devient P + Q après

application de l’algorithme de COOLEY-TUCKEY. La réduction du nombre d’opération est d’autant plus grande que P+Q� N .Après cette première étape de décomposition, il est possible d’appliquer de nouveau l’algorithme de COOLEY-TUCKEY pour

chaque TFD de taille Q ou P si ils ne sont pas premiers. On peut alors calculer le nombre d’opération en appliquant les formulesci-dessus de manière récursive.

En examinant la figure (1), on peut s’apercevoir qu’un certain nombre de facteurs de rotation ont un exposant nul, ce quicorrespond à une multiplication par 1. On rencontre cette situation pour tout les cas r = 0 ou p = 0.on a r = 0 pour P rotations et p = 0 pour Q rotations, en fait Q−1 car une correpond aussi à r = 0. On a donc en fait seulementN − (P +Q− 1) ’×’ complexes pour le calcul des facteurs de rotation.

Olivier VENARD- 2010

Page 78: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

76 Transformée de Fourier rapide

2 Décimation en temps et fréquenceSuivant la manière dont sera factorisé N , on conduira une décimation en temps ou en fréquence.– N = PQ = 2N2 : décimation en temps,– N = PQ = N

2 2 : décimation en fréquence.

2.1 TFD de taille 2Soit une TFD de taille 2 :

X(k) =1∑

n=0

x(n)e−j2π2 nk (VI.13)

=1∑

n=0

x(n)e−jπnk pour k = 0, 1 (VI.14)

Ce qui correspond aux calculs suivants représenté :

X(0) = x(0) + x(1) (VI.15)X(1) = x(0)− x(1) (VI.16)

FIGURE VI.2 – Structure papillon

2.2 Décimation en tempsOn considère N = 8 = 23 = PQ = 2× 4.

FIGURE VI.3 – Première étape de l’algorithme avec une décimation temporelle, N = 8

Olivier VENARD- 2010

Page 79: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée de Fourier rapide 77

FIGURE VI.4 – Seconde étape de l’algorithme avec une décimation temporelle, N = 8

FIGURE VI.5 – Structure complète avec décimation en temps pour N = 8

2.3 Décimation en fréquenceOn considère N = 8 = 23 = PQ = 4× 2.

FIGURE VI.6 – Première étape de l’algorithme avec une décimation fréquentielle, N = 8

Olivier VENARD- 2010

Page 80: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

78 Transformée de Fourier rapide

FIGURE VI.7 – Seconde étape de l’algorithme avec une décimation fréquentielle, N = 8

FIGURE VI.8 – Structure complète avec décimation en fréquence pour N = 8

2.4 Briques de base

FIGURE VI.9 – Structure papillon pour la décimation en temps

FIGURE VI.10 – Structure papillon pour la décimation en fréquence

Olivier VENARD- 2010

Page 81: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée de Fourier rapide 79

2.5 Réalisation complète de l’algorithmeEn reprenant l’algorithme avec décimation en temps on obtient le graphe représenté figure VI.11 qui inclut les multiplications

par 1.

FIGURE VI.11 – Décomposition complète pour N = 8

Nombre d’opérations

Si le nombre total de points estN = 2r, le nombre total d’étage est log2(N) = r. On aN/2 papillons élémentaires par étage.Il y a N/2 multiplications complexes par étage correspondant aux facteurs de rotation. La recombinaison des résultats de

chaque papillon demande 2 additions complexes et comme il y a N/2 papillons par étage, on obtient un total de N additions parétage.

Le nombre total d’opération est donc :– N/2 log2N ’×’ complexes et– N log2N ’+’ complexes

On dit que cet algorithme a une complexitéO (log2(N)). Le tableau 2.5 donne le nombre d’opérations nécessaires pour quelqueslongueurs usuelles de signaux.

N × +128 448 896

1024 5120 102404096 24576 49152

TABLE VI.2 – Nombre d’opérations complexes

Calcul en place

Une autre propriété remarquable de cet algorithme est le calcul en place : une fois que les données ont été consommées pourcalculer un papillon, elles ne sont plus utilisées dans la suite des calculs (cf figure VI.11). Le résultat des calculs du papillonspeuvent donc être placées à leur place en mémoire. Le nombre de case mémoire nécessaire pour cet algorithme est donc de Ncontre 2N pour le calcul direct de la TFD.

Ordonnancement des données

Pour conduire cet algorithme de manière régulière, il est nécessaire d’organiser la séquence d’entrée suivant un ordre par-ticulier, dit “bit-reverse”. Cet ordonnancement vient du fait que à chaque étape de l’algorithme les données en entrée d’uneTFD sont séparées en une séquence pour les entrées d’indice pair et une autre séquence pour les entrées de rang impair (figureVI.12). L’appellation de “bit-reverse” vient du fait que la place de la donnée (son adresse en mémoire) en entrée de l’algorithmecorrespond à son indice en base 2 dont on a retourné les poids (110→ 011).

Olivier VENARD- 2010

Page 82: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

80 Transformée de Fourier rapide

FIGURE VI.12 – Ordonnancement des données

Cette technique d’adressage est réalisée par l’algorithme de propagation de la retenue à l’envers (Reverse Carry Propagation).Si les données sont lues dans l’ordre lexicographique (0, 1, 2, 3, · · · ), la première donnée (x(0)) est placée dans la case mémoire0. L’adresse de la donnée suivante est calculée en rajoutant à l’adresse de la donnée courante la taille de la TFD divisée par deux.Mais à la différence d’une addition classique, si il y a une retenue, elle n’est pas propagée vers les poids forts mais vers les poidsfaibles. Le tableau 2.5 montre le déroulement de cet algorithme pour TFR de taille N = 8.

n Ad(x(n+1)) Ad(x(n))000 RCP(000+100)=100 000001 RCP(100+100)=010 100010 RCP(010+100)=110 010011 RCP(110+100)=001 110100 RCP(001+100)=101 001101 RCP(101+100)=011 101110 RCP(011+100)=111 011111 111

TABLE VI.3 – Placement des données en mémoire (RCP :Reverse Carry Propagation)

Régularité de l’algorithme

Cet algorithme de TFR est régulier : on peut déterminer un motif de traitement paramétrés par des variables. Cette propriétépermet d’obtenir une structure d’implantation générique.

Le traitement à chaque étage (cf figure VI.11) est déterminé par l’écart entre les entrées d’un papillon, le nombre de papillonsdans une groupe, les facteurs de rotation associés et le nombre de groupe (cf tableau VI.4)

1er étage 2nd étage 3ème étage · · · log2(N)ème étageÉcart entre les entrées 1 2 4 · · · N/2

Nbre de papillons par groupe 1 2 4 · · · N/2Nbre de groupe N/2 N/4 N/8 · · · 1

Facteur de rotation W−(N/2)kN W

−(N/4)kN W

−(N/8)kN · · · W−kN

k = 0 k = 0, 1 k = 0 · · · 3 · · · k = 0 · · ·N/2− 1

TABLE VI.4 – Paramètres de l’algorithme

Implantation séquentielle

Un exemple d’organigramme pour une implantation séquentielle sur une cible tel qu’un processeur de traitement numériquedes signaux est montré figure VI.13. Le traitement est organisé en imbriquant trois boucles :

– La plus extérieure sur les étages,– Sur les groupes à l’intérieur d’un étage,– Sur les papillons à l’intérieur d’un groupe.

À chaque entrée dans une boucle, ses paramètres caratéristiques (cf tableau VI.4) sont mis à jour. L’organigramme présentéréalise le calcul en virgule flottante par blocs au niveau de chaque étage.

Olivier VENARD- 2010

Page 83: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée de Fourier rapide 81

FIGURE VI.13 – Organigramme d’implantation d’une TFR

3 Dérivation algébrique de l’algorithme en base 2 avec décimation en temps (P=2et Q=N/2)

La version la plus répandue de l’algorithme de COOLEY-TUCKEY est celle appliquée à une séquence de longueur N = 2r.À chaque étage, la ou les TFD sont toujours de longueur paire et peuvent donc être décomposée en 2 TFD de longueur moitié etce jusqu’à ce que l’on arrive à une TFD de longueur 2.

La séquence d’entrée est divisée en une séquence paire et une séquence impaire, l’expression (VI.1) devient alors :

X(k) =

N2 −1∑n=0

x(2n) W−nkN2

+W−kN

N2 −1∑n=0

x(2n+ 1) W−nkN2

. (VI.17)

aveck = 0 · · ·N − 1.

Olivier VENARD- 2010

Page 84: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

82 Transformée de Fourier rapide

3.1 1ère étape de l’algorithmeCette première étape consiste à séparer le calcul d’une TFD de taille N en le calcul de 2 TFD de taille N/2 appliquée

chacune sur une version décimée de la séquence d’entrée.En utilisant l’antisymétrie autour de N/2 de l’exponentielle complexe le calcul peut encore être simplifié, en effet :

W−(k+N

2 )N = e−j

2πkN e−jπ = −e−j 2πk

N = −W−kN .

Si on note :

Xp(k) =

N2 −1∑n=0

x(2n) W−nkN2

(VI.18)

Xi(k) =

N2 −1∑n=0

x(2n+ 1) W−nkN2

, (VI.19)

aveck = 0 · · · N

2− 1.

Le calcul de (VI.17) peut être réalisé par :{X(k) = Xp(k) +W k

NXi(k)X (k +N/2) = Xp(k)−W−kN Xi(k).

(VI.20)

Cette dernière expression correspond à la structure de calcul en papillon.

Nombre d’opérations

Le calcul des expressions (VI.18) et (VI.19) demande chacune :– (N/2)2 ’×’ complexes et– N/2 (N/2− 1) ’+’ complexes.

L’application du facteur de rotation W kN dans (VI.20) est commun aux deux expressions et demande donc :

– N/2 ’×’ complexes etLa recombinaison des résultats intermédiaires dans (VI.20) demande :

– N ’+’ complexes.Soit au total :

– (N/2)2 + (N/2)2 +N/2 = N/2 (N + 1) ’×’ complexes,– N/2(N/2− 1) +N/2(N/2− 1) +N = N2/2 ’+’ complexes.

On pourra noter que l’on a prit en compte dans ce calcul le fait que Q = N/2 facteurs de rotation sont égaux à 1.À partir du moment où le nombre de points d’entrée de chaque TFD après un niveau de décomposition est un multiple de 2,

le processus décrit ci-dessus peut être itéré et conduit au graphe représenté figure VI.3

Olivier VENARD- 2010

Page 85: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée de Fourier rapide 83

FIGURE VI.14 – 1ère étape de la décomposition

4 Bruit de calculNous allons étudier le bruit de calcul en précision fixe. Dans ce contexte le bruit e(n) introduit au cours de l’algorithme

du fait de la limite de précision dans la représentation des données est supposé additif (figure VI.15). On considère ici un bruitintroduit en sortie des multiplieurs (ce qui correspond plutôt à une architecture de type circuit où l’on ne conserve en sortie desmultiplications que les bits de poids forts).

FIGURE VI.15 – Modèle du bruit de calcul pour l’évaluation d’une TFR

Le bruit de quantification e(n) est supposé blanc, indépendant des données et de distribution uniforme sur l’intervalle[−∆

2 ,∆2

]où ∆ est le pas de quantification et correspond à ∆ = 2−b si il y a b bits pour représenter les données.

La puissance d’une source de bruit est donc σ2e = 2−2b/12. La multiplication représentée figure VI.15 étant complexe, elle

correspond à quatre multiplications réelles. Les différentes sources de bruit étant supposées non corrélées, la puissance totale dubruit introduit après une multiplication est donc :

σ2em = 4σ2

e =2−2b

3. (VI.21)

Le calcul de chaque X(k) correspondant à N multiplications, le bruit total pour chaque X(k) est donc :

σ2etot = Nσ2

em =N

32−2b. (VI.22)

4.1 Facteur d’échelleLe nombre fini de bits pour représenter les données limite d’une part la précision, mais aussi la dynamique représentable. Si

on concidère que l’on représente l’intervalle [−1, 1] et que le calcul d’une TFD correspond pour chacune des raies fréquentielle

Olivier VENARD- 2010

Page 86: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

84 Transformée de Fourier rapide

à l’équation :

X(k) =N−1∑n=0

x(n)W−nkN . (VI.23)

Pour pouvoir représenter le résultat sans débordement ou saturation, on doit donc avoir la condition

|X(k)| 6 1, (VI.24)

qui est réalisée si on introduit un facteur d’échelle de 1/N sur les données car alors on a

X(k) =N−1∑n=0

(1Nx(n)

)W−nkN 6

1N

N−1∑n=0

|x(n)| 6 1 (VI.25)

4.2 Rapport signal sur bruit de quantification pour une TFDSi on fait l’hypothèse que les données x(n) sont blanches et distribuées uniformément sur l’intervalle [−1, 1], la puissance

du signal x(n) est donné par

σ2x =

∫ 1

−1

x2 12dx =

13,

et devient après mise à l’échelle par le facteur 1/N (VI.25) :

σ2xS =

13N2

. (VI.26)

Chaque X(k) est la somme de N variables indépendantes (VI.23) dont la puissance est donnée par (VI.26). La puissance dechaque X(k) est donc donné par :

σ2X = Nσ2

xS =1

3N. (VI.27)

Le rapport signal sur bruit d’une TFD de N = 2r points avec des données représentée sur b bits est alors donné par :

RSBTFD =σ2X

σ2etot

=1/3N

2−2bN/3=

22b

N2, (VI.28)

ou encore en dBRSBTFD(dB) = 6b− 6r. (VI.29)

La table 4.2 donne les RSB ainsi que le nombre de nombre de bits effectifs correspondant (6dB/bits) pour quelques lon-gueurs usuelles et une représentations des données sur 16 bits. On voit que si on choisit une fenêtre de 4096 points et qu’aucuneprécaution n’est prise, la précision des calculs n’est que de 4 bits !

N RSB (dB) précision (bits effectifs)128 (r=7) 54 9

1024 (r=10) 36 64096 (r=12) 24 4

TABLE VI.5 – Rapport signal sur bruit pour b = 16

4.3 Influence du facteur d’échelle sur le RSBL’introduction d’un facteur d’échelle (VI.25) est déterminant pour la dégradation du RSB. Si on peut représenter la dynamique

des données que l’on cherche calculer, alors il n’est plus nécessaire d’introduire un facteur d’échelle et le rapport signal sur bruitde quantification devient :

RSBTFD =Nσ2

x

σ2etot

=N/3

N/3 2−2b= 22b. (VI.30)

Il ne dépend plus de la longueur de la fenêtre, mais uniquement du nombre de bits pour représenter les données. Mais cecisuppose que les résultats puissent être représenté sur r + b bits. Par exemple dans le cas où on dispose d’un accumulateur sur 40bits, il est possible de calculer une TFD de 256 points sur 16 bits avec 96dB de RSB.

Olivier VENARD- 2010

Page 87: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée de Fourier rapide 85

FIGURE VI.16 – Contribution des papillons à une sortie X(k)

4.4 Rapport signal sur bruit de quantification pour une TFR

Afin de déterminer le rapport signal sur bruit de quantification dans le cas d’une TFR, il est nécessaire de connaître le nombrede source de bruit, et donc le nombre de papillons impliqués pour le calcul d’une sortie X(k) (figure 4.4).

La valeur d’un X(k) dépend donc de :– N

2 papillons du premier étage.– N

4 papillons du second étage....

– 1 papillon du rème étage.Le nombre de papillons impliqués dans le calcul d’une sortie X(k) est donc :

N

2+N

4+ · · ·+ 1

=N

2

(1 +

12

+(

12

)2

+ · · ·+(

12

)r−1)

= N

(1−

(12

)r)= N − 1.

La puissance total du bruit de quantification est alors :

σ2etot = 4(N − 1)

∆2

12' N

32−2b. (VI.31)

On abouti donc au même RSB que dans le cas de la TFD (VI.28) Ce qui est normal car le nombre d’opération pour calculerune valeur est le même dans le cas de la TFR que dans celui de la TFD, le gain en nombre d’opération ne provenant que d’unefactorisation des calculs.

4.5 Réalisation de la TFR en virgule flottante par bloc

Un papillon de l’étage n correspond aux calculs suivants :

Xn+1(k) = Xn(k) +WXn(l),Xn+1(l) = Xn(k)−WXn(l).

Si le module des entrées |Xn(k)| et |Xn(l)| appartient à l’intervalle [−1, 1], alors le module des sorties |Xn+1(k)| et|Xn+1(l)| appartient à l’intervalle [−2, 2].

Si on introduit un facteur d’échelle de 1/2 devant chaque papillon alors le module de ses sorties appartiendra à l’intervalle[−1, 1].

Olivier VENARD- 2010

Page 88: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

86 Transformée de Fourier rapide

Le calcul d’une sortie implique les papillons de r étages, qui chacun sont précédés d’un facteur d’échelle de 1/2, le facteurd’échelle global est alors : (

12

)r=

1N.

C’est le même que dans le cas de la TFD, mais maintenant ce facteur d’échelle est réparti au cours du calcul plutôt que d’êtreappliqué directement en entrée.

Chaque facteur d’échelle multiplie donc la donnée entrante dans le papillon, mais aussi les sources de bruit qui le précéde. Ilatténue donc la puissance des sources de bruit qui le précède d’un facteur de 1/4.

Dans le cas d’une implantation en virgule flottante par bloc de l’algorithme de TFR, il y a pour chaque sortie :– Au 1er étage 4(N/2) sources de bruit dont les puissances sont atténuées d’un facteur (1/4)r−1 par les facteurs d’échelle

des r − 1 étages suivants.– Au 2nd étage 4(N/4) sources de bruit dont les puissances sont atténuées d’un facteur (1/4)r−2 par les facteurs d’échelle

des r − 2 étages suivants....

– Au dernier étage 4 sources de bruit non atténuées.La puissance totale du bruit de quantification pour une sortie est donc :

σ2etot =

2−2b

12

(4N

2

(14

)r−1

+ 4N

4

(14

)r−2

+ · · ·+ 4

)

=2−2b

3

r−1∑n=0

(12

)n=2

2−2b

3

(1−

(12

)r)σ2etot '

23

2−2b.

(VI.32)

On obtient donc un bruit de quantification qui est indépendant de N la taille de TFR.Le rapport signal sur bruit de quantification est donné par :

RSBTFR =σ2X

σ2etot

=1/3N

2−2b2/3=

13N

32

22b =1

2N22b =

12r+1

22b = 22b−r−1, (VI.33)

ou encore en dBRSBTFR(dB) = 6b− 3r − 3. (VI.34)

Le tableau 4.5 donne les rapports signaux obtenus pour quelques longueurs usuelles. Ces résultats sont à comparer avec ceux dutableau 4.2 pour voir le gain en RSB que permet d’obtenir une réalisation en virgule flottante par bloc.

N RSB (dB) précision (bits)128 (r=7) 66 11

1024 (r=10) 57 9.54096 (r=12) 51 8.5

TABLE VI.6 – Rapport signal sur bruit de la TFR pour b = 16

5 Convolution par traitement par blocLe théorème de convolution nous dit qu’une convolution dans le domaine temporel correspond à un produit dans le domaine

fréquentiel.Soit à calculer y(n) = x(n) ∗ h(n), la convolution de x(n) par h(n) s’écrit :

y(n) =N−1∑m=0

x(m)h(n−m). (VI.35)

Olivier VENARD- 2010

Page 89: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée de Fourier rapide 87

La suite d’opération correspondant à l’équation (VI.35) est représentée sur la figure VI.17 : si la suite x(n) est de longueur M eth(n) de longueur L, alors y(n) sera de longueur N = M + L− 1. Pour réaliser le produit de convolution, la séquence h(n) estretournée temporellement, puis pour chaque de n (correspondant à un décalage vers la droite de la séquence h(n−m) l’équation(VI.35) est évaluée.

FIGURE VI.17 – Convolution Linéaire (Les parties grisées représentent le support de chacune des séquences)

On peut calculer X(f) et H(f) les transformées de FOURIER de x(n) et h(n), puis en utilisant le théorème de convolution,calculer le produit terme à terme Y (f) = X(f) ·H(f) et enfin obtenir la séquence y(n) par transformée de FOURIER inverse :

y(n) =∫ +∞

−∞Y (f)ej2π

fFendf.

Le résultat obtenue sera alors le même que celui obtenu par l’équation (VI.35) et représenté figure VI.17 à la condition d’utiliserla tranformée de FOURIER continue.

Si par contre on utilise la transformée de FOURIER discrète (VI.36), comme ce sera toujours le cas dans la pratique, l’échan-tillonnage dans le domaine fréquentielle se traduira dans le domaine temporel par une périodisation du signal. Si le domainefréquentiel est discrétisé avec un pas d’échantillonnage ∆f = Fe

N , alors cela correspond à la périodisation implicite du signaltemporel suivante : Tp = 1

∆f = NFe

= N.Te (figure VI.20).

X(k) =N−1∑n=0

x(n)e−j2πN kn H(k) =

N−1∑n=0

h(n)e−j2πN kn (VI.36)

Le produit fréquentiel X(k) ·H(k) correspond alors à la convolution de deux signaux périodiques (ici de même période N.Te).La séquence y(n) est obtenue par transformée de FOURIER discrète inverse de Y (k). Y (k) étant échantillonné, la séquence y(n)

FIGURE VI.18 – Convolution de deux signaux N périodiques

est périodique.

y(n) =1N

N−1∑k=0

Y (k)ej2πN kn. (VI.37)

La convolution de deux signauxN périodiques correspond à une convolutionN circulaire, que l’on note : y(n) = x(n)~h(n)et qui correspond à l’équation :

y(n) =N−1∑m=0

x(m)h((n−m))N , (VI.38)

Olivier VENARD- 2010

Page 90: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

88 Transformée de Fourier rapide

FIGURE VI.19 – Convolution circulaire de longueur N

avec ((·))N = (·)ModN . Cette convolution est représentée figure VI.19.Pour réaliser la convolution linéaire (VI.35) à l’aide d’une convolution N circulaire il faut des séquences de longueur N , on

doit donc compléter la séquence x(n) par L−1 échantillons à 0 et la séquence h(n) par M −1 échantillons à 0. Puis effectuer laconvolution circulaire des deux séquences de longueur N = M + L− 1, la séquence y(n) obtenue correspond alors au résultatde la convolution linéaire des séquences x(n) et h(n). Cette procédure est illustrée figure VI.20.

FIGURE VI.20 – Convolution linéaire à l’aide d’une convolution circulaire

Afin d’implanter cet algorithme avec une des deux séquences (x(n)) de très grande longueur, cette dernière est découpée enbloc de longueur M (figure VI.21), puis complétée par L − 1 échantillons à 0, elle est convoluée de manière circulaire avec laséquence h(n) qui a été complétée avec M − 1 échantillons à 0. Le résultat de cette convolution comporte deux parties (figureVI.21), les M premiers échantillons et les L− 1 derniers échantillons qui correspondent à la zone où y(n) dépend du bloc x(n)courant et du bloc x(n) suivant. La séquence de sortie y(n) est réalisée en sommant les L− 1 premières valeurs du résultat de laconvolution circulaire du bloc courant et les L− 1 dernières valeurs du résultat de la convolution du bloc précédent.

5.1 Implantation de l’algorithmeDans le cas d’un filtre FIR statique les coefficients ne varient pas avec le temps (ce qui n’est pas le cas de l’égalisation), H(k)

la TFD sur N points de h(n), peut être calculée une fois pour toute. La séquence x(n) est découpée en bloc de longueur M etcomplétée à Npar des échantillons à 0, (on pourra choisir M tel que N = L+M − 1 = 2r afin d’utiliser un algorithme de TFR),puis X(k) la TFD de x(n) sur N points est calculée. Les suites X(k) et H(k) sont multipliées et on réalise la TFD inverse de laséquence Y (k), soit y(n) dont on conserve les L − 1 derniers échantillons qui seront sommés aux L − 1 premiers échantillonsde la séquence suivante.

Pour le calcul d’une convolution linéaire on a ML multiplications réelles. Si on utilise l’algorithme «overlap and add» ona N

2 log2(N) multiplications complexes (avec N = M + L − 1) soit 2N log2(N) multiplications réelles pour la TFD puis 4Nmultiplications réelles pour le produit des 2 TFD et enfin 2N log2(N) multiplications réelles pour la TFD inverse. Soit un total de4N log2N + 4N = 4N(log2N + 1) multiplications réelles.

L’algorithme «overlap and add» sera avantageux si on a la condition :

LM > 4N(log2N + 1),

ceci correspond donc à la condition :

L > 4(

1 +L− 1M

)(log2(L+M − 1) + 1) . (VI.39)

Olivier VENARD- 2010

Page 91: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

Transformée de Fourier rapide 89

FIGURE VI.21 – Représentation de l’algorithme «overlap and add» au cours du temps

FIGURE VI.22 – Algorithme «overlap and add»

Pour un L donné, on choisit donc M , la longueur du bloc x(n) tel qu’il minimise le terme de droite de l’équation (VI.39) sous lacontrainte M + L− 1 = 2r , on trouve ainsi l’optimum en nombre d’opération par échantillon en sortie :Mopt = argmin

M

(4(1 + L−1

M

)(log2(L+M − 1) + 1)

)Mopt = 2r + 1− L.

(VI.40)

Ce qui nous donne les résultats suivants :Nous voyons dans le tableau VI.7 que le gain en nombre d’opération n’est pas systématique mais intervient à partir d’un filtre

Olivier VENARD- 2010

Page 92: Algorithmes pour le Traitement Numérique du Signalvenardo/doc/algoI4.pdf · II Filtres Numériques 11 1 Filtres FIR ... 2 Filtres de Daubechies

90 Transformée de Fourier rapide

L M M + L− 1 Gain32 225 256 0.7864 449 512 1.4

128 897 1024 2.55256 1793 2048 4.67512 3585 4096 8.62

1024 7169 8192 16

TABLE VI.7 – Choix des tailles des séquences

de longueur 64. Ce gain augmente avec la longueur du filtre. 1.

1. Nous n’avons considéré ici que les multiplications

Olivier VENARD- 2010