COURS ELE2700 ANALYSE DES SIGNAUX
Transcription
COURS ELE2700 ANALYSE DES SIGNAUX
ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE ÉLECTRIQUE AUTOMNE 2006 COURS ELE2700 ANALYSE DES SIGNAUX SÉANCE #2 ANALYSE SPECTRALE section #1 2 Octobre section #2 16 Octobre OBJECTIF : Étude du contenu fréquentiel d’un phonème prononcé par une voix humaine. TABLE DES MATIÈRES 1 Série de Fourier 1.1 Théorie de base ........................................................................................................................................... 2 1.2 Programmation avec MATLAB 1.2.1 Représentation du signal .................................................................................................................... 2 1.2.2 Commande « fft » ........................................................................................................................... 3 1.2.3 Programme de base ............................................................................................................................ 3 2 Travail à effectuer 2.1 Acquisition d’un signal ............................................................................................................................... 4 2.2 Analyse ....................................................................................................................................................... 6 2.3 Rapport ....................................................................................................................................................... 7 ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #2 1 SÉRIE DE FOURIER 1.1 Théorie de base Soit v(t), un signal périodique de période T. Ce signal peut être exprimé sous forme de série exponentielle de Fourier : v ( t ) = ∑ n Vn e +j 2π nt T [1.1] Les coefficients Vn sont donnés par l’expression suivante : Vn = 2π nt −j 1 T v t e dt ( ) ∫ TT [1.2] L’évaluation des coefficients Vn nous permet de déterminer la composition fréquentielle du signal périodique v(t). 1.2 Programmation avec MATLAB 1.2.1 Représentation du signal L’évaluation de l’expression [1.2] par ordinateur implique l’évaluation numérique d’une intégrale à partir d’une représentation numérique du signal v(t). Cette représentation sera obtenue par la lecture de K valeurs du signal dans un intervalle de T seconde : v(t ) t= kT , k = 0,1,", K −1 K v(t) 0 T K 2T K 3T K ( K − 1) T 4T K K -2- t T ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #2 1.2.2 Commande « fft » Le logiciel MATLAB comporte une commande « fft » qui effectue un calcul correspondant à l’évaluation numérique des coefficients de la série exponentielle de Fourier d’un signal par la méthode des rectangles. On l’utilisera de la façon suivante : Vn=fft(v)/K où v est un vecteur de K points représentant le signal v(t) : ⎡ v ( 0 ) v ( T ) v ( 2T ) " v K K ⎣ ( [ ] )⎤⎦ K −1 T K Le vecteur résultant Vn contiendra K coefficients selon l’arrangement suivant : ⎡ ⎢V0 V1 " VK −1 V± K ⎣ 2 2 V K − +1 2 ⎤ " V−2 V−1 ⎥ ⎦ 1.2.3 Programme de base (à compléter) % NOMBRE DE POINTS K= % ; CONSTRUCTION DU VECTEUR SIGNAL v v= % ; ÉVALUATION DES COEFFICIENTS DE FOURIER DU SIGNAL Vn=fft(v)/K; % AFFICHAGE DU MODULE DES COEFFICIENTS DE FOURIER n= Vn_mod= ; ; stem(n,Vn_mod) grid title(’COEFFICIENTS DE FOURIER DE v(t)’) xlabel(’AXE n’) ylabel (’MODULE’) -3- ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #2 2. TRAVAIL À EFFECTUER 2.1 Acquisition du signal Vous aurez à étudier la composition fréquentielle d’un phonème que enregistrerez vous-même à l’aide d’un microphone et de l’outil Simulink. Accédez à Simulink et reproduisez le schéma suivant : voix.wav To Wave File butter butter 5 From Wave Device Digital IIR Filter Design Slider Gain Digital IIR Filter Design1 voix To Workspace Boîte « From Wave Device » (librairie DSP Blockset / DSP Sources) Cet élément permet d’acquérir un signal capté par le microphone branché à la carte-son. Fixez les paramètres suivants : Fréquence d’échantillonnage = (elle vous sera précisée au laboratoire) Précision = 16 bits Ne pas cocher la case « Stereo » Nombre d’échantillons par trame (« Samples per frame ») = 1 Durée de la file = 1 seconde Cocher la case « Use default audio device » 1ère boîte « Digital IIR Filter Design » (librairie DSP Blockset / Filtering / Filter Design) Ce filtre coupe les hautes fréquences du signal, contribuant ainsi à réduire le bruit. Fixez les paramètres suivants : Méthode de design = Butterworth Type de filtre = Passe-bas Ordre = 4 Fréquence de coupure = 0.25 (correspond à 0.125 × la fréquence d’échantillonnage) Ne pas cocher la case « Frame-based inputs » -4- ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #2 Boîte « Slider Gain » (librairie Simulink / Math) Cet élément sert à amplifier le signal. Fixez le gain à 5 (à ajuster si vous constatez que cette valeur ne convient pas). 2e boîte « Digital IIR Filter Design » (librairie DSP Blockset / Filtering / Filter Design) Ce filtre passe-haut coupe toute composante continue s’étant infiltrée dans le système. Fixez les paramètres suivants : Méthode de design = Butterworth Type de filtre = Passe-haut Ordre = 4 Fréquence de coupure = 0.005 (correspond à 0.0025 × la fréquence d’échantillonnage) Ne pas cocher la case « Frame-based inputs » Boîte « To Wave File » (librairie DSP Blockset / DSP Sinks) Cet élément sert à enregistrer le signal dans un fichier « .wav ». Fixez les paramètres suivants : Nom du fichier = voix (ou tout autre nom de votre choix) Précision = 16 bits Ne pas cocher la case « Stereo » Si le signal comporte des valeurs en dehors de la marge [-1 +1], celles-ci seront écrêtées avant d’être enregistrées. Une forte distorsion sera alors présente lorsque le fichier voix.wav sera ouvert. Diminuer adéquatement le gain de la boîte « Slider Gain » permet d’éviter ce problème. Boîte « Signal To Workspace » (librairie Simulink / Sinks) Cet élément sert à copier le signal dans MATLAB. Fixez les paramètres suivants : Nom de la variable = voix (ou tout autre nom de votre choix) Nombre maximum de rangées = inf (pour infini ; tous les échantillons seront conservés) Facteur de décimation = 1 Temps d’échantillonnage = -1 Format de sauvegarde = Matrix -5- ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #2 Pour enregistrer le phonème à analyser, nous vous proposons la procédure suivante : • Branchez le microphone à l’entrée appropriée de l’ordinateur. • Fixez la durée de la simulation à une seconde (onglet Simulation / Parameters / Solver : Stop time = 1). • Juste avant de démarrer l’enregistrement (en déclenchant la simulation dans Simulink) , commencez à prononcer un phonème voisé d’une façon continue (exemple : « haaaaaaaaaaa… ») en le maintenant jusqu’à la fin de l’enregistrement (dont la durée a été fixée à une seconde). Vous pouvez vous amuser à « forcer » votre voix pour la rendre plus aiguë ou plus grave que sa tonalité habituelle. (Pour les voix très aiguës, il serait préférable d’augmenter la fréquence de coupure du filtre passe-bas à 0.4 ou 0.5, par exemple). Vous pouvez écouter votre enregistrement en faisant jouer le fichier voix.wav que Simulink a produit (si la distorsion est trop forte, c’est que le gain de la boîte « Slider Gain » est trop élevé). La qualité du signal n’apparaîtra pas très élevée car le filtre passe-bas ne laisse passer que les basses fréquences du signal (elles sont toutefois suffisantes pour l’analyse). 2.2 Analyse Dans MATLAB, vous pouvez récupérer la version numérisée de votre phonème dans le vecteur « voix ». Attention ! Ce vecteur contient plusieurs milliers de points (la liste des variables actives et leurs dimensions sont données par la commande « whos »). Vous devrez isoler une partie du signal. Commencez par afficher quelques centaines de points (avec plot(voix(1:800)), par exemple) pour évaluer K, le nombre de points dans l’intervalle d’analyse. Quand vous aurez déterminé K, générez le vecteur signal (avec v=voix(1:K), par exemple) qui sera analysé. Assurez-vous d'avoir un nombre entier de périodes du signal dans l’intervalle d'analyse (pourquoi ?). Procédez à l’analyse spectrale (voir 1.2.3 Programme de base). Il est conseillé de n’afficher qu’un nombre restreint de coefficients (V-20 à V+20, par exemple). -6- ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #2 2.3 Rapport Avant la fin de la séance, vous devrez remettre : La description phonétique du signal analysé (exemples : « a » comme dans « analyse », « i » comme dans « signal », etc.). Une figure représentant le signal analysé en fonction du temps en seconde. Une figure représentant le module des coefficients de la série exponentielle de Fourier du signal. Le listage des commandes MATLAB utilisées. Les conclusions suivantes : • Quelle est la fréquence fondamentale du signal ? • Quelles sont les principales composantes fréquentielles du signal ? -7-