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-