Escolar Documentos
Profissional Documentos
Cultura Documentos
4me Electricit
Thierry Dutoit Facult Polytechnique de Mons TCTS Lab Ave. Copernic Ph: +32 65 374774 Parc Initialis Fax: +32 65 374729 B-7000 Mons Thierry.Dutoit@fpms.ac.be Belgium http://tcts.fpms.ac.be/~dutoit
AVANT-PROPOS
2. Analyse spectrale des signaux dterministes et alatoires 3. Traitement numrique dans le domaine temporel Systmes LTI 4. Filtrage numrique : approximation et synthse
= le dtail des modules implments dans MATLAB sous la forme de fonctions = une analyse des rsultats fournis : comparaison (auditive, temporelle, et spectrale) entre les formes dondes produites et les formes dondes originales = une analyse des performances et des limitations du synthtiseur en termes de possibilits de modifications des caractristiques des sons Le projet sera cot sur ? pour un total annuel de ? points en Traitement du Signal.
1.1 Introduction
Les systmes de traitement du signal numrique manipulent des signaux, qui sont soumis divers types de traitements par chantillons (typiquement, du filtrage numrique ou de la modulation) ou par bloc (typiquement, des analyses spectrales ou des modlisations). Ces signaux sont soit produits par des sources analogiques et numriss laide de convertiseurs analogiques-numriques, soit gnrs directement sous forme numrique. Dans la cadre de cette scance de travaux pratiques, nous allons envisager la mise au point de gnrateurs de signaux numriques, et examiner par la pratique linfluence de la frquence dchantillonnage.
x + (t ) = x(t ) Te Te (t )
o Te (t ) est un train dimpulsions de Dirac espaces de Te. Les chantillons correspondants sont donnes par :
x(n) = x + (nTe )
Le spectre X+() de x+(t) est donn par :
n =
X + ( ) =
X ( n e )
Ceci correspond une duplication de X() linfini, et une sommation (complexe) des spectres ainsi dupliqus. On en dduit immdiatement le thorme de Shannon (dans sa version la plus simple) : Pour chantillonner correctement une fonction x(t), il faut que son
spectre X() soit born et que la pulsation dchantillonnage e soit suprieure ou gale deux fois la pulsation maximale M
X ( ) =
+
= = =
On constate donc que ce spectre est donn par la transforme en z de x(n), calcule sur le cercle de rayon unit.
1 On prfrera en gnral stem plot pour visualiser un signal compos d'un petit nombre
d'chantillons.
Utilise de cette faon, cette fonction calcule le spectre de x sur 512 points et en affiche le module et la phase.
c) Pour chacune de ces frquences dchantillonnage, visualiser sous Matlab le signal rsultant de lchantillonnage de x(t) pour t variant de NTe + NTe , et visualiser son spectre (avec successivement N=300, N=100, N=10). La valeur de N influence clairement la qualit de la mesure du spectre (mme problme que plus haut : si N est trop petit, le somme du point 1.2.2 est tronque.
LABO 2
2.1 Introduction
Il a t revu lors de la sance prcdente que le choix de la priode d'chantillonnage Te joue sur le phnomne de repliement spectral. Plus Te est petit, plus faible est le repliement. Le thorme de Shannon impose ds lors un filtre de garde, qui permet dviter cet effet perturbateur. Cependant, dans la plupart des spectres examins dans la sance prcdente, on constatait une diffrence parfois importante avec les spectres thoriques. Le but de cette sance de laboratoire est de mieux comprendre la raison de ces diffrences, et den matriser leffet.
10
w(n)e j nTe
sin( L Te ) 2 sin( 1 Te ) 2
Il sagit donc dune fonction pieuvre de priode Fe (Hz). On constate bien entendu que plus L est grand, plus le spectre de la fentre de pondration tend vers une impulsion, et plus l'effet de convolution spectrale (par cette impulsion) est faible : le spectre observ tend alors vers le spectre du signal complet. Il est important de remarquer pour la suite que le demi-lobe principal de cette fonction a pour largeur Fe/L (Hz). On trouve exprimentalement (voir labo) que la diffrence damplitude entre le lobe principal et les lobes secondaires est de lordre de 13 dB. Ces deux caractristiques impliquent que lutilisation dune fentre rectangulaire ne permettra en gnral pas de distinguer deux sinusodes dont les frquences seraient espaces de moins de Fe/L (Hz) ou dont les amplitudes seraient dans un rapport de plus de 13 dB. Il est donc souvent utile dutiliser dautres fentres de pondration, dont lallure est calcule pour offrir de meilleures possibilits de sparation spectrale en amplitude ou en frquence : fentre de Hamming, fentre de Blackman. Ces deux fentres ont des spectres dallure semblable au prcdent (fonctions pieuvre ), mais leur rsolution spectrale va dcroissant, alors que leur rsolution en amplitude va croissant (voir labo).
11
x (t ) =
un
i
ai sin ( 2 fi t ) .
signal
compos
dune
somme
pondre
de
sinusodes :
Prdterminer, et vrifier ensuite, les valeurs de Fe et N utiliser pour pouvoir observer avec prcision, tout en maintenant minimale la charge de calcul, les trois frquences suivantes :
12
On supposera pour les calculs que Fe=22, L=50, N=512. Les mesures doivent vrifier les valeurs suivantes: Rectangulaire D LP 13 dB Fe/L Hamming 40 dB 2 Fe/L Blackman 60 dB 2.75 Fe/L
b) En dduire, et vrifier ensuite sous Matlab, la fentre utiliser pour pouvoir distinguer au mieux les frquences dun signal f ( t ) = ai sin ( 2 fi ) t dans les cas
i
suivants : =
Fe = 8 kHz, L = N = 256
Fe = 8 kHz, L = N = 256
13
f1 = 860 Hz , a1 = 1 f 2 = 1015 Hz , a2 = 5
Fe = 8 kHz, N = 1024
14
LABO 3
3.1 Introduction
Un des points essentiels abords lan pass en thorie des circuits tait ltude de leffet dlments simples (R, L, C) sur un signal lectrique analogique. De la mme faon, un des points essentiels en traitement du signal est ltude de leffet doprateurs numriques simples (+, *, z-1) sur un signal numrique. Ces oprations constituent ce que lon appelle une rcurrence linaire. Leur effet peut tre tudi dans le domaine temporel comme dans le domaine spectral. Le lien entre ces deux vues du mme effet est ralis par la transforme en Z. Au cours de cette sance de travaux pratique, nous tudierons des rcurences simples, et vrifierons leurs effets dans le domaine temporel et spectral.
y (t ) =
x( )h(t ) d
Il est donc logique, par analogie, dtudier leffet dune convolution numrique sur une signal numrique :
y ( n) =
h(i ) x(n i )
i =
Cette opration extrmement simple constitue une rcurrence linaire. Elle est constitue de sommes, de multiplications, et de dlais appliqus au signal dentre. Elle constitue ce que lon appelle un filtre FIR.
15
Nous verrons plus bas quon peut interprter cette rcurrence de deux faons (somme pondre dchantillons somme de rponses impulsionnelles retardes)
y ( n) =
b(i ) x(n i ) +
a(i ) y (n i )
i =
i =1
Ce type de rcurrence linaire caractrise ce que lon appelle un filtre IIR. Il est clair quon peut toujours crire galement :
y ( n) =
h(i ) x(n i )
i =
o h(n) est la rponse impulsionnelle du filtre FIR. Cette expression est cependant peu pratique, puisque la dure de h(n) est thoriquement infinie.
Y ( z) = X ( z)H ( z)
o H(z) est donn par :
H ( z) =
h(i ) z i
i =
H ( z) =
B( z ) = A( z )
b(i ) z i
(ATTENTION : a(i) au dn, pas b(i))
i =
b(i ) z
i =
Ce polynme H(z) est essentiel. La rponse en frquence du systme linaire est en effet donne par :
H ( ) = H ( z ) ( z = e j )
On en dduit limportance des zros et des ples de H(z) : le calcul de la rponse en frquence dun systme numrique (en dB) peut tre interprt comme une somme de contributions lmentaires mesurables dans le plan complexe en se dplaant sur le cercle de rayon unit et en mesurant les modules et phases de vecteurs (z-zi) et (z-pi) !
16
= A( z )
p i =0
ai z i
On a alors :
X ( z) =
U ( z ) A( z ) U ( e j ) = j A(e ) A(e j )
On en dduit que :
X (e j ) =
On demande de dterminer (sur papier), puis de visualiser (sous Matlab) : = La rponse impulsionnelle du systme = Sa transforme en Z = Ses ples et zros = Lallure de sa rponse en frquence ; vrifier que cette allure correspond bien la position des ples et zros Quelle serait la sortie d'un tel filtre si l'entre tait constante (voir l'quation de rcurrence)? Ceci correspond-il avec ce que l'on voit sur la rponse en frquence? On demande ensuite de raliser sous Matlab le filtrage (par ce systme) de 500 chantillons dun signal sinusodal 1000 Hz chantillonn 10 kHz (utiliser la fonction filter, qui implmente une rcurrence gnralise)3. Afficher les signaux dentre et de sortie, ainsi que leurs spectres. Vrifier sur ces donnes que les relations entre-sortie sont bien caractrises par la rponse en frquence du filtre.
3 On pourrait videmment utiliser cette mme fonction pour calculer la rponse impulsionnelle du
systme. Dans le cas simple d'un FIR, c'est inutile : la rponse impulsionnelle est tout simplement la suite des coefficients du filtre.
17
Noter que la rponse en frquence obtenue correspond bien lide quon pouvait se faire de lutilit de cette rcurrence : un moyennage local, qui doit correspondre un passe-bas. On demande galement dinterprter cette rcurrence de deux faons : comme une somme pondre dchantillons dentre et comme une somme pondre de rponses impulsionnelles.
H ( z) = 1 z N
Pour une valeur de N=10, rpter la dmarche de la question prcdente. Expliquer, partir dun raisonnement dans le domaine temporel, leffet sur la sinusode 1000 Hz.
A(e j )
b) Crer un signal autorgressif de 8192 points partir du filtre gnr, visualiser sa densit spectrale de puissance, et comparer la rponse en frquence obtenue au point a)
LABO 4
4.1 Introduction
Le filtrage numrique est une des applications majeures du traitement du signal. La prcdente sance de laboratoire a t consacre ltude de rcurrences simples, et la relation entre rcurrences, transformes en Z, ples et zros correspondants, et rponses en frquence. Ces rcurrences caractrisaient des filtres numriques, dont nous avons donc analys les caractristiques gnrales. Nous allons ici aborder le problme de lapproximation et de la synthse des filtres numriques. Comme ctait dj le cas en Thorie des Circuits, nous commencerons par examiner les possibilits de simples cellules du second degr. Nous poursuivrons ensuite par la synthse de filtres dordre plus lev.
H ( z) = K
1 + a1 z 1 + a2 z 2 1 + b1 z 1 + b2 z 2
Comme en thorie des circuits, il est pratique de mettre le numrateur ou le dnominateur de cette expression sous une forme qui fasse mieux apparatre les caractristiques des ples et zros :
1 2 cos z 1 + 2 z 2
o est le module du ple ou zro, et o est son argument. Rsonateur du second degr On obtient facilement un rsonateur du second degr en choisissant une paire de ples et un zro (forcment rel) :
20
H ( z) = K
1 + a1 z 1 1 + b1 z 1 + b2 z 2
Largument des ples correspond la frquence de rsonance. Leur module permet de rgler le facteur de qualit de la rsonnance : on montre dans le cours de traitement du signal que la largeur de bande (en pulsation) 3dB de la rsonance est approximativement donne par (lorsque les ples sont suffisamment proches du cercle de rayon unit):
= 2(1 )
Enfin, on montre que, si lon veut que lamplitude du maximum de la rponse en frquence soit indpendante de la frquence de rsonance, il suffit de choisir :
a1 = cos
(c.--d. que le zro est la projection, sur laxe rel, du point dintersection entre le cercle de rayon unit et la droite joignant 0 un ple) Coupe-bande du second degr Il est tout aussi facile de synthtiser un coupe-bande du second degr, avec une paire de zros (et forcment une paire de ples).
1 + a1 z 1 + a2 z 2 H ( z) = K 1 + b1 z 1 + b2 z 2
On place les zros sur le cercle de rayon unit, avec un argument correspondant la pulsation de rsonance :
a1 = 2 cos et a2 = 1
Il est pratique de placer la paire de ples en prolongement direct de la paire de zros :
a1 = 2 cos et a2 = 2
o est le module des ples, qui peut tre rgl de faon grer la largeur de la bande (en pulsation) dans laquelle lattnuation est suprieure 3 dB :
= 2(1 )
21
(Outre les commandes de la sance prcdente) filter, ellipord et ellip, remezord et remez.
LABO 5 - 6 - 7
5.1 Introduction
Au cours de sances prcdentes, nous avons appris utiliser un certain nombre d'outils fondamentaux en traitement du signal : gnrateurs (et chantillonneurs), analyseurs, et filtres. Ces outils vont maintenant nous permettre de modliser et synthtiser des signaux audio-numriques. Plus prcisment, partir d'un seul exemplaire d'une seule note d'un instrument donn (diffrent pour chaque groupe), le but de notre projet sera de recrer une pice musicale complte utilisant cet instrument. L'tape de modlisation du son sera, dans ces conditions, indispensable : elle nous permettra en effet de modifier certaines caractristiques des sons synthtiss, comme leur dure ou leur frquence fondamentale, tout en conservant le timbre du son de dpart. Pour ce faire, nous aborderons successivement 3 mthodes de synthse (et les mthodes d'analyse associes) : la synthse additive, la synthse soustractive, et la synthse par formes d'ondes.
24
= Son timbre, caractris principalement par l'volution temporelle de son enveloppe spectrale. L'enveloppe spectrale du son est cre par l'instrument, qui possde souvent un ensemble de frquences de rsonances (et donc une fonction de transfert), et par la source d'excitation (l'anche du saxophone, par exemple), qui possde lui aussi une enveloppe spectrale. Au cours de l'volution (ADSR) d'un son, l'enveloppe spectrale de ce signal d'excitation peut changer, et crer ainsi une variation de l'enveloppe spectrale du son produit. Typiquement, il s'agira d'une attnuation des frquences aigus lors de la phase de relchement.
~ x (t ) =
i
~ x (n) =
i
i j =1
[i 2 FO ( j )]Te
(1)
o i est l'indice des harmoniques, et o ai(t) et i F0 (t) sont respectivement leurs amplitudes et leurs frquences instantanes. Ce modle peut tre tendu aux sons plus complexes : cest le modle hybride harmonique/stochastique, qui ajoute fondamentalement une composante apriodique lquation prcdente:
~ x (t ) = ~ x p (t ) + ~ x r (t ) =
i
ai (t ) cos( i (t )) + ~ x r (t )
(2)
x p (t ) est compltement dfini par ai(t), F0 (t) et i (0), et o ~ x r (t ) est dfini o ~ ( ) . Tout comme les amplitudes et par sa densit spectrale de puissance S rr ( ) est suppos varier en fonction du temps. frquences des sinusodes, S rr
Estimation des paramtres Lestimation des paramtres de ces modles est dune complexit variable, en fonction de la complexit du signal modliser : = Si le signal est bien priodique, il suffit de mesurer, partir dune FFT, lamplitude des harmoniques. Leur phase est moins importante (en gnral, loreille ne sera pas sensible une dformation du spectre de phase, tant que cette dformation ne varie pas trop dans le temps). = Si le signal contient une composante de bruit, lestimation de lamplitude des harmoniques fournira, au mieux, un modle de la seule composante
25
harmonique. La composante de bruit devrait thoriquement tre estime par mesure de la densit spectrale de puissance de ce quil reste du signal aprs soustraction de ses harmoniques. En pratique, on peut parfois estimer que la composante bruite a une densit spectrale de mme allure que celle du signal complet (harmoniques+bruit). On applique alors un priodogramme (ou toute autre mthode de modlisation spectrale) au signal complet, et on suppose que le bruit compte pour une fraction de ce spectre ( dterminer lcoute). = Enfin, si le signal nest pas bien stationnaire, il convient de rpter la modlisation intervalles rguliers. Un peut par exemple tablir un modle harmonique pour lattaque, un pour le maintien, et un pour le relchement du son. Synthse La complexit de la synthse dun signal harmonique (ventuellement hybride harmonique/stochastique) dpend elle aussi du signal produire : = Pour un signal bien priodique, il suffira de produire une priode du signal ( laide de la formule (1)), et de rpter cette priode, en lui affectant ventuellement une enveloppe de type ADSR dont les coefficients seront adapts au signal. = Pour un signal possdant une composante bruite, on crera un signal harmonique comme dans le point ci-dessus, et on lui superposera une composante bruite (comme dans la formule (2)). Cette composante sera obtenue par filtrage dune bruit blanc avec le filtre ad-hoc. = Pour un signal dont le spectre volue au cours du temps, il faudra procder une interpolation temporelle des amplitudes des harmoniques. (Au pire, il faudra galement appliquer la composante bruite un filtrage dynamique.) Il est noter que, dans ce dernier cas, lutilisation de la formule (1) peut conduire un temps de calcul prohibitif, en raison du nombre destimations de fonctions trigonomtriques (cos). On peut viter ce problme en ralisant la synthse par un procd dit d additionrecouvrement de signaux court-terme (voir figure ci-dessous) : on commence par produire des signaux parfaitement harmoniques par IFFT. Ces signaux sont ensuite pondrs par une fentre de Hanning (qui part de 0, passe par 1 en son centre, et revient vers 0), et additionns les uns aux autres. Lvolution continue du spectre du signal ainsi obtenu provient du fait que, mme si chaque signal de base est parfaitement harmonique, les amplitudes des harmoniques changent dun signal au suivant. Il est clair que, pour que ce type de synthse fonctionne correctement, il est important que les signaux additionns soient en phase (c.--d. que les parties qui se recouvrent se correspondent).
26
Windowing
Synthetic speech
tk-1
tk (tk+1 - tk-1)/2
tk+1
k+2 t
Fig. 1. Synthse par addition-recouvrement Modification de la dure et/ou de la frquence fondamentale Un modle additif pur permet facilement dallonger ou de raccourcir des sons : il suffit en principe de produire plus ou moins de priodes. La modification de la frquence fondamentale est un problme plus complexe : si on veut viter de modifier le timbre, il faut modifier la frquence et lamplitude des harmoniques, de faon conserver lenveloppe spectrale. Les nouvelles valeurs des amplitudes peuvent tre obtenues en chantillonnant lenveloppe spectrale, elle-mme obtenue par interpolation des amplitudes des harmoniques de dpart.
27
absolument pas lenveloppe spectrale du signal (c.--d. les frquences de rsonance de linstrument): un son de piano queue dont on augmente la frquence par simple interpolation se transforme vite en un son de piano denfant. Pour pallier cet inconvnient, il est possible dutiliser une mthode de synthse radicalement diffrente (mais qui sinscrit toujours dans le cadre de la synthse par formes dondes) : laddition-recouvrement pitch-synchrone dans le domaine temporel (TD-PSOLA : Time Domain Pitch-Synchronous OverLap Add). Si s(n) est un signal purement priodique, il est en effet possible d'en obtenir un signal ~ s ( n) de mme enveloppe spectrale que s(n) mais de frquence fondamentale diffrente en additionnant des fentres d'OLA si(n), extraites par multiplication de s(n) par une fentre de pondration w(n) synchronise sur le pitch T0 de s(n). La modification de frquence fondamentale se fait en changeant l'cartement temporel entre fentres d'OLA successives (de sa valeur T0 de dpart une valeur T quelconque), et en radditionnant les unes aux autres les fentres d'OLA ainsi cartes (Fig. 2):
i =
si (n i (T T0 ))
Cette opration rsulte en effet, d'aprs le thorme de la Somme de Poisson1 en une rharmonisation du spectre de si(n) (qui, si nous supposons le signal de dpart purement priodique, est indpendant de i) avec une nouvelle frquence fondamentale 1/T:
2 si s i (n) S i ( ) alors ~ s ( n) T
i =
Si i
2 2 ( i ) T T
Il s'ensuit que si la fentre de pondration w(n) est choisie de faon ce que le spectre de si(n) approxime l'enveloppe spectrale de s(n), TD-PSOLA fournit un moyen trs simple de modifier la frquence fondamentale d'un signal priodique.
Suivant la formule de Poisson, la somme d'une infinit de versions dcales d'un mme
signal f(t) conduit un signal priodique dont les raies spectrales viennent se positionner exactement sur le spectre du signal de dpart: si
f (t ) F ( ) ,
alors
+ n =
f (t nT0 )
2 T0
F (n
n =
2 2 ) ( n ) (o T0 T0
Dirac)
28
T 0
Fig. 2 Le processus de r-harmonisation spectrale de TD-PSOLA. A gauche, les signaux, droite les spectres correspondants. Le signal modifi (en bas) a bien la mme enveloppe spectrale que le signal de dpart (en haut); mais pas la mme frquence fondamentale. On choisit en pratique souvent une fentre de Hanning ou une fentre triangulaire, avec une longueur gale deux fois la priode de pitch du signal. Une fentre plus large fait apparatre des harmoniques dans le spectre de si(n); une fentre plus courte n'approxime que trs grossirement l'enveloppe spectrale de s(n).
29
Outils : fonction adsr et pwlin fournies, sous Matlab. Ces fonctions permettent de produire facilement une courbe de type ADSR, et plus gnralement dinterpoler une fonction linaire par morceaux. Crer une fonction out = additive(freq, ampl, dur), qui fournisse en sortie un signal compos dune somme de cosinusoides dont les frquences sont harmoniques de la valeur donne dans freq et dont les amplitudes sont donnes par le vecteur ampl. La dure du son produit doit tre de dur secondes. Synthse priodique pure Sur base du spectre dune fentre du signal, choisie dans sa partie la plus stable, estimer les amplitudes des harmoniques. Gnrer ensuite par synthse harmonique pure une priode du signal ( la frquence du signal de dpart : pas de changement de frquence). Boucler cette priode et lui appliquer un ADSR raliste. Vrification (ceci sera valable pour toutes les tapes suivantes): afficher les signaux, les couter, et comparer leurs spectres. Synthse harmonique avec variation du timbre Effectuer plusieurs mesures du spectre, de faon ce quune interpolation entre les spectres mesurs permette de reproduire plus fidlement la variation dynamique du timbre. Raliser une synthse dynamique, par somme de cosinus. Synthse harmonique avec transitoire dattaque Essayer de mieux modliser le transitoire dattaque (soit par un bruit color, luimme soumis un ADSR rapide), soit en mmorisant le transitoire et en lajoutant purement et simplement au signal hamronique. Synthse harmonique avec modification de dure Produire, le mieux possible, un son de mme frquence que le prcdent, mais de dure variable (dans un rapport de 0.25 4) Synthse harmonique avec modification de frquence fondamentale Produire, le mieux possible, un son de dure fixe, mais de frquence variable (dans un rapport de 0.25 4)
30
Mettre en uvre cette mthode (ce qui ncessitera de simuler des gnrateurs, des filtres, des modulateurs ventuels, et des adsr). Synthse soustractive avec modification de dure et/ou de frquence fondamentale Modifier les paramtres du synthtiseur de faon modifier la dure et/ou de frquence fondamentale du signal sans en modifier le timbre.