EII2 Traitement Numérique du Signal Olivier SENTIEYS [email protected] http://lasti.enssat.fr/GroupeArchi/enseignements/Tns Notes : Traitement Numérique du Signal (Digital Signal Processing) Analog or Real-World Signals Analog Signal Processing A/D D/A Digital Signal Processing Digital or ComputerWorld Signals Converter Technology Provides the Bridge Video/Image/Graphics Fcl High Data Rate 100M 10M Audio/Speech/Control Low Data Rate 1M 100k 10k [ICE97] 2 Notes : Digital signal processing (DSP) is a segment of the IC industry where advanced digital and analog technologies merge. The typical function of the DSP device is to perform real-time processing of a digitized analog signal, changing that signal using arithmetic algorithms, and then passing the signal on. The process is very math intensive and quite complicated. In fact, finding competent DSP designers and programmers is often a challenge for many DSP manufacturers. Plan du cours I. Introduction 1. Introduction, problématique, caractéristiques, solutions architecturales 2. Types de signaux 3. Applications typiques de TNS 4. Chaîne de traitement et problèmes temps réel II. Analyse des filtres numériques 1. Spécification, classification, représentation 2. Analyse fréquentielle 3. Structures des filtres RII et RIF III. Transformées en TNS 1. TFD, convolution linéaire 2. TFR : Transformée de Fourier Rapide 3 Notes : Plan du cours (suite) IV. Quantification 1. Formats de codage 2. Quantification 3. Effets de la quantification en TNS V. Synthèse des filtres numériques RII 1. Invariance Impulsionnelle 2. Transformation Bilinéaire VI. Synthèse des filtres numériques RIF 1. Introduction 2. Filtres à Phase Linéaire 3. Méthode du Fenêtrage 4. Echantillonnage en Fréquence 4 Notes : Plan du cours (fin) VII. Analyse spectrale 1. Effets de la troncature 2. Caractéristiques des fenêtres 3. Influence sur l'analyse VIII. Systèmes multi-cadences 1. Définition 2. Décimation 3. Interpolation IX. Processeurs de Traitement du Signal 1. Architecture de base 2. Principales familles 3. Problèmes d'implantation en virgule fixe 5 Notes : I.1 Introduction Chaîne de TNS a C A P T E U R b E/B c Convertisseur A/N d Processeur Numérique e f Convertisseur N/A AC TIO NN EU R A (v) (a) Action Numérique 0.2 0.3 0.5 0.5 0.4 F (v) t t (c) B (v) E (v) (f) (e) (b) t 0.3 0.3 0.2 0.3 0.4 t t I m a g e Notes : t (d) P i x e l s Ca ra ct éri sti qu e D a t a 6 I.1 Traitement Numérique du Signal • Avantages – Pas de dérive : température, vieillissement, valeur des composants – Précision : garantie par le nombre de bits – Souplesse : plusieurs tâches simultanées possibles – Prédiction : simulation sur ordinateur – Prototypes : changements par modifications du logiciel – Performances : pas de distorsion de phase, filtrage adaptatif – Intégration : progrès des systèmes VLSI (DSP, ASIC, ...) • Inconvénients – Coût : élevé pour des réalisations simples – Vitesse : bande passante large = vitesse de calcul élevé – Complexité : réalisation à la fois matérielle et logiciel 7 Notes : Quelles applications ? • A la Maison – Télévision à la demande, Télévision Satellite, Jeu Vidéo et Réalité Virtuelle, Electroménager, Réseaux, ... – DVD, HDTV, CD, DAB • Au Bureau – Vidéoconférence, Fax, Modems, Pagers, ... – Réseaux rapides, Sans-fil – ATM, ISDN, PBX, ADSL • Sur la route – Téléphone cellulaires, Commande vocale, Radar et Sonar, GPS et traceur de route, Fax/Modems sans-fil, Automobile, ... Systèmes de l'âge de l'information = fusion entre Calculateur- Télécommunications- Consommateur 8 Notes : Glossaire du TNS • Saisie, acquisition, conversion (A/N, N/A), codage • Filtrage, FIR, IIR, convolution rapide, filtres spéciaux • Représentation, modélisation, analyse spectrale, transformées • Compression, approximation, extrapolation, codage de source, réduction de débit • Modulation, codage de canal, protection contre les erreurs, cryptage, garantique • Détection, réception optimale, démodulation, décodage, correction • Estimation, paramétrique, estimation d'onde ou d'état, filtrage, prédictio n, lissage • Analyse de système, modèles de canaux, milieux de propagation • Amélioration, réduction de bruit, annulation d'écho, compensation, égalisation • Déconvolution, imagerie, résolution, détection de source, restauration • Classification, reconnaissance, signatures • Apprentissage, estimation séquentielle, adaptation, poursuite • Analyse temps fréquence, non stationnarité, estimation de délais, de phase • Traitement multi-fréquences, décimation, interpolation, filtrages en sous bandes • Arithmétique bit fini, quantification, dépassement, virgule fixe, flottante, bruits d e calcul, sensibilité des coefficients. • Architecture des systèmes, DSP, ASIC, mémoire Notes : 9 Domaines d'application • Communication homme machine, synthèse, transformation texte-parole et inverse, reconnaissance de parole, identification et vérification du locuteur • Télécommunications, codage et restauration de la parole, courrier vocal, télécopie, audionumérique (CD, DAB), TV numérique, compression et transmission d'images, cryptage et protection, transmission de données, télé informatique, annulation d'écho, codage à débit réduit, télé et visioconférence, téléphonie cellu laire, ... • Défense, systèmes d'armes, surveillance, guidage, navigation • Biophysique, génie biomédical, EEG, ECG, radiographie, tomographie, scintigraphie, gammagraphie, échographie, aide aux handicapés, ... • Acoustique, aérienne, sous-marine, sonar, ultrasons, nuisances • Géophysique, sismique, de surface, océanographique, télédétection • Electromagnétisme, radar, radionavigation, optique, astrophysique • Automobile injection électronique, ABS, positionnement global, commande d'assiette adaptative • Musique, numérique, MIDI, échantillonneurs (sampleurs), synthétiseurs, mélangeurs, réverbération et écho, effets spéciaux, filtrage, enregistrement (DAT) • Instrumentation, capteurs, métrologie, analyse spectrale, génération de signaux, analyses de transitoires, DPLL • Graphisme et imagerie, rotation 3D, vision, reconnaissance de formes, restauration d'images, stations de travail, animation, cartographie Notes : 10 I.1 Introduction 2. Système de TNS : définition • Systèmes DSP exécutent algorithmes temps réel sur des signaux numériques – Signaux numériques : quantité mesurable, échantillonnée, quantifiée, encodée, vecteur multi-dimensionnel – Flot de Données – Temps Réel • • • • Temps de l'exécution de l'algorithme Tex guidé par acquisition I/O Période d'échantillonnage T Période des sorties Tf (frame period) > Tex Ni plus vite ... ni plus lentement (Not Faster ... not slower) e(t) 0010 s(t) T Algorithme Tf Notes : ex. s(n) = max(moy(e), s(n-1)) 11 I.1 Introduction 3. Caractéristiques des algorithmes • Quantité importante de données scalaires, vectorielles, matricielles, multidimensionnelles opérations I/O intensives par DMA • Charge de calcul importante multiplications-accumulations (convolution) multiplications-additions (FFT, DCT, adaptation, distances,...) • Virgule Fixe ou Flottante problèmes liés à la quantification !!! • Calculs d'adressage complexes bit-reverse ou similaire (FFT), vieillissement des données, ... • Boucles de traitement courtes les instructions peuvent être placées en interne pas besoin de grande taille de cache (données ou instructions) Notes : 12 Fonctions typiques de TS • Convolution, filtrage y = y + x.h : MAC • Adaptation y n = yn-1 + x.h : MAD • FFT, multiplication complexe xr=xr.wr-xi.wi; xi=xr.wi+xi.wr • Viterbi a1 = x1 + x2; a2 = y1 + y2; y = (a1>a2) ? a1 : a2 : ACS 13 Notes : I.1 Introduction 4. Solutions architecturales • Processeurs programmables du commerce – Processeurs généraux RISC, VLIW, Superscalaire – Processeurs de Traitement du Signal (DSP) Conventionnel, VLIW – Processeurs Multimédia – Microcontrôleurs • Processeurs programmables “maison” (ASIP) – De type DSP ou µCtrl • Processeurs et logique reconfigurables – FPGA enfouis, Processeur reconfigurable • Coprocesseurs ASIC 14 Notes : Exemple : GSM Environ équivalant à 60 MIPS 0110... A/D speech decoder channel decoder modulator IF upc D/A user interface / control RF A/D speech coder channel coder modulator IF upc D/A 1010... synchronisation Coprocessor, Hardware DSP, ASIP, ASP µController 15 Notes : Architecture Von Neumann • Les processeurs RISC MEMORY DATA BUS MEM. DATA REGISTER PC ADDRESS REGISTER REGISTER FILE ALU MUX Code example: multiply & accumulate r2 = r2 + #imm * r1 mov #imm,r3 mul r1,r3 add r3,r2 ⇒ 3 instructions, >3 cycles d'horloge MEMORY ADDRESS BUS 16 Notes : A typical data path of a RISC architecture is shown. It includes a register file with source and destination latches, an ALU (arithmetic and logic unit) and a program counter (PC). A RISC processor may also have additional registers for data and instruction addressing or other control realted functions. Most RISC designs use the same ALU to compute both algebraic operations and memory addresses for load and store operations. The justification for such a design is that because during load and store operations the ALU is not busy, such an implementation does not cause any performance penalty. [Bhaskaran 95] FIR sur machine Von Neumann • Problèmes – Bande passante avec la mémoire – Code pour le contrôle et la gestion de l'adressage – Multiplication lente loop: mov mov mpy add mov inc inc inc dec tst jnz *r0,x0 *r1,x1 x0,y0,a a,b y0,*r2 r0 r1 r2 ctr ctr loop Data Path Memory Exécution en 15 à 20 cycles 17 Notes : Architecture Harvard PROGRAM ADDRESS BUS DATA ADDRESS BUS PROGRAM RAM/ROM DATA RAM-A DATA RAM-B DATA BUS - A DATA BUS - B PROGRAM DATA BUS PROGRAM CONTROL AGU-A AGU-B Address Generation MULTIPLIER ALU REGISTERS ACCUMULATORS Processing Unit 18 Notes : The figure shows the block diagram of a typical DSP core. It has a Harvard architecture, i.e., separate data and instruction busses and separate instruction and data memories, a processing unit, two data memories wirh their own address generation units (AGUs ), a program controller, and program memory. The processing unit includes a parallel multiplier, an ALU, accumulators, and registers. Architecture Harvard DATA BUS - A DATA BUS - B 24 24 X0 X1 Y0 Y1 Operand Registers 24 24 Multiplier 56 56 ALU Shifter (-1, 0, +1) 56 24 Accumulators A (56) B (56) 24 56 56 Shifter/Limiter (-1, 0, +1) 24 24 19 Notes : The MAC operation is useful in DSP calculations such as the dot vector product used for digital filtering. The dot product, derived by summing the products of vector element pairs, is efficiently calculated with repeated MAC operations. To achieve a single-cycle MAC, DSP processors integrate a multiplier and accumulator into the main data path of the processor (see figure). In addition to allow series of MAC ops to proceed without the possibilkity of arithmetic overflow, DSPs generally provide extra bits in the accumulator t accommodate the bit growth of the result. A second feature shared by DSP processors is the ability to complete several accesses to memory in a single instruction cycle. This allows the processor to fetch an instruction while simultaneously fetching operands and/or storing the result of a previous instruction to memory. For example, in calculating the vector dot product o~ the sample vector and coefficient vector for an FIR filtep, almost DSP processors are able to perform a MAC while simultaneously loading the data sample and coefficient for the next MAC. In general, such single-cycle multiple memory accesses are subject to many restrictions. Typically, all but one of the memory locations accessed must reside on-chip, and multiple memory accesses can only take place with certain instructions. To support simultaneous access of multiple memory locations, DSP processors provide multiple on-chip busses, multi-ported on-chip memories, and in some cases multiple independent memory banks. A third feature often used to speed arithmetic processing on DSP processors is one or more dedicated address generation units. Once the appropriate addressing registers have been configured, the address generation unit operates in the background (i.e, without using the main data path of the processor), fonning the addresses required for operand accesses in parallel with the execution of arithmetic instructions. In contrast, genera1-pur~ose processors often requirc extra cycles to generate the addresses needed to load operands. DSP processor address generation units typically support a selection ol addressing modes tailored to DSP applications. The most common of these is register-indirect adressing with post-increment, which is used in situations where a repetitive computation is performed on a series of data stored sequentially in memory. Modulo addressing is often supported, to simplify the u,,~e of circular buffers Some processors also support bit-reversed addressing, which eases the task of interpreting the results of certain fast Fourier transform (FFT ) al gorithms. Architecture Harvard • Bus et mémoires données/instructions séparées • Unité de traitement de type mpy-acc • Registres distribués (≠ RISC register file) – Chaque module (ALU) possède ses propres registres locaux • Génération adresses efficaces (AGUs) – Modes d’adressage spéciaux : auto incr-decr, circular buffering (delay line) ... in@2 in@1 in 20 Notes : Because many DSP algorithms involve performing repetitive computations, most DSP processors provide special support for efficient looping. Often, a special loop or repeat instruction is provide which allows the programmer to implement a for-next loop without expending any instruction cycles for updating and testing the loop counter or branching back to the top of the loop. Finally, to allow low-cost, high-performance input and output, most DSP processors incorporate One Or more serial or parallel I/O interfaces, and specialized I/O handling mechanisms such as low-overhead interrupts and direct memory access (DMA) to allow data transfers to proceed with little or no intervention from the rest of the processor. In some cases, system designers may prefer to use a general-purpose processor over a DSP processor. Although general-purpose processor architectures often require several instructions to perform operations done with just one DSP processor instruction, general-purpose processors sometimes compensate by running at extremely fast clock speeds. If the designer needs to perform non-DSP processing, then using a using a general-purpose processor for both DSP and non-DSP processing could reduce the system parts count and lower costs versus using a separate DSP processor and general-purpose microprocessor. Furthermore, some popular general-purpose processors feature a tremendous selection of application development tools. On the other hand, because general-purpose processor architectures lack eatures that simplify DSP programming, software development is sometimes more tedious than on DSP processors and can result in awkward code that's difficult to maintain. Moreover, if general-purpose processors are used only for signal processing, they are rarely costeffective compared to DSP chips designed specifically for the task. Thus, at least in the short run, we believe that system designers will continue to use traditional DSP processors for the majority of DSP intensive applications. FIR sur DSP conventionnel • Jeu d'instructions complexe T loop: acc=acc+P // P=T*PM(*r0+) // T=DM(*r1+) jnz loop Program Memory MULT Data Path P Data Memory Exécution en 1 cycle ALU ACC C25 21 Notes : Nouvelles architectures DSP • DSPs conventionnels améliorés – UT multiples, SIMD, coprocesseurs – Lucent DSP16xxx, ADI ADSP-2116x, TI C55x • DSPs VLIW – TI C6xxx, Infineon Carmel • DSPs superscalaires – ZSP 164xx • Processeurs généralistes ou hybrides – GPP+SIMD, µC/DSP – PowerPC/AltiVec, Pentium/MMX – Infineon TriCore, SHx, ARM Piccolo, STx, SHx 22 Notes : C5x Architecture • C54x – 40-160 MIPS – 1000-3000 MIPS/W – 17x17b multiplier, 40b ALU, 40b adder, ACS unit – 60% of cellular handsets – $5 (C5402 100MIPS) - $75 • C55x – Dual MAC, 160 KW SRAM – 400 MIPS – 20 MIPS/mW – 0.05 mW/MIPS 23 Notes : VLIW DSP C6x Architecture 256 MPY MPY ADD ADD MV STW ADD MPY SHL ADD SUB STW STW ADDK ADD B ADD SUB LDW LDW B MVK NOP NOP MPY MPY ADD ADD STW STW ADDK NOP Fetch Dispatch Unit Functional Unit Functional Unit Functional Unit Functional Unit Functional Unit Functional Unit Functional Unit Functional Unit .L1 .S1 .M1 .D1 .D2 .M2 .S2 .L2 Register File A Register File B Data Memory Controller Data Address 1 Data Address 2 Internal Memory 24 Notes : TI’ VLIW DSP C62x C64x C67x Fixed-Point Fixed-Point Floating-Point MHz 150-300 300-600 100-225 MIPS/MFLOPS 1200-2400 MIPS 2400-4800 MIPS 600-1350 8-bit MMACS 300-600 1200-2400 200-550 16-bit MMACS 300-600 2400-4800 200-550 Broadband General Special-Purpose General Communications Imaging MFLOPS instructions General Special-Purpose General instructions 25 Notes : C64x • C64x – Jusqu’à 1.1 GHz, 9 GOPS – Six ALUs (32-/40-Bit), une 32-Bit, deux 16-Bit, ou quatre 8-Bit opérations arithmétiques par cycle – Deux multiplieurs, quatre 16x16-Bit ou huit 8x8-Bit multiplications par cycle – Coprocesseurs VCP (Viterbi) et TCP (Turbo) – 'C6411: 300 MHz, $39, 1.0 V, 250mW, 2400 MIPS, 1200 MMACS 26 Notes : C64x 27 Notes : I.1 Introduction 5. Cycle de développement • Développement d'applications de TNS Algorithme 1 Mise au point de l'algorithme – Matlab/Simulink – SPW, Ptolemy, COSSAP Génération manuelle ou automatique – Compilateur C, debugger – Utilisation de vecteurs de test issus de la simulation système Génération manuelle Code C "flottant" Code C "fixe" – Compilateur C, debugger – Utilisation de vecteurs de test issus de la simulation système 28 Notes : I.1 Introduction 5. Cycle de développement • Développement d'applications de TNS Algorithme 1 Code C Système d'Exploitation Temps Réel Algorithme 2 Code C Implantation logicielle Implantation Matérielle – Compilateur C pour DSP – Simulation assembleur – Traduction en VHDL – Synthèse du circuit – Simulation VHDL Algorithme N Code C 29 Notes : I. Introduction I.2 Types de signaux • Signaux médicaux – EEG, ECG, Images IRM, Images scanner, ... • Signaux sismiques • Données – Statistiques, Bourse, ... • Signal de parole • Sons • Images • ... 30 Notes : Signal de Parole • Processus de phonation – Génération d'une énergie ventilatoire (poumons+trachée) – Vibration des cordes vocales – Réalisation d'un dispositif articulatoire (conduit vocal) Cavité nasale Glotte Cavité buccale Lèvres Cavité nasale Conduit vocal Larynx Langue Modèle source filtre 31 Notes : Le signal de parole est réalisé au moyen d’un appareil phonatoire non initialement prévu pour cela. Il faut tout d’abord une énergie ventilatoire pour être l’initiateur du mouvement d’air qui crée les ondes acoustiques et qui crée par la même occasion le mouvement oscillatoire des cordes vocales ou au contraire qui les écarte pour créer du bruit; c’est le rôle de la soufflerie . Elle est composée des poumons qui sont le générateur d’air et du conduit trachéobronchique. Ce souffle passe le larynx (où siégent les cordes vocales) pour former l’onde glottique. Un dispositif écarte ou rapproche les cordes vocales selon qu’elles doivent vibrer ou non pour obtenir le son. Si les cordes vocales sont rapprochées, elles vibrent et donnent un son dit voisé (80% de la phonation), sinon on obtient un son dit non voisé. Ensuite, le pharynx, la langue et les parois se modifient et forment un filtre possédant une certaine fonction de transfert qui modifie l’onde glottique par convolution, ce qui donne, après rayonnement au niveau des lèvres, le signal de parole . Signal de parole un son voisé et son spectre (son “ eu ”) un son non voisé et son spectre (son “ ch ”) Notes : On peut distinguer la nature du son (voisé ou non) par son allure (temporelle et fréquentielle). Un son voisé possède un signal pseudo périodique : son spectre contient des harmoniques (énergie présente dans les différentes fréquences). Le premier harmonique, qui reflète la fréquence de vibration des cordes vocales est appelé la fréquence fondamentale (F0) ou en anglais le pitch (de 80 à 100 Hz chez l’homme, de 175 à 300 Hz pour la femme et de 200 à 600 Hz chez l’enfant). L’évolution de la fréquence fondamentale détermine la mélodie de la parole [MAL,01]. Pour un son non voisé, on obtient un signal qui ressemble à un bruit possédant beaucoup de hautes fréquences : le fait de filtrer le signal par un passe-bas pour respecter le théorème de Shannon fait qu’il devient plus difficile de distinguer des sons chuintants comme “ ch ”et “ sh ” car leurs différences se situent justement dans les hautes fréquences. Les spectres des figures 2.3 et 2.4 sont obtenus par le passage de l’onde glottique dans la fonction de transfert du conduit vocal. On définit un formant comme le maximum de la fonction de transfert du conduit vocal, mais les maxima de la fonction de transfert sont excités par les composantes spectrales du signal glottique. Donc, les maxima du spectre de la figure 2.3 correspondent à peu près aux formants. Pour cataloguer et référencer les sons afin de les étudier, on utilise une base de donnée qui possède tous les sons “ simples ” : les éléments de cette base sont appelés phonèmes. Un phonème se définit rigoureusement comme étant la plus petite unité susceptible de changer un mot en un autre : par exemple, [k] de “ car ” et [p] de “ par ” sont des phonèmes. Enfin, la mélodie de la parole liée à la durée et l’intensité des syllabes sont les éléments qui caractérisent la prosodie, qui sert entre autre à la compréhension syntaxique de la phrase (augmenter de façon significative la valeur du pitch à la fin d’une phrase interrogative). 32 Signal de parole • Signal temporel – Aspects statistiques – Variabilité intra-individuelle – Variabilité inter-individuelle – Masquage temporel – Prosodie • Signal fréquentiel Amplitude (dB) 40 30 – Structure formantique 20 Fondamental (pitch) 10 Harmoniques – Masquage fréquentiel 0 -10 -20 0 Notes : Fréquences Fe/2 33 I. Introduction I.3 Applications • Télécommunications : détection de tonalité 697 Hz 1 2 3 770 Hz 4 5 6 852 Hz 7 8 9 941 Hz * 0 # 1209 Hz 1336 Hz 1477 Hz BP Filter Detector 697 Hz BP Filter Detector 770 Hz BP Filter Detector 852 Hz LP Filter Limiter BP Filter Detector 941 Hz HP Filter Limiter BP Filter Detector 1209 Hz BP Filter Detector 1336 Hz BP Filter Detector 1477 Hz Schéma de détection de tonalité Fréquences de tonalité du clavier numérique 34 Notes : I. Introduction I.3 Applications • Voie MIC (PCM) – parole échantillonnée à 8 kHz en bande limitée à 300-3400Hz sur 8 bits par une loi logarithmique (Rec. G711 du CCITT) – débit normalisé de 64 kbit/s par voie numérique (MIC) • Codage de la parole – le codage permet : soit d'augmenter le nombre de signaux par voie (multiplexage temporel), soit d'élargir la bande codée (7kHz pour audio et visioconférence) – MICDA : 32 kbit/s sans dégradation audible s(n) e(n) Q s (n) CB canal de transmission e'q(n) DC s' (n) Q -1 s' (n) Q-1 P eq(n) P Notes : s (n) CB : codeur binaire DC : décodeur binaire P : prédicteur Q : quantificateur Q-1: quantificateur inverse 35 I. Introduction I.3 Applications • Annulation d'écho – Réseau téléphonique utilisant les satellites géostationnaires (540ms) – Téléphone main libre en voiture (écho + bruit) – Téléconfèrence • réponse impulsionnelle de la salle • Effets : écho, Larsen, réverbération • problème de déconvolution Ambient Noise Microphone o + near end speach Ht to far end speaker Computation of coefficients from far end speaker Reflections Loud speaker Annulateur d'écho par filtrage adaptatif 36 Notes : I. Introduction I.3 Applications • Compact Disc Audio – Echantillonnage à 44,1 kHz sur 16 bits des deux voies : 1,41 Mbit/s – Information + correction d'erreurs, contrôle et affichage : 4,32 Mbit/s – 90 dB de rapport Signal à Bruit et de séparation stéréo (contre 60 et 30 dB) Buffer Memory Control / Display A/D Converter Parity Coding MUX Modulator Demodul Encodeur du système Compact Disc D/A 16 bit Converter PCM LP filter Fe = 44.1 kHz Conversion N/A classique Notes : Error Correction Filter D/A D/A Lecture du système Compact Disc 16 bit PCM 44.1 kHz 4 Digital LP filter D/A Converter LP filter Fe = 176.4 kHz En pratique : Suréchantillonnage 37 I. Introduction I.4 Notions de temps réel en TNS • Traitement par ligne – Flot de données ininterrompu – En entrée : flot d’échantillons sur N bit à N.Fe bit/s par entrée – En sortie : flot d’échantillons sur N’ bit à N’.F’e bit/s par sortie y(n) = f(X,Y,H,...) x(n) y(n) TNS X Y x(n) x(n-1) ••• Entrées courantes et antérieures Notes : H h(0) h(1) ••• Coefficients h(i), sin(t), ... y(n) y(n-1) ••• Sorties courantes et antérieures 38 I. Introduction I.4 Notions de temps réel en TNS • Traitement par blocs Xn x(n) – 3 phases Yn = F(Xn,Yn,H,...) x(n) x(n-1) ••• Yn y(n) y(n-1) ••• TNS Vecteur de taille N y(n) H Acquisition de Xn (Vecteur de taille N) Traitement par blocs Restitution de Yn h(0) h(1) ••• – Les phases d’acquisition d’un traitement au suivant peuvent soit x(n) Xn se recouvrir N points Xn+R Xn+2R Notes : être jointives x(n) Xn être disjointes x(n) Xn+N Xn+2N Xn Xn+M 39 Cadence des calculs • Nv : nombre de voies à traiter en parallèle • Nop : quantité d’opérations élémentaires nécessaires au TNS • Te : périodicité du calcul • On en déduit la puissance de calcul de la machine : – Pc = Nv.Nop / Te (en MIPS, MOPS ou MFlOps) – Pc = 2.B.Nv.Nop ou B est la bande du signal 40 Notes : Exemple : Convolution Traitement ligne y(n) = N−1 ∑ h(k).x(n − k) k= 0 • Complexité pour un point y(n) : ?? • Architecture réalisant une multiplication accumulation en 1 cycle Traitement blocs avec recouvrement de N-R échantillons Yn = y (n ) h(0 ) y( n−1) h (N −1 ) •• • = • •• y (n −N+1) h(1) H . Xn h( 1) h( 0) •• h(1) h( N −1) • ••• h( N−1) • h( 0) • Complexité pour un vecteur Yn : • Même Architecture Notes : x( n ) x (n −1) . ••• x (n −N +1) 41 II Filtrage Numérique 1 Introduction Définition – Système Linéaire Discret (SLD) modifiant la représentation temporelle et fréquentielle de signaux Filtre Numérique x(n) <=> X(z) y(n) <=> Y(z) h(n) <=> H(z) 1. Introduction Un filtre numérique peut être représenté par : – une fonction de transfert en z : H(z) = Y(z) / X(z) X(z) H(z) Y(z) 43 Notes : II Filtrage Numérique 1 Introduction H1 (z) X(z) H(z) Y(z) X(z) Y(z) H2 (z) ... a) Forme directe HM(z) b) Forme parallèle X(z) H1 (z) H2 (z) ... HM(z) Y(z) c) Forme cascade – une réponse impulsionnelle (finie ou infinie) (RIF ou RII) ∞ y(nT ) = ∑ x(kT )h[( n − k )T ] k=0 ∞ y ( n) = ∑ x ( k ) h( n − k ) k=0 Notes : x(n) h(n) y(n) 44 II Filtrage Numérique 1 Introduction si x(n) = δ(n) alors y(n) = h(n) – une équation aux différences (récursive ou non récursive) M N i=0 i =1 y(n) = ∑ bi .x(n − i ) −∑ ai . y(n − i ) 45 Notes : II Filtrage Numérique 2 Spécification d’un filtre numérique 2. Spécification d’un filtre numérique – Gabarit fréquentiel Passe-Bas (ou Passe-Haut) défini par sa sélectivité, son ondulation en BP et son atténuation en BA Bande de transition Bande passante Bande atténuée |H(f)| (dB) |H(f)| fp 1+δ1 1 1-δ1 fa 20log (1+δ1) 0 dB 20log (1-δ1 ) δ2 f 20log δ2 fp fa a) Gabarit fréquentiel linéaire Notes : Fe/2 f b) Gabarit fréquentiel en dB 46 II Filtrage Numérique 2 Spécification d’un filtre numérique Passe-Bande (ou Réjecteur-de-Bande) défini par sa fréquence centrale, sa sélectivité, son ondulation en BP et son atténuation en BA |H(f)| 1+δ1 1 1-δ1 δ2 fa- fp- fp+ fa+ fe/2 f 47 Notes : II Filtrage Numérique 3 Classification des filtres numériques 3 Classification des filtres numériques Un filtre numérique peut être classé selon : – la durée de sa réponse impulsionnelle finie : les filtres RIF ont leur réponse impulsionnelle à support fini i.e. h(n) = 0 pour n<0 et n>N infinie : les filtres RII ont leur réponse impulsionnelle à support infini i.e. h(n) ≠ 0 ∀n – le type de représentation temporelles récursifs : la sortie y(n) dépend de l ’entrée courante, des entrées précédentes et des sorties précédentes non récursifs : la sortie y(n) ne dépend que de l ’entrée courante et des entrées précédentes Notes : 48 II Filtrage Numérique 3.1 Filtres numériques non récursifs 3.1 Filtres numériques non récursifs (ou transversaux) M y(n) = ∑ bi x(n − i ) i =0 Y ( z) = H ( z ) X ( z) M M ⇒ H ( z) = ∑ bi z = ∑ h(n) z −n i=0 −i n= 0 M ⇒ h(n) = ∑ bi δ (n − i ) i=0 Les coefficients bn du filtre sont les valeurs de la RI (h(n) = bn). Ceci montre qu'un filtre non récursif est à Réponse Impulsionnelle Finie (RIF). M est appelée la longueur du filtre. 49 Notes : II Filtrage Numérique 3.1 Filtres numériques non récursifs • Principales propriétés – Les RIF sont toujours stables (pas de pôles) – Les RIF peuvent avoir une caractéristique de phase linéaire • Retard constant en fréquence (temps de propagation de groupe) • Pas de distorsion harmonique • Symétrie de la RI – A sélectivité équivalente, ils sont toujours plus coûteux (en temps de calcul) que leur équivalent RII 50 Notes : II Filtrage Numérique 3.2 Filtres numériques récursifs 3.2 Filtres numériques récursifs M N i=0 i =1 y(n) = ∑ bi x(n − i ) − ∑ ai y(n − i ) M ⇒ H (z) = ∑b z i=0 N −i i 1 + ∑ ai z − i = N (z) D ( z) i =1 En pratique on a N=M, N est appelée l'ordre du filtre. 51 Notes : II Filtrage Numérique 3.2 Filtres numériques récursifs – Si N(z) n'est pas divisible par D(z) (cas général), on a un nombre infini de termes dans la division polynomiale. ∞ ∞ i=0 n= 0 H ( z) = ∑ ci z −i = ∑ h(n) z − n Les coefficients cn sont les valeurs de la RI (h(n) = cn). Ceci montre qu'un filtre récursif est, dans le cas général, à Réponse Impulsionnelle Infinie (RII). – Si N(z) est divisible par D(z) (cas particulier), on a un nombre fini de termes dans la division polynomiale. Dans ce cas, le filtre est RIF. • Exemple : filtre moyenneur 52 Notes : II Filtrage Numérique 3.2 Filtres numériques récursifs M – Si N(z)=1 : filtre tout-pôle – Si D(z)=1 : filtre RIF • Principales propriétés H (z) = ∑b z −i i i=0 N 1 + ∑ ai z − i = N ( z) D (z ) i =1 – Les RII peuvent être instables : structure à base de pôles et de zéros M H ( z) = b0 z N −M ∏ (z − z ) i i =1 N ∏ (z − p ) i =1 i – Bande de transition faible – Synthèse par réutilisation des méthodes analogiques – Instabilité numérique due au rebouclage : forme cascade plus stable 53 Notes : II Filtrage Numérique 4 Analyse fréquentielle 4. Analyse fréquentielle L'analyse fréquentielle est l'étude du module, de la phase et du temps de propagation de groupe du filtre H. H (e j Ω ) = H ( z) z = e jΩ Ω est la pulsation relative : Ω = ωT = 2πfT La fonction de transfert en fréquence H(ejΩ ) est périodique de période 2π. |H(ejΩ )| π Notes : 2π Ω 54 II Filtrage Numérique 5 Structures de réalisation 5. Structures de réalisation – Filtres RIF N y(n) = ∑ bi x(n − i ) i =0 x(n) b0 x(n) Z -1 x(n-1) + b1 x(n-N) + y(n) Z -1 y(n) b1 + + bN-1 + Z -1 b0 Z -1 bN-1 + bN Z -1 bN a) Structure directe b) Structure transposée 55 Notes : II Filtrage Numérique 5 Structures de réalisation – Filtres RII N N i=0 i =1 y( n) = ∑ bi x( n − i ) − ∑ ai y( n − i ) ⇒ H ( z) = N N ( z) 1 = N ( z) × = ∑ bi z −i × D (z ) D (z ) i = 0 1 N 1 + ∑ ai z −i i =1 b0 x(n) Z -1 Z -1 b1 + + + + bN-1 + + y(n) -a1 Z -1 Z -1 x(n-1) -aN-1 bN -aN RIF RII Z -1 Z -1 x(n-N) a) Structure directe Notes : b0 x(n) b1 + + y(n) -a1 Z -1 y(n-1) bN-1 + -aN-1 bN -aN Z -1 y(n-N) 56 II Filtrage Numérique 5 Structures de réalisation – Filtres RII 1 H (z) = × N ( z) = D( z ) N 1 N 1 + ∑ ai z − i × ∑ bi z − i i=0 i =1 N w(n) = x(n) − ∑ ai w(n − i ) i =1 N y(n) = ∑ bi w(n − i ) i =0 1 .X ( z ) W ( z) = D ( z) Y ( z) = N ( z ).W ( z ) w(n) x(n) b0 + + + -a1 Z -1 Z -1 -aN-1 -aN RII Z -1 b1 + y(n) + bN-1 + Z -1 bN RIF 57 Notes : II Filtrage Numérique 5 Structures de réalisation – Filtres RII x(n) b0 + w(n) + y(n) x(n) b0 Z -1 y(n) Z -1 b1 -a1 + + b1 + w(n-1) Z -1 + -a1 Z -1 a) Structure canonique directe + -aN-1 bN-1 bN-1 + + Z -1 Z -1 bN bN -aN w(n-N) + – Forme cascade de filtres du second ordre N +1 2 -aN-1 -aN b) Structure canonique transposée N +1 2 bi ,0 + bi ,1 z −1 + bi ,2 z − 2 H ( z ) = ∏ Hi ( z) = ∏ −1 + a i ,2 z − 2 i =1 i =1 1 + ai ,1 z X(z) Notes : H1 (z) H2 (z) ... HK(z) Y(z) 58 III Transformées en TNS 1 Rappels • TFSD : Transformée de Fourier d'un Signal ∞ Discret X (e jωT ) = ∑ x( nT ) e − jn ωT n = −∞ ∞ jΩ − jn Ω X (e ) = ∑ x (nT ) e n = −∞ π x (nT ) = 1 X (e j Ω ) e jnΩ dΩ 2π −∫π Non périodique • Propriétés – Linéarité – Décalage en temps/fréquence – Produit de convolution en temps/fréquence – Théorème de Parseval – Transformées de fonctions réelles Notes : 59 III Transformées en TNS 2 Transformée de Fourier Discrète • TFD – En pratique, on prend seulement un nombre fini d'échantillons de x(nT). On ne peut donc obtenir qu'un nombre fini d'échantillons fréquentiels de X(ejΩ). kn N −1 − 2 jπ N X ( k ) = x ( n ) e k = 0.. N −1 ∑ n =0 kn N −1 + 2 jπ x (n ) = 1 N n = 0.. N − 1 X ( k ) e N∑ k =0 x(n) TFD N-1 Pas temporel : T=1/Fe Notes : x(n) est considéré comme périodique de période N, x(n) = x(n+qN ) X(k) est donc également périodique de période N, X(k) = X(k+qN ) X(k) n N-1 Pas fréquentiel : 1/NT=Fe/N k 60 III Transformées en TNS 2 Transformée de Fourier Discrète • Propriétés – Linéarité – Décalage en temps/fréquence – Produit de convolution en temps/fréquence – Théorème de Parseval – Transformées de fonctions réelles 61 Notes : III Transformées en TNS 2 Transformée de Fourier Discrète • Définition kn N −1 − 2 jπ N k = 0 ..N − 1 X ( k ) = ∑ x( n ) e n =0 kn N −1 + 2 jπ x (n ) = 1 N X (k ) e n = 0 ..N − 1 ∑ N k =0 TFD X(k) ⇔ x(n ) x(n) et X(k) sont, dans le cas général, des nombres complexes. • Forme Matricielle X(0) X(1) . . X(N-1) 1 1 . 1 1 WN 1 WN 2 . WN . WN 2 WN 4 . WN . . . . . = N-1 1 WN X = W. x WN = e 2(N-1) WN . N-1 2(N-1) 2 × x(0) x(1) . . x(N-1) (N-1) WN (2) −2 jπ N WNn k = e Notes : . − 2 jπ N kn 62 III Transformées en TNS 2 Transformée de Fourier Discrète n n Propriétés des W N = e -2jπ N Wk(N-n) = (Wkn N N )* kn k(n+N) (k+N)n WN = WN = WN n+N/2 n WN = -WN 2kn kn WN = WN/2 (3.1) (3.2) Périodicité (3.3) Symétrie (3.4) Complexité de calcul La TFD revient à calculer un produit matrice-vecteur où chaque élément est de type complexe. La complexité de calcul de la TFD est de N2 multiplications, et de N(N-1) additions sur des nombres complexes. Ceci revient à une complexi té de 4N 2 multiplications réelles et N(4N-2) additions réelles. Cet algorithme se comporte donc en O(N 2), mais ne possède pas de problèmes d'adressage car les x(n) et les Wi sont rangés dans l'ordre en mémoire. – En 1965, Cooley et Tuckey [COOLEY 65] ont publié un algorithme applicable quand N est le produit de 2 ou plusieurs entiers dont la complexité est en O(Nlog2N) 63 Notes : III Transformées en TNS 3 Transformée de Fourier Rapide • TFR (FFT) partagée dans le temps (DIT) X(k)= ∑x(n).WNnk + ∑x(n).Wnk N npair X(k)= nimpair N/ 2−1 N/2−1 n=0 n=0 ∑ x(2n).WN2nk + ∑x(2n +1).WN(2n+1)k En exploitant la propriété 3.4, on obtient : X(k) = N/ 2−1 N/ 2−1 ∑x(2n).WNnk/2 +WNk. ∑x(2n +1).WN/nk2 n=0 X(k) = G(k)+ WNk .H(k) n=0 (4) k =0,1,....,N −1 où G(k): TFD sur N/2 points d'indices pairs, H(k): TFD sur N/2 points d'indices impairs. N/ 2−1 N N/2−1 n(k+N/2) n(k+N/2) X(k + ) = ∑x(2n). WN/2 + WNk+N/2 . ∑x(2n +1).WN/2 2 n=0 n=0 N k X(k + ) = G(k) − WN .H(k) 2 64 Notes : ••• TFR DIT ••• x(0) 0 W8 x(2) TFD x(4) N/2 pts 1 W 28 x(6) W x(1) 3 8 W 84 x(3) TFD x(5) N/2 pts X(0) X(1) W8 5 W8 W x(7) X(2) X(3) X(4) X(5) X(6) 6 8 X(7) W 78 O(N 2 ) O(N) 2 TFD de taille N/2 N/2 papillons Xm+1 (p) X m (p) r X (q) N m r X m+1 (q) = Xm(p) - WN X m(q) X m+1 (p) = Xm(p) + W Papillon DIT X m (q) (6) Xm+1 (q) r WN -1 Complexité d'un papillon : 1 multiplication complexe, 2 additions/soustractions complexes 65 Notes : N log2N multiplications de nombres complexes, 2 N log2N additions/soustractions de nombres complexes, ou, ••• TFR DIT ••• 2 N log2N multiplications de nombre réels, 3 N log2N additions/soustractions de nombre réels. FFT DIT RADIX-2 en place sur 16 points X(0) X(0) X(1) X(8) 0 X(12) 0 X(2) entrée ordre bit-reversed X(2) 0 X(3) 2 X(4) 0 X(10) X(6) X(14) 0 X(1) X(5) 2 0 0 4 2 6 X(6) X(7) 0 X(8) 1 X(9) 0 X(5) X(13) 0 2 0 DIT: (Décimation en temps) 0 4 2 6 X(13) 6 X(14) 7 FFT X(15) A FFT inverse k A' = A + BW B' = A - BW k W= e X(12) 5 2 0 X(15) X(11) 4 0 X(7) X(10) 3 X(3) X(11) X(9) 2 0 -2j π N sortie ordre normal X(4) A' -k A' = A + BW B' = A - BW -k k -2j π W= e N B B' 66 Notes : ••• TFR DIF ••• • TFR (FFT) partagée dans les fréquences (DIF) X(k) = X(k) = X(k) = N /2 −1 ∑ x(n).WN n =0 N /2 −1 nk N−1 + ∑ x(n).W N nk n = N/ 2 N/2-1 ∑ x(n).WNnk + WNk.N /2 . ∑ x(n + 2 ) .WNnk n =0 N /2 −1 N (7) n =0 ∑ [ x(n) + (−1) k .x(n + 2 )] WNnk N n =0 Xm (p) x(1) TFD N/2 pts x(2) x(5) x(6) x(7) X(2) X(4) Xm (q) X(6) x(3) x(4) Xm+1 (p) X(0) x(0) W28 W38 r Xm+1 (q) WN X(1) 0 W8 W81 -1 TFD N/2 pts X(3) X(5) X(7) Xm+1(p) = Xm(p) + Xm(q) r Xm+1(q) = [Xm(p) - Xm(q)] WN (8) 67 Notes : ••• TFR DIF FFT DIF RADIX-2 en place sur 16 points X(0) X(0) X(1) 0 X(2) X(3) 4 2 X(6) X(7) 4 0 6 4 0 X(9) 1 X(10) 2 0 X(11) 3 4 X(12) 4 0 X(13) 5 2 X(14) 6 4 0 X(15) 7 6 4 fréquence) X(10) X(6) 0 X(14) X(1) 0 FFT FFT inverse A' = A + B B' = (A-B) W W= e Notes : 0 X(8) (Décimation en X(12) X(2) 0 X(5) DIF: 0 -2j π N k -2j π N X(5) 0 X(13) X(3) 0 X(11) X(7) 0 A A' = A + B B' = (A-B) W -k W= e X(9) sortie: ordre bit-reversed entrée: ordre normal X(4) X(8) X(4) 0 X(15) A' k B B' 68 Transformée de Fourier Rapide FFT DIT RADIX-2 en place sur 16 points X(0) X(0) X(8) 0 X(2) 0 X(3) 0 X(4) 0 X(5) 0 0 4 X(7) 0 4 2 0 2 0 X(12) 4 0 X(14) 0 X(15) X(5) X(13) 5 4 0 X(13) 1 2 0 X(11) X(1) X(9) 0 X(10) X(6) X(14) 6 0 X(9) X(2) X(10) X(6) X(8) X(4) X(12) 4 X(3) sortie: ordre bit-reversed entrée: ordre normal X(1) X(11) 4 6 4 6 3 X(7) X(15) 7 DIT: (Décimation en temps) FFT k A' = A + BW k B' = A - BW A' = A + BW B' = A - BW -2j π W= e Notes : A FFT inverse N W= e -2j π N A' -k -k k B B' 69 Transformée de Fourier Rapide FFT GEOMETRIE CONSTANTE sur 16 points X(0) X(0) 0 0 0 0 0 0 2 1 0 0 4 2 0 0 6 3 0 4 0 4 0 4 2 5 0 4 4 6 0 4 6 7 X(1) X(4) entrée: ordre bit-reversed X(12) X(2) X(3) X(2) X(10) X(4) X(5) X(6) X(14) X(6) X(7) X(1) X(9) X(8) X(9) X(5) X(13) X(10) X(11) X(3) X(11) X(12) X(13) X(7) X(15) X(14) FFT Géométrie Constante FFT inverse A' = A + B•W B' = A - B•W W= e Notes : sortie: ordre normal X(8) -2jš N k k A' = A + B•W B' = A - B•W W= e -2jš N X(15) A A' -k -k B k B' 70 Transformée de Fourier Rapide FFT DIF RADIX-4 en place sur 16 points X(0) X(0) X(1) X(8) 0 X(2) X(3) entrée: ordre normal X(2) X(5) 0 X(6) 1 X(7) 2 X(14) X(8) 3 X(1) X(10) 0 X(9) X(6) X(9) 0 X(10) X(11) X(5) X(13) X(12) sortie: ordre bit-reversed X(12) X(4) X(3) X(13) X(11) 0 X(14) X(15) X(7) X(15) FFT inverse A A' = A+B+C+D -k B' = (A-jB-C+jD)W C' = (A-B+C-D)W -2k D' = (A+jB-C-jD)W -3k B FFT A' = A+B+C+D k B' = (A-jB-C+jD)W C' = (A-B+C-D)W 2k D' = (A+jB-C-jD)W 3k W=e Notes : X(4) -2jš N W=e -2jš N A' B' k C D 2k C' 3 k D' 71 III.4 Convolution et corrélation 1 Définitions • Corrélation – Soit x1 et x2, 2 signaux de durée finie [0 ... N-1], la corrélation est : N −1 y ( n ) = ∑ x1 ( i) x 2 (i + n ) i =0 • Convolution linéaire – Soit x et h, 2 signaux de durée finie respectivement N et M, la convolution est définie par : y ( n ) = ( x ∗ h )( n ) ∞ ∞ i =0 i= 0 y ( n ) = ∑ x (i ) h (n − i ) = ∑ h (i ) x (n − i ) Le signal y(n) est de durée [0 ... N+M-2] 72 Notes : III.4 Convolution et corrélation 1 Définitions ∞ y (n) = ∑ x (i) h( n − i ) • Exemple de convolution i =0 N>M x(i) h(i) * N-1 i n-M+1 i M-1 h(n-i) h(-i) n i n y( n) = ∑ x( i) h (n − i) i y(n) i= 0 N+M-2 n 73 Notes : III.4 Convolution et corrélation 1 Définitions • Propriétés – Y(z) = H(z) X(z) (TZ) – Y(k) ≠ H(k) X(k) (TFD) • Vue matricielle de la convolution y (0 ) h ( 0) y (1) . = h ( M − 1) . . 0 y ( N + M − 2 ) 0 0 h (0 ) . . 0 x ( 0) y (1) × . . . . h( M − 1) x( N − 1) . . . . . . . . 0 0 0 h( 0) è O(N2) 74 Notes : III.4 Convolution et corrélation 2 Convolution circulaire • Convolution circulaire – Soit x et h, 2 signaux périodiques de période N, la convolution circulaire est définie par : N −1 y (n) = ∑ x (i) h( n − i ) i =0 y (n) = x (n) ∗ h(n ) Le signal y(n) est de période N h(n-i) est évalué modulo N TFD : Y(k) = H(k).X(k) 75 Notes : III.4 Convolution et corrélation 2 Convolution circulaire • Convolution circulaire – On passe de la convolution circulaire à la convolution linéaire en remplissant de zéros chaque séquence jusqu'à M+N-1 {x(n)}{0….0} N+M-1 * {y(n)} {h(n)}{0….0} 76 Notes : III.4 Convolution et corrélation 3 Convolution rapide • Convolution rapide – Passer dans le domaine de Fourier par une TFD : la convolution se transforme en produit – Utiliser la FFT sur P points pour accélérer les calculs {x(n)}{0….0} FFT X Longueur P {h(n)}{0….0} FFT-1 {y(n)} FFT – Compléter les suites x(n) et h(n) par des zéros jusqu’à N+M-2, avec P = è O(Nlog 2N) Notes : P> 2 p. 77 III.4 Convolution et corrélation 3 Convolution rapide – Problème : h(n) et x(n) doivent être de durée finie – Application : FIR rapide • h(n) de durée M : H(k) peut être calculé une fois pour toute • x(n) de durée infinie • Convolution sectionnée – x(n), de durée infinie, est découpé en blocs xk de taille M pour kM ≤ n < (k + 1) M x (n ) xk ( n) = O ailleurs ∞ y (n) = h(n ) * ∑ x k (n ) k = −∞ y (n) = ∞ ∑y k= −∞ k (n) 78 Notes : III.4 Convolution et corrélation 3 Convolution rapide • Méthode OLA (Overlap Add) – Blocs xk de taille M – Addition des recouvrements entre les yk • Méthode OLS (Overlap Save) – Blocs xk de taille N+M avec recouvrement – Troncature des yk sur M points, addition entre les yk 79 Notes : IV Quantification Introduction : pourquoi la quantification ? 1. Format de codage 2. Modèle de quantification 3. Bruit de conversion 4. Limitation des chemins de données 5. Effets en TNS Entiers, Virgule fixe Caractéristiques de quantification Modèle de bruit, Caractéristiques de dépassement Filtrage d’un bruit Filtrage RIF, RII, cycles limites, quantification des coefficients 80 Notes : IV Quantification 1 Format de codage • Choix d'un format de codage – Format des données: entiers, relatif, réel,… – Précision: Acquisition, Calculs – Dynamique: Acquisition, Calculs – Coût des opérateurs matériels • Codage des entiers positifs • Codage des entiers relatifs – Codage signe valeur absolue Un bit de la représentation est affecté au signe N −1 D = ∑ d i 2i i=0 D = −1 d N −1 N −2 ∑d 2 i i i =0 exemple: D = 65 = 01000001; D = -65 = 11000001 Additionneur différent pour les additions de nombres, suivant leurs signes 81 Notes : IV Quantification 1 Format de codage • Codage des entiers relatifs – Codage en complément à la base • Codage cyclique modulo 2N N −2 D = −d N −1 2 N −1 + ∑ di 2 i i =0 • On obtient un nombre négatif en complémentant sa valeur absolue puis en additionnant 1. Exemple : D = 65 = 01000001; D = -65 = 01000001 + 1 = 10111111 ou D = -65 => -128 + 65 = -10000000 + 01000001 = 10111111 • Si la somme de plusieurs termes appartient au domaine de codage, les opérations sont correctes, même si un résultat intermédiaire sort du domaine de codage. Exemple : (((+2+7)-6)-3) = 0 en codage signé: = ((-1-6)-3) = (-7-3) = -2 en complément à 2: = ((-7-6)-3) = (+3-3) = 0 – Additionneur unique quels que soient les signes de nombres 82 Notes : IV Quantification 1 Format de codage • Nombres réels – Codage en virgule fixe cadrée à gauche Le facteur d'échelle est implicite. N −2 D = −d N −1 + 2− ( N −1) ∑ di 2i i =0 Codage de nombre compris entre -1 et 1 Codage d'un nombre négatif similaire à celui d'un nombre entier relatif. Addition : débordement, extension de signe Multiplication : bxb -> 2b bits, extension du signe sur 2b bits, doublement du signe Conservation du domaine de codage : pour la multiplication • en virgule fixe cadrée à gauche si A et B appartiennent au domaine de codage alors Z = A.B appartient au domaine de codage. – Codage en virgule flottante D=M.2 E L'exposant E est explicite. Mantisse M: nombre entier relatif, ou nombre réel. Exposant E: nombre entier relatif. Notes : 83 IV Quantification 2 Modèle en VFCG • Modèle x(n) xQ (n) = Q[x(n)] = k.q Q x(n) + xQ (n) e(n) = Q[x(n)] - x(n) – Definition : Approximation de chaque valeur d’un signal x(n) par un multiple entier du pas de quantification élémentaire q. – e(n) est l’erreur de quantification -> Modèle bruit-blanc additif • Sources de bruit – Bruit de conversion A/N – Limitation des chemins de données de l’architecture cible Multiplication => Quantification Addition => Débordement Notes : 84 IV Quantification 2 Caractéristiques de quantification (a) Arrondi Q(x) = k.q si (k-0.5).q ≤ x < (k+0.5).q Etude statistique Q(x) P(e) 3q 2q q • 1/q q 2q x • • • e -q/2 q/2 • • (b) Troncature Q(x) = k.q si k.q ≤ x < (k+1).q • Q(x) {e(n)} est une séquence d’un processus aléatoire stationnaire {e(n)} est décorrelée de {x(n)} {e(n)} est un bruit blanc additif la distribution de probabilité de {e(n)} est 2 l’intervalle de quantification uniforme sur ergodicité : moyennes temporelles = moyennes statistiques moyenne me variance σe2 = Puissance du bruit variance = q2/12 P(e) 1/q 3q 2q q q 2q e x -q 0 85 Notes : IV Quantification 2 Caractéristiques de dépassement x(n) D[x(n)] D – Valeurs de x(n) lorsqu'il sort de la dynamique de codage Saturation Modulaire – – – Complexe Moins d'effets indésirables Effets indésirables D(x) D(x) Xmax Xmax Xmax 86 Notes : IV Quantification 2 Caractéristiques de dépassement – Afin d'éviter le dépassement, on diminue l'amplitude avant ou pendant le traitement par un facteur d'échelle A < 1 (scaling). x(n) A h(n) y(n) • A peut être combiné avec les valeurs des coefficients • A puissance de 2 (en pratique) • Critères – Critère du pire-cas Pas de dépassement tant que |x(n)|<Xmax – Critère de puissance Pas de dépassement tant que Px<Pmax – Critère du sinus Pas de dépassement tant que |x(n)|<Xmax, avec x(n) sinusoïdal. Notes : 87 IV Quantification 3 Bruit de conversion A/N Quantification d'une sinusoïde Quantification en conversion A/N x(n) xQ (n) 3q 2q q n 3q 2q q n e(n) x(n) CAN xQ (n) q/2 n - q/2 xQ (n) = Q[x(n)] e(n) = xQ (n) - x(n) |e(n)| ≤ q/2 88 Notes : Filtrage d'un bruit • Exemple : filtrage du bruit de conversion x(n) CAN Q xQ (n) Filtre H(z) y(n) x(n) • En entrée du filtre + xQ (n) Filtre H(z) y(n) e(n) – Signal x(n) + Bruit de conversion e(n) q2 2 2 σ e = , σ x puissance du signal d ' entrée 12 2 2 σx σx 2 RSB = 2 = 2 = 12.2 2 (b−1)σ x q / 12 σe RSBdB = 10 log RSB = 6.02 b + 4.77 + 10 log σ x 2 Le RSB augmente de 6dB par bit ajouté 89 Notes : IV Quantification 4 Limitation des chemins de données • Limitation des chemins de données de l’architecture cible – Multiplication => Quantification – Addition => Débordement 0,1101 + 0,1001 01,0110 0,8125 + 0,5625 1,375 0,1101 x 0,1001 00,0111 0101 x 0,8125 0,5625 0,4570 3125 90 Notes : Synthèse des filtres numériques V. Synthèse des filtres RII 1. Introduction 2. Rappels sur la synthèse des filtres analogiques 3. Invariance impulsionnelle 4. Transformation bilinéaire VI. Synthèse des filtres RIF 1. Introduction 2. Filtre à phase linéaire 3. Méthode du fenêtrage 4. Méthode de l ’échantillonnage fréquentiel 91 Notes : V Synthèse des filtres RII 1 Introduction • Recherche de H(z) correspondant aux spécifications (gabarit) – Transposition des méthodes de synthèse applicables aux filtres analogiques, puis transformation de H(p) vers H(z) Invariance impulsionnelle Transformation bilinéaire – Synthèse directe en z – Méthodes d'optimisation : minimiser un critère d'erreur entre courbe réelle et courbe idéale 92 Notes : V Synthèse des filtres RII 2 Synthèse de filtre analogique Spécification Gabarit analogique Normalisation Gabarit normalisé Ordre du filtre Approximation de H(p) Types de filtre (Butterworth, Chebyshev,...) HNorm (p) Dénormalisation H(p) Filtrage numérique Filtrage analogique Transformation Choix d’une structure p=f(z) invariance impulsionnelle, bilinéaire Notes : Rauch, Sallien-Key, Biquadratique 93 V Synthèse des filtres RII 2 Synthèse de filtre analogique • Normalisation – Calcul de la sélectivité s |HNorm(p)| |HNorm(p)| (dB) 1 s ∆1 0 −∆1 1+δ1 1 1-δ1 δ2 ω ∆2 1 s a) Gabarit prototype linéaire ω b) Gabarit prototype en dB 94 Notes : V Synthèse des filtres RII 2 Synthèse de filtre analogique • Ordre du filtre et fonction de transfert normalisée – Butterworth, Chebyschev, Elliptique, Bessel, Legendre, ... – HNORM(pN) • Dénormalisation – Passe-bas : pN = p / ωc – Passe-haut : pN = ωc / p – Passe-bande : pN = 1/B (p / ω0 + ω0 / p) • On obtient une fonction de transfert H(p) respectant le gabarit analogique spécifié ⇒ Passage vers H(z) 95 Notes : V Synthèse des filtres RII 3 Invariance impulsionnelle • Le filtre numérique et le filtre analogique ont la même réponse impulsionnelle ha(t) h(nT) t x(t) Ha(p) filtre analogique y(t) t T x(nT) filtre numérique h(nT) = ha(t) Notes : y(nt) H(z) / t = nT 96 V Synthèse des filtres RII 3 Invariance impulsionnelle • Le filtre numérique et le filtre analogique ont la même réponse impulsionnelle −1 L = nT Tz H a ( p ) → ha (t ) t → h ( nT ) → H (z) ou formulatio n directe H (z ) = H a ( p) Résidus , p i −1 pT 1 − z e { pôles pi de H ( p ) } ∑ – Conserve la réponse temporelle et la stabilité – Phénomène de recouvrement de spectre du à l'échantillonnage – Non respect de la spécification fréquentielle H (e jΩ ) = 1 T ∑ H ( jω + j ) a 2π k T k 97 Notes : V Synthèse des filtres RII 3 Invariance impulsionnelle • Réponse fréquentielle Ha(p) 1 p H(Ω) 1/T Ω −2Π Π 2Π – Normalisation (xT) ou (/H(0)) 98 Notes : V Synthèse des filtres RII 4 Transformation bilinéaire • Approximation d'une intégrale par la méthode des rectangles e(nT) S(n) = S(n-1) + T[e(n) + e(n-1)]/2 (n-1)T e(n) H(z) Intégrateur numérique s(n) nT e(t) t 1/p Intégrateur analogique s(t) 2 1 − z −1 p= T 1 + z −1 99 Notes : V Synthèse des filtres RII 4 Transformation bilinéaire – Conservation de la stabilité plan p plan z z = ejωT π 0 p = jωa – Relation entre fréquences numériques et analogiques 100 Notes : V Synthèse des filtres RII 4 Transformation bilinéaire ω analogique – Distorsion en fréquence connue T T = tg ω numérique 2 2 ωT π π/T ωa −π fe/2 filtre analogique Notes : fe/2 filtre numérique 101 V Synthèse des filtres RII 4 Transformation bilinéaire • Procédure de synthèse – A partir du gabarit en fréquence numérique ωn – Effectuer une prédistorsion en fréquence ωa T T = tg ω n 2 2 – Synthèse de H(p) par méthodes du chapitre V.2 – Transformation bilinéaire H ( z) = H ( p) 2 1 − z −1 p= T 1 + z −1 102 Notes : ωa ωa π Ω δ2 1+δ1 1 1-δ1 ωa p ωa a |Ha(jωa)| ωa=2/T tan(Ω/2) 1+δ1 1 1-δ1 |H(ejΩ )| δ2 Ωp Ωa Notes : π 2π 103 Ω VI Synthèse des filtres RIF 1 Introduction • Recherche de H(z) correspondant aux spécifications (gabarit) – Synthèse directe en z – Filtres à phase linéaire ou minimale • 3 méthodes de synthèse – Méthode du fenêtrage – Méthode de l'échantillonnage fréquentiel – Méthodes d'optimisation : minimiser un critère d'erreur entre courbe réelle et courbe idéale 104 Notes : VI Synthèse des filtres RIF 2 Phase linéaire • Filtre à phase minimale – Zéros dans le cercle unité • Filtre à phase linéaire H (e jΩ ) = A(Ω ).e j ϕ ( Ω ) A (Ω ) : pseudo − module ( amplitude ) avec ϕ (Ω ) = β − α Ω – Condition pour avoir une phase linéaire Symétrie ou antisymétrie par rapport à α = (N-1)/2 105 Notes : VI Synthèse des filtres RIF 2 Phase linéaire réponse impulsionnelle symétrique β=0 h(n) Type I réponse impulsionnelle antisymétrique β=±π/2 Type III h(n) N impair α entier α α N-1 Type II h(n) N pair α non entier α N-1 Type IV h(n) α N-1 N-1 106 Notes : VI Synthèse des filtres RIF 2 Phase linéaire Type I H (e jΩ )=e − jα Ω α ∑a n cos( nΩ ) n =0 a 0 = h (α ), an = 2 h (α − n ), n = 1K α N impair H (e π 2 α H (e ) = e e − jα Ω ∑ cn sin( nΩ ) j jΩ n =1 cn = 2 h (α − n ), n = 1Kα H (0 ) = H (π ) = 0 Passe Bande Tout filtre N pair Type II jΩ Type III )=e − jα Ω N /2 ∑b n =1 n cos[( n − 1 / 2 )Ω ] bn = 2 h ( N / 2 − n ), n = 1K N / 2 H (π ) = 0 Passe Haut Notes : Dérivateur Type IV π 2 N/2 H (e ) = e e − j αΩ ∑ d n sin[( n − 1 / 2 )Ω ] jΩ j n =1 d n = 2h ( N / 2 − n ), n = 1K N / 2 H (0 ) = 0 Passe Haut Dérivateur107 VI Synthèse des filtres RIF 2 Phase linéaire Type I π N impair 2π Tout filtre Type III π 2π π 2π Passe Bande Dérivateur N pair Type II π Notes : 2π Passe Haut Type IV Passe Haut Dérivateur 108 VI Synthèse des filtres RIF 3 Méthode du fenêtrage • Développement en série de Fourier du filtre idéal H (e j Ω ) = ∞ ∑ h ( n) e − jn Ω n = −∞ h ( n) = 1 2π ∫ π −π H (e j Ω ).e jn Ω dΩ – Filtre non causal, de type RII • Passage de h(n) idéal au RIF approché par fenêtrage de h(n) ha ( n) = h( n). w ( n ) 109 Notes : VI Synthèse des filtres RIF 3 Méthode du fenêtrage • Exemple : filtre passe-bas idéal 1 |H(ejΩ )| Filtre passe-bas idéal −π h ( n) = −Ω c Ωc π Ω Ω c sin( nΩ c ) π nΩ c 110 Notes : VI Synthèse des filtres RIF 3 Méthode du fenêtrage • Prise en compte d'une condition de phase linéaire par décalage de α • Fenêtrage de h(n) ha ( n ) = h ( n). w ( n ) ⇔ H a ( e j Ω ) = H ( e j Ω ) ∗ W ( e j Ω ) H(Ω) W(Ω) * ^ H(Ω) = 111 Notes : VI Synthèse des filtres RIF 3 Méthode du fenêtrage – Largeur de la zone de transition ∆Ω ⇔ 1/2 largeur du lobe principal – Atténuation ∆A ⇔ amplitude du premier lobe secondaire ^ H(Ω) 1+∆A 1 1−∆A H(Ω) ∆A ∆Ω W(Ω) 112 Notes : IV.2Synthèse des filtres RIF 3 Méthode du fenêtrage • Fenêtres usuelles – Rectangle, Triangule, Hanning, Hamming, Blackman, Kaiser, ... – Réponses temporelles 113 Notes : IV.2Synthèse des filtres RIF 3 Méthode du fenêtrage • Fenêtres usuelles – Réponses fréquentielles (linéaire, dB) 114 Notes : IV.2Synthèse des filtres RIF 3 Méthode du fenêtrage • Influence de la fenêtre Fenêtre Rectangulaire Triangulaire Hanning Hamming Blackman Lobe secondaire -13dB -25dB -31dB -41dB -57dB Demi largeur du Atténuation lobe principal minimum 2π/N -21dB 4π/N -25dB 4π/N -44dB 4π/N -53dB 6π/N -74dB – Le type de fenêtre influe sur ∆A et ∆Ω – Le nombre de points influe sur ∆Ω 115 Notes : VI Synthèse des filtres RIF 4 Méthode de l'échantillonnage • Échantillonnage en fréquence – Échantillonnage du filtre idéal H(ejΩ ) H(kΩ e) 1 π Ωc 2π Ω – TFD inverse de H(kΩe ) 1 h ( n) = N N −1 ∑ H ( kΩ e )e j 2π n .k N k =0 – Méthode valable pour tout type de filtre – Possibilité d'utiliser un fenêtrage 116 Notes : VII Analyse spectrale 1 Définition • Analyse spectrale de signaux continus – Etude du contenu fréquentiel (spectre) d'un signal continu xc(t) – Nombre limité d'échantillons du signal d'entrée pour la TFD xc(t) Filtre P.Bas anti-repliement Ωc = π CAN Fe x(n) x xN(n) FFT ||2 φ fenêtre wN(n) • Troncature temporelle – xN(n) = x(n) . wN(n) avec wN(n) fenêtrage sur N points – T0 = N.T : horizon d'observation 117 Notes : VII Analyse spectrale 2 Troncature temporelle • Troncature temporelle – xN(n) = x(n) . wN(n) avec wN(n) fenêtrage sur N points • Influence sur le spectre X N (e jΩ ) = X (e jΩ ) *W N (e jΩ ) – Convolution fréquentielle • TFD du signal tronqué L −1 X N ( k ) = ∑ x N ( n) e − 2 jπ kn L k = 0 ..L − 1 n =0 L≥N X N (k ) = X N (e j Ω ) Ω = 2π k / L 118 Notes : VII Analyse spectrale 2 Troncature temporelle • Exemple – Fenêtre rectangulaire, N=31 119 Notes : VII Analyse spectrale 3 Influence de la fenêtre – fonction cosinus fenêtrée sur N=32 points 120 Notes : VII Analyse spectrale 3 Influence de la fenêtre • Influence de la fenêtre Fenêtre Rectangulaire Triangulaire Hanning Hamming Blackman Lobe secondaire Largeur du lobe principal λ = 20log|W(fs)/W(0)| LLP = ∆Ωm -13dB -25dB -31dB -41dB -57dB 4π/N 8π/N 8π/N 8π/N 12π/N – Le type de fenêtre influe sur λ et ∆Ωm – Le nombre de points influe sur ∆Ωm W(Ω) λ ∆Ωm/2 π ∆Ωm 1/NT Notes : Ω f fs fe/2 121 VII Analyse spectrale 3 Influence de la fenêtre • Fenêtres usuelles – Rectangle, Triangule, Hanning, Hamming, Blackman, Kaiser, ... – Réponses temporelles 122 Notes : VII Analyse spectrale 3 Influence de la fenêtre • Fenêtres usuelles – Réponses fréquentielles (linéaire, dB) 123 Notes : VII Analyse spectrale 4 Paramètres de l'analyse • Finesse en fréquence – Capacité de l'analyseur à détecter 2 raies proches – Masquage fréquentiel – Largeur du lobe principal : LLP = 2∆Ω – Dépend de N et du type de fenêtre Exemple sur transparent 9 • Finesse en amplitude – Capacité de l'analyseur à détecter des raies de faibles amplitudes ou masquée par une autre raie proche – Masquage d'amplitude ou bruit de l'analyse λ = 20log|W(fs)/W(0)| – Dépend du type de fenêtre Exemple sur transparent 10 Notes : 124 VII Analyse spectrale 4 Paramètres de l'analyse Fenêtre rectangulaire 125 Notes : VII Analyse spectrale 4 Paramètres de l'analyse 126 Notes : VII Analyse spectrale 5 Zero-padding – Ajout de L-N zéros à la suite de x(n) avant TFD sur L points 127 Notes : VIII Systèmes multi-cadences 1 Définition • Systèmes multi-cadences – Systèmes dans lesquels on pourra avoir plusieurs fréquences d'échantillonnage dans une même chaîne de traitement – Ils tirent partie de la forme spectrale d'un signal en gardant Fe toujours à sa valeur optimale -> Réduction de la complexité xc(t) 1 t −ω0 Xc(ω) ω0 ω 128 Notes : VIII Systèmes multi-cadences 1 Définition x(nT) t T xd (nT') T' t −π/T 1/T X(ejΩ ) −ω0 ω0 1/T' Xd(ejΩ ) −π/T' π/T' π/T ω ω 129 Notes : VIII Systèmes multi-cadences 2 Décimation • Décimation d'un facteur M x(nT) ↓M xd(nT') t t T' = MT F'e = Fe/M xd (n) = x(nM ) X d (e jΩ ) = 1 M M −1 ∑ X (e j (Ω / M − 2 πi / M ) ) i =0 – Pour éviter le recouvrement de spectre, le signal xc(t) doit être à bande limitée et respecter le théorème de Shannon par rapport à T' X c (ω ) = 0 pour ω ≥ ω 0 et π/T' = π/(MT) ≥ ω 0 ou F ' e = Fe / M ≥ ω 0 130 Notes : VIII Systèmes multi-cadences 2 Décimation • Filtres à décimation – Filtre suivi d'un décimateur T' = MT Filtre Passe Bas Gain = 1 Ω c = π/M x(nT) v(nT) y(nT') ↓M • Optimisation du filtre à décimation x(nT) b0 T T b1 T b2 b3 v(nT) + + + y(nT') ↓2 131 Notes : VIII Systèmes multi-cadences 3 Interpolation • Interpolation d'un facteur L – Objectif : augmenter la fréquence d'échantillonnage d'un signal x(n) échantillonné à la période T d'un facteur L xi (n) = x(n / L) = xc (nT ' ), avec T ' = T / L • Elévateur de fréquence – Ajout de L-1 zéros entre 2 échantillons de x(n) x(nT) t xe(nT') ↑L t x(n / L), n = 0, ± L, ± 2 L, ... x e ( n) = 0 ailleurs X e (e jωT ' ) = X (e jωT ) jΩ X e (e ) = X (e Notes : jΩL Pas d'effet sur le spectre ) 132 VIII Systèmes multi-cadences 3 Interpolation t 1/T X(ejΩ ) 1/T' Xe(ejΩ ) −π/T t −π/T' • Interpolateur π/T −π/T π/T ω π/T' ω – Succession d'un élévateur de fréquence et d'un filtre passe-bas idéal de gain L, de période d'échantillonnage T' et de fréquence de coupure Fc = 1/2T (i.e. Ωc = π/L). x(nT) Notes : ↑L xe(nT') Filtre Passe Bas Gain = L Ω c = π/L xi(nT') 133 VIII Systèmes multi-cadences 3 Interpolation • Optimisation du filtre à interpolation x(nT) ↑2 v(nT') b0 T T b1 T b2 b3 y(nT') + + + • Multiplication de Fe par un facteur rationnel R=L/M – T' = T.M/L x(nT) ↑L Filtre Passe Bas Gain = L Ωc = min(π/L, π/M) ↓M y(nT') 134 Notes :