Transformée de Fourier Discrète Convolution Circulaire



Documents pareils
INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Traitement du signal avec Scilab : la transformée de Fourier discrète

Systèmes de transmission

5.2 Théorème/Transformée de Fourier a) Théorème

Mise en pratique : Etude de spectres

Communication parlée L2F01 TD 7 Phonétique acoustique (1) Jiayin GAO <jiayin.gao@univ-paris3.fr> 20 mars 2014

Chap17 - CORRECTİON DES EXERCİCES

Quantification Scalaire et Prédictive

Communications numériques

Projet de Traitement du Signal Segmentation d images SAR

Transmission d informations sur le réseau électrique

TP SIN Traitement d image

Analyse des bruits de clavier d ordinateur

LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK

TD1 Signaux, énergie et puissance, signaux aléatoires

FAG Detector III la solution pour la surveillance et l équilibrage. Information Technique Produit

MESURES D UN ENVIRONNEMENT RADIOELECTRIQUE AVEC UN RECEPTEUR CONVENTIONNEL ETALONNE

EMETTEUR ULB. Architectures & circuits. Ecole ULB GDRO ESISAR - Valence 23-27/10/2006. David MARCHALAND STMicroelectronics 26/10/2006

TP Modulation Démodulation BPSK

LES TOUT PREMIERS PAS

Expérience 3 Formats de signalisation binaire

Compatibilité Électromagnétique

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

A chaque couleur dans l'air correspond une longueur d'onde.

1 Savoirs fondamentaux

FAG Detector II le collecteur et l analyseur de données portatif. Information Technique Produit

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

- affichage digital - aiguille

ACOUSTIQUE 3 : ACOUSTIQUE MUSICALE ET PHYSIQUE DES SONS

Hélène Lœvenbruck, Christophe Savariaux, Dorothée Lefebvre

Chapitre I La fonction transmission

V- Manipulations de nombres en binaire

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Didier Pietquin. Timbre et fréquence : fondamentale et harmoniques

LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION

AMELIORATION DE LA FIABILITE D UN MOTEUR GRÂCE AU TEST STATIQUE ET DYNAMIQUE

Indications pour une progression au CM1 et au CM2

PRISE EN MAIN DU SPECTROPHOTOMETRE UV-VISIBLE SHIMADZU U.V. 240

LISACode. Un simulateur opérationnel pour LISA. Antoine PETITEAU LISAFrance - le 16 mai 2006

CH IV) Courant alternatif Oscilloscope.

Echantillonnage Non uniforme

Conversion d un entier. Méthode par soustraction

FICHE 1 Fiche à destination des enseignants

Enregistrement et transformation du son. S. Natkin Novembre 2001

Son et Mathématiques

Traitement du signal avec Scilab : transmission numérique en bande de base

Plus petit, plus grand, ranger et comparer

Recherche De Coalescences Binaires Étalonnage Du Détecteur

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Champ électromagnétique?

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Transmission des signaux numériques

Cercle trigonométrique et mesures d angles

Optimisation, traitement d image et éclipse de Soleil

8563A. SPECTRUM ANALYZER 9 khz GHz ANALYSEUR DE SPECTRE

VOS PREMIERS PAS AVEC TRACENPOCHE

Chapitre 02. La lumière des étoiles. Exercices :

Spectrophotomètres. Spectrophotomètres modèle Les spectrophotomètres Série 67 : 3 modèles uniques

- Instrumentation numérique -

Introduction à la présentation graphique avec xmgrace

Caractéristiques des ondes

Analyses psychoacoustiques dans ArtemiS SUITE

1. PRESENTATION DU PROJET

Ni tout noir, ni tout blanc Consignes Thème I - Observer

Chapitre 2 Les ondes progressives périodiques

Les algorithmes de base du graphisme

La fonction exponentielle

M1107 : Initiation à la mesure du signal. T_MesSig

C f tracée ci- contre est la représentation graphique d une

EXCEL TUTORIEL 2012/2013

CREER ET ANIMER SON ESPACE DE TRAVAIL COLLABORATIF

Sujet. calculatrice: autorisée durée: 4 heures

10ème Congrès Français d'acoustique Lyon, Avril 2010

Calculs Computional fluide dynamiques (CFD) des serres à membrane de Van der Heide

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Cours Excel : les bases (bases, texte)

23. Interprétation clinique des mesures de l effet traitement

Fête de la science Initiation au traitement des images

Étude des résultats des investisseurs particuliers sur le trading de CFD et de Forex en France

Cours 7 : Utilisation de modules sous python

Chapitre 13 Numérisation de l information

Instruments de mesure

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

Observer TP Ondes CELERITE DES ONDES SONORES

Fonction inverse Fonctions homographiques

Les moyens d observations en astronomie & astrophysique

LUT QU EST-CE QUE C EST? Version 1.0 Mars 2010

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Chaine de transmission

Analyse spectrale. jean-philippe muller. version juillet jean-philippe muller

Condition Monitoring System pour les éoliennes. "Condition Monitoring System" pour les éoliennes

Projet audio. Analyse des Signaux ELE2700

données en connaissance et en actions?

My Custom Design ver.1.0

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

EFFET DOPPLER EXOPLANETES ET SMARTPHONES.

TD : Codage des images

Transcription:

BE Traitements Numériques des Signaux n 2 Filière SICOM 2A PHELMA-ENSE 3 Année 2015-2016 Pascal PERRIER Transformée de Fourier Discrète Convolution Circulaire 1. Analyse d un signal périodique Dans cette première partie nous analyserons un signal périodique. Il s agit du son [a] généré par un synthétiseur de parole. Il est stocké dans le fichier a_synth.wav. Pour cette analyse vous aurez à utiliser puis à faire évoluer un programme de base intitulé BE2_tfd_perio.m. Vous pourrez modifier et renommer ce programme à votre guise. Pour le lancer la commande est du type BE2_tfd_perio( a_synth, Rect, 64). Il calculera et affichera alors la TFD sur 64 points d une fenêtre rectangulaire de signal de 64 points située autour d une position définie manuellement par un curseur sur la fenêtre représentant le signal (fenêtre en haut à gauche). Il permet aussi à l aide de curseur de faire des mesures sur la TFD. Différents types de fenêtres d apodisation sont proposés ; la largeur de la fenêtre est paramétrable. a. Lire le programme pour en comprendre la structure et voir comment changer la fenêtre d apodisation utilisée. b. Lancer le programme pour une fenêtre rectangulaire sur 128 points. Choisir pour le centre de la fenêtre une position facile à mémoriser (par exemple 0.2, 0.3, 0.4.). Il faudra réutiliser cette position pour toutes les analyses à suivre. Vous pouvez aussi modifier le programme pour mémoriser cette position si vous le souhaitez. c. Dans le programme fourni, l échelle fréquentielle est en numéro d échantillon (indice). Modifiez cette échelle pour faire apparaître, selon un nouveau paramètre d entrée du programme que vous définirez, les fréquences numériques ou les fréquences physiques en Hz.. d. Ecrire une partie de programme permettant de calculer, puis de visualiser en superposition avec la TFD, une TFD calculée avec un fort zero-padding (par exemple un facteur 10 ou 20). On considérera que cette TFD avec zero-padding est une approximation très fidèle de la TFDT de la portion de signal analysée. Nous appellerons donc désormais TFDT cette TFD avec zero-padding. Bien-sûr ceci correspond un abus de langage, puisque la TFDT est une fonction continue, ce que ne peut pas être intrinsèquement une TFD. Contrairement à la TFD la TFDT sera donc dessinée sous forme continue, avec la commande plot. Bien-sûr l échelle fréquentielle pour cette TFDT sera aussi exprimée soit en fréquence numérique, soit en fréquence physique (Hz). Que représente la TFD pour la TFDT? La superposition des deux tracés confirme-t-elle cette notion théorique? e. Effectuer des mesures des fréquences et du module de la TFD et de la TFDT en certains points caractéristiques (maxima, minima, valeur à la fréquence 0.). f. Effectuer la même analyse sur 128 points mais avec la fenêtre de Hanning, puis la fenêtre de Blackman. Effectuer les mêmes mesures de fréquences et de module que ci-dessus. On observe des différences dans les valeurs du module. Comment les expliquer et comment les corriger? g. Ajouter dans le programme une étape de normalisation du module de la TFD et de la TFDT permettant d avoir des mesures similaires quelle que soit la fenêtre d apodisation. h. Ecrire une partie de programme permettant de représenter le module du spectre (TFD ou TFDT) en db. Lire le fichier enveloppe_spectrale.mat. Il contient les variables fnum et enveloppe_db qui permettent de représenter l enveloppe spectrale utilisée par le synthétiseur 1

pour synthétiser le /a/. Superposer le tracé de cette enveloppe spectrale aux tracés en db de la TFD et de la TFDT, obtenus avec la fenêtre rectangulaire ou la fenêtre de Hanning. La normalisation des amplitudes proposées ci-dessus est-elle efficace? i. Avec le programme ainsi modifié calculez les TFD et TFDT du signal pour des longueurs de fenêtre égales à [80 160 190 240 380], pour une fenêtre rectangulaire et pour une fenêtre de Hanning. Montrer où apparaissent clairement les avantages et les inconvénients de ces deux fenêtres. A partir de quelle longueur de la fenêtre voit-on sur la TFD pour la fenêtre rectangulaire que le spectre est celui d un signal périodique? Même question pour la TFDT. Mêmes questions pour la TFD et la TFDT calculées avec la fenêtre de Hanning. j. Mesurer cette fréquence sur la TFDT. Est-elle conforme à la mesure de la période faite sur le signal temporel? 2. Utilisation de la convolution circulaire pour filtrer un signal par tranches Nous allons maintenant étudier différentes méthodes permettant de filtrer par tranches un signal quelconque de longueur non prédéterminée. Ces méthodes par tranches sont indispensables dans le cas de traitement du signal en temps réel. L utilisation de la convolution circulaire peut permettre de diminuer grandement les temps de calcul du fait de l existence d algorithmes rapides pour le calcul de la TFD (Cf. Annexes). Nous considérons ici un filtre dont la réponse impulsionnelle h est stockée dans le fichier rep_imp.mat. Ouvrir ce fichier. Noter la longueur de la réponse impulsionnelle. Nous utiliserons 2 méthodes de filtrage par tranches : la méthode «overlap-add» (en français «addition-superposition» et la méthode overlap-save (en français superposition-juxtaposition). 2.1 Méthode «overlap-add» Cette méthode est implémentée avec la convolution linéaire dans le programme BE2_Overlap_add. L appel de ce programme est du type BE2_Overlap_add('a_synth', 128). Il calcule alors le filtrage du signal contenu dans le fichier a_synth par tranches de 128 points. a. Lire et analyser ce programme. Représenter schématiquement les différentes étapes de ce filtrage. Observez les résultats pour des tranches de 128 points. Expliquer mathématiquement comment est reconstitué le signal filtré complet à partir du filtrage des tranches. b. Ecrire un programme permettant de calculer le filtrage par tranche à l aide de la convolution circulaire. c. Une fois ce programme implémenté, calculer le résultat du filtrage par tranches de 128 points par une convolution circulaire de 128 points. Comparer au résultat obtenu avec la convolution linéaire par tranches. Où se situent les différences entre ces deux signaux. Pourquoi? d. En déduire la longueur de la convolution circulaire garantissant l exacte égalité des signaux de sortie du filtrage par tranches par convolution linéaire et par convolution circulaire. e. Représenter les résultats de ce filtrage par convolution circulaire. 2.2 Méthode «overlap-save» Cette méthode est implémentée avec la convolution circulaire dans le programme BE2_Overlap_save_conv_circ. L appel de ce programme est du type BE2_Overlap_save_conv_circ('a_synth', 128, 10) Il filtre alors le signal contenu dans le fichier a_synth par tranches de 128 points, avec une superposition de 10 points. Dans cette méthode le filtrage est toujours effectué par convolution circulaire sur un nombre de points égal à la longueur de la tranche (ici 128 points). La superposition des tranches du signal à filtrer permet de calculer dans la tranche n des échantillons qui seront faux dans la tranche n+1. Ces échantillons faux ne seront alors pas pris en compte dans le signal final. Pour comprendre la méthode analysez le programme et exécutez le filtrage pour des fenêtres de 128 points et différents intervalles de superposition, par exemple, 5, 10, 20. En s appuyant sur la théorie de la convolution circulaire, donner la valeur exacte du nombre d échantillons se superposant entre deux tranches successives du signal à filtrer, qui garantit l égalité parfaite entre le résultat du filtrage par la méthode overlap-save et celui du filtrage par convolution 2

linéaire prenant en compte tout le signal. Exécuter alors le programme pour cette valeur et comparer les résultats avec le filtrage global par convolution linéaire. 3

ANNEXES TFD et FFT Comparaison des temps de calcul. La transformée de Fourier Discrète (TFD) de longueur N d un signal de longueur finie N peut se calculer soit en appliquant la formulation matricielle de la TFD présentée en cours, soit en utilisant des algorithmes particulièrement efficaces qualifiés sous le terme général de Fast Fourier Transform (FFT). Ces algorithmes permettent d obtenir les échantillons de la TFD en utilisant un nombre d opérations élémentaires (Multiplication + addition) beaucoup plus faible que la méthode matricielle. Le premier de ces algorithmes a été proposé par Cooley et Tukey en 1965 (Cooley, J.W. & Tukey, J.W (1965). An algorithm for machine calculation of complex Fourier series. Mathematics of computation 19, Vol. 90, 297-301). Il est destiné à des valeurs de N égales à des puissances de 2. Par la suite les principes proposés par Cooley & Tukey ont été mis en œuvre dans d autres algorithmes qui s avèrent globalement aussi efficaces pour d autres valeurs de N tant que N n est pas un nombre premier, ou qu il n est pas égal à un produit de nombres premiers de fortes valeurs. La courbe ci-dessous présente une évaluation des temps de calcul pour différentes valeurs de N. Un bref exposé pendant la séance précisera ces différents aspects. 10-1 m=premier ; r=puissance de 2 ; g=produit de premiers 10-2 10-3 10-4 10-5 10-6 10-7 0 500 1000 1500 2000 2500 3000 3500 Courbe bleue : temps proportionnel à N 2 Courbe rouge : temps proportionnel à Nlog2(N) Croix bleue : temps de calcul de la TFD par représentation matricielle Cercle magenta : temps de calcul de la FFT pour N premier Cercle vert : temps de calcul de la FFT pour N produit de deux nombres premiers Cercle rouge : temps de calcul de la FFT pour N égal à une puissance de 2 Croix noire : temps de calcul de la FFT pour N autre 4

Intérêt de la méthode «overlap add» par FFT par rapport à la méthode «overlap add» par convolution linéaire L avantage de l utilisation de la FFT par rapport à la convolution linéaire est uniquement un gain de temps, dans certaines circonstances, dans le calcul. C est donc essentiellement intéressant pour le traitement du signal en temps réel, ou pour des programmes en temps différé qui mettrait en jeu des filtrages massifs de signaux très longs. Nous avons montré ci-dessus l avantage, en termes de temps de calcul, de l utilisation de l algorithme de la FFT lorsqu il s applique au calcul d une TFD de longueur égale à une puissance de 2 (courbe rouge sur la figure ci-dessus). Cet avantage fait que pour de signaux de longueur suffisamment grande, il est plus avantageux de calculer la convolution en passant par le calcul de la TFD des signaux à convoluer plutôt que de calculer la convolution linéaire. Pour montrer cet avantage, on se focalisera sur le nombre de multiplications à effectuer, les multiplications étant souvent (sauf sur les Digital Signal Processors) plus coûteuses en temps que les additions. Si on a un filtre de réponse impulsionnelle de longueur N, chaque échantillon du signal de sortie va nécessiter N multiplications si on le calcule par convolution linéaire. Si on implémente le filtre par la convolution circulaire sur des tranches de longueur M, on devra calculer la TFD de longueur L=M+N-1 du signal x, la multiplier par la TFD de longueur L de h (préalablement stockée et donc non prise en compte dans ce calcul), puis calculer la TFD inverse de longueur L. Si on choisit L égal à une puissance de 2 le calcul de la TFD de longueur L par FFT coûte.. multiplications Donc le calcul des 2 FFT (directe et inverse ) et leur multiplication coûtera au total.(+ ) multiplications Et ce calcul permettra l obtention de L échantillons du signal de sortie. On sait que les (N-1) derniers seront additionnés aux N-1 premiers de la tranche suivante, mais on ne considère ici que les multiplications. Ces N-1 additions auront de plus d autant moins d importance que N est petit par rapport à la longueur M des tranches de signal. Donc dans ce contexte, le calcul d un échantillons de sortie par la convolution circulaire coûte. = + multiplications Donc entre l implémentation par convolution circulaire et celle par convolution linéaire, il y a pour le calcul d un échantillon de sortie un rapport ( ) dans le nombre des multiplications. 5