Polytech'Orléans Filière ESI MODULE FILTRAGE COMPRESSION FASCICULE DE COURS FILTRAGE NUMÉRIQUE ANNÉE 2006-2007 SPE 4 Dr. Rodolphe WEBER 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 1 PLAN : - La quantification : - application au convertisseur analogique numérique - application aux filtres numériques en virgule fixe -les filtres récursifs - Quantification des coefficients - Quantification des opérateurs - Optimisation d’une structure -les filtres non récursifs - autres implantations possibles 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 2 Introduction Les effets d'une représentation en virgule fixe dans les filtres numériques Ils ont pour origine 3 sources différentes : - Quantification du signal à filtrer par le convertisseur AD : dégradation du RSB, non-linéarités - Quantification des coefficients du filtre déformation de la réponse spectrale, voire divergence - Limitation de la dynamique de calcul dégradation du RSB ,risque de saturation, non-linéarités 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 3 Quantification du signal à filtrer par le convertisseur AD modélisation en bruit d’une quantification idéale La quantification « idéale » round(x) : x(t) Q xq(t)=x(t)+e(t) Cas du CAN : Puissance de l’erreur (bruit) ? Répartition en fréquence de cette erreur (bruit) ? 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 4 Quantification du signal à filtrer par le convertisseur AD La quantification « idéale »: Puissance de l’erreur (bruit) Can x(t) xq(t)=x(t)+e(t) b bits Quel est le rapport signal sur bruit (erreur) en sortie de la quantification ou du can ? Puissance du signal => x2= Le cas du signal gaussien Puissance de l’erreur => e2= (10 bits) RSB=10log(x2/e2) (dB) Pour bruit gaussien x s 100 =xs/x 86 x 80 q 65.8 60 b=16 14 -xs 40 12 10 8 20 0 -100 42 -80 -60 -40 -20 0 -20log (dB) 3 x2 2b RSB dB 10log 2 2 6,02b 4,77 20log xs Attention, vrai si pas de saturation et nombre de niveaux suffisant (cf.matlab ech_ideal.m) 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 5 Quantification du signal à filtrer par le convertisseur AD La quantification « idéale »: Puissance de l’erreur (bruit) RSB= Le cas du signal sinusoïdal =xs/x= Que devient l’expression du RSB, pour un sinus pleine échelle ? Phase aléatoire (10 bits) Période non commensurable (10 bits) Période commensurable (10 bits) xq, rsb=61.863457 dB ! 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 6 Quantification du signal à filtrer par le convertisseur AD La quantification « idéale »: Répartition fréquentielle de l’erreur Distorsion d'intermodulation Un convertisseur n'est pas linéaire : Vs=G0+G1.Ve+G2Ve2+…GnVen =0 si linéaire si on injecte des sinus de fréquences f1 et f2 , d'amplitude a on obtient toutes les combinaisons du type m.f1n.f2 • ordre 2 : 2f1, 2f2, f1+f2, f2-f1 • ordre 3 : 3 f1, 3f2, 2f2-f1,2f1-f2,2f2+f1,2f1+f2 Le convertisseur même idéal n’est pas linéaire ! 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 7 Quantification du signal à filtrer par le convertisseur AD Les défauts d’un convertisseur analogique numérique Amplitude numérique Amplitude analogique Temps discret Temps continu signal analogique Sample and Hold Buffer • bruit • distorsion • bande passante Sources de bruit : en vert -Bruit système < 2MHz -Jitter < 3 Ghz -Comparator ambiguity >3Ghz Sources de non-linéarités : en bleu 2006-2007 • bruit • distorsion • bande passante • jitter Encoder • bruit de quantif. • non-linéarité différentielle • non-linéarité intégrale Bande passante : important pour le Sous-échantillonnage FILTRAGE - R.WEBER - POLYTECH'ORLEANS 8 Quantification du signal à filtrer par le convertisseur AD Les défauts d’un convertisseur analogique numérique x(t) Can b bits xq(t)=x(t)+e(t)+eb(t)+enl(t) Sources de bruit : -Bruit système < 2MHz -Jitter < 3 Ghz -Comparator ambiguity >3Ghz Mesurés pour un sinus pleine échelle 3 2 RSB dB 10log 2x 22b 6,02b 1.73 20log xs non-linéarités Effective number of bits : SINAD=1.73+6.02 ENOB Test des paramètres dynamiques d'un ADC •Signal to noise ratio : SNR= Pr/Pb •Total harmonic distorsion : THD P i 1 ième harmonique •Signal to noise distorsion : SINAD=Pr/(Pb+THD) •Effective numbers of bits : SINAD=1.73+6.02 ENOB •Spurious- free dynamique range (SDFR) Attention, très dépendant de la fréquence du signal utilisé pour le test 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 9 Quantification du signal à filtrer par le convertisseur AD Aperture Uncertainty (jitter) Pour que EA<1/2 LSB 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 10 Quantification du signal à filtrer par le convertisseur AD Les différents types d'erreurs statiques Offset Error Rajoute une composante continue 2006-2007 Gain Error après ajustement de l'Offset Error Change le gain FILTRAGE - R.WEBER - POLYTECH'ORLEANS 11 Quantification du signal à filtrer par le convertisseur AD Les différents types d'erreurs statiques Absolute Accuracy Error Differential linearity Error DNL error Possibilité de code manquants si DNL > 1LSB Dépend uniquement du processus d’encodage Génère des nonlinéarités indépendamment de l’amplitude 2006-2007 Elle inclut toutes les erreurs précédentes. Elle vaut au minimum ½ LSB. Génère des non-linéarités FILTRAGE - R.WEBER - POLYTECH'ORLEANS 12 Quantification du signal à filtrer par le convertisseur AD Test des paramètres dynamiques d'un ADC générateur CAN Spectre de puissance Attention au choix de la fréquence de test Attention à la calibration des mesures entre bruit et sinus et choix d’une fenêtre d’apodisation Attention, À la normalisation Ex. matlab Puissance raie: Pr E DSP( f ) 1 w 2 1 0 DSP( ) W ( f ) d 2 w w(n) 2 2 Puissance bruit : Pb 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 13 Quantification des coefficients du filtre Rappel : la réponse fréquentielle est directement liée à la Im(z) position des pôles et des zéros. fm N H ( f ) Kc M z ,i i 1 D M i 1 0.25 fz O fp X M 0.5 p ,i O 0 O Re(z) X Démonstration avec le programme Filtre Les pôles influencent essentiellement la bande passante et les zéros la bande atténuée. 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 14 Quantification des coefficients du filtre La quantification des coefficients modifie les dits coefficients : La position des pôles et des zéros est modifiée ( La réponse fréquentielle est modifiée) a0 a1 .z 1 a2 .z 2 T(z) A 1 b1 .z 1 b2 .z 2 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 15 Quantification des coefficients du filtre Une même réponse fréquentielle peut être implantée sous différentes structures : (z z ) N H ( z) K . o ,i i 1 N (z z p ,i ) i 1 structure directe structure parallèle structure cascade N ad ,0 ad ,i .z i K i 1 N 1 bd ,i .z i Q K h0,i h1,i .z 1 1 i 1 1 b1,i .z b2,i .z 2 Q a0,i a1,i .z 1 a2,i .z 2 i 1 1 b1,i .z 1 b2,i .z 2 K i 1 Schema: 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 16 Quantification des coefficients du filtre Ces structures n'ont pas la même sensibilité à une variation de leur coefficients leur réponse fréquentielle est plus ou moins sensible à une variation des coefficients. La structure cascade est la moins sensible. sensibilité du dénominateur (pôles) > sensibilité du numérateur (zéros) Illustration avec Episip 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 17 Quantification des coefficients du filtre Les différentes structures cascades : donner les équations pour l'implantation. 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 18 Gestion de la dynamique •Problématique de la gestion de dynamique Si on supprime des bits de poids faible => rajout de bruit de quantification Si on supprime des bits de poids fort => risque de dépassement Problème ! Cas RIF : Cas RII : 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 19 Gestion de la dynamique Comment tronquer ? : •Représentation d’un nombre en virgule fixe f bits Q(b,f) b bits 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 20 Gestion de la dynamique Il y a 2 sources potentielles de dépassement : - Les additionneurs : en complément à 2, dépassement temporaire possible dans une suite de sommations si le résultat final tient dans la dynamique -(ex : sur 4 bits calculer -4-7+6 puis -4+7+6) - les multiplieurs : -Les sorties :en complément à 2, dépassement temporaire possible dans une suite de sommations si le résultat final tient dans la dynamique (ex : sur 4 bits calculer 3x3-6x2 puis 3x3+6x2) Mise en place de facteurs d’échelle pour garantir que le résultat final tient dans la dynamique 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 21 Gestion de la dynamique Sur les structures suivantes, identifiez les points de dépassement 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 22 Gestion de la dynamique y(n) F x(n) Comment choisir , pour que si |x|<M, alors |y|<M ? 1 )Si x(n) est un bruit blanc de puissance P=2: <M DSP F DSP 2 t t F 2 2 |F(f)| 1 P DSP( f )df 2 0 1 0 f 1 0 1 2 Pfiltré 2 F ( f ) df 2 F max(|F(f)|) 1 F 2 f 2 2 0 1 2 )Si x(n) est un sinus d’amplitude A: DSP A<M 0 1 A.|F(fo)|<A.max(|F(f)|)=A||F||∞ t t F A2/2 0 f DSP fo 2006-2007 1 f p 1 2 2 0 p F (ei ) d 1 p A2/2.|F(fo)|2 0 FILTRAGE - R.WEBER - POLYTECH'ORLEANS fo 1 f 23 1 F Gestion de la dynamique Exemple théorique de la structure 1D 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 24 Calcul du bruit en sortie Localiser les sources de bruit : q2 x troncature q2 Puissance du bruit de quantification xq x + eq 2 A q2 2 22 nm 1 12 22 nm Avantage/inconvénient des 2 solutions ? 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 25 Calcul du bruit en sortie Influence du facteur d’échelle sur le rapport signal sur bruit Rapport signal sur bruit sans et avec k1 ? Apparier les pôles et les zéros Augmenter la taille des registres (LSB) démonstration avec filtre.exe 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 26 Calcul du bruit en sortie Comment dimensionner les registres internes ? Puissance bruit de troncature filtré 2006-2007 ? Puissance bruit du CAN filtré FILTRAGE - R.WEBER - POLYTECH'ORLEANS 27 Calcul du bruit en sortie bruit Si le bruit a une puissance F Bruit filtré q2 Quelle est la puissance du bruit filtré ? 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 28 Calcul du bruit en sortie CAN 2006-2007 Q Q Q Q Q Quelle doit être la taille des registres internes pour que le bruit de sortie dû CAN soit égal au bruit de sortie dû à la troncature des multiplieurs ? FILTRAGE - R.WEBER - POLYTECH'ORLEANS 29 Calcul du bruit en sortie 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 30 Calcul du bruit en sortie Résumé des paramètres modifiant le bruit en sortie : - le type de structure - le type de quantification - le choix de la norme - l'appariement des pôles et des zéros - l'ordre des cellules démonstration episip 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 31 Cas des RIF -2 structures possibles - même sensibilité sur les coefficients - compromis bruit/ressources/vitesses 2006-2007 FILTRAGE - R.WEBER - POLYTECH'ORLEANS 32