30
TRAVAUX PRATIQUES DE TRAITEMENT DU SIGNAL 4ème Electricité Première édition Copyright © 2000 Faculté Polytechnique de Mons – T. Dutoit Faculté Polytechnique Faculté Polytechnique Faculté Polytechnique Faculté Polytechnique de Mons de Mons de Mons de Mons Thierry Dutoit Faculté Polytechnique de Mons TCTS Lab Ave. Copernic Ph: +32 65 374774 Parc Initialis Fax: +32 65 374729 B-7000 Mons [email protected] Belgium http://tcts.fpms.ac.be/~dutoit

Laboratoires de Traitement du Signal

Embed Size (px)

Citation preview

Page 1: Laboratoires de Traitement du Signal

TRAVAUX PRATIQUES DE TRAITEMENT DU SIGNAL

4ème Electricité

Première édition

Copyright © 2000 Faculté Polytechnique de Mons – T. Dutoit

Faculté PolytechniqueFaculté PolytechniqueFaculté PolytechniqueFaculté Polytechnique de Monsde Monsde Monsde Mons

Thierry Dutoit Faculté Polytechnique de Mons TCTS Lab Ave. Copernic Ph: +32 65 374774 Parc Initialis Fax: +32 65 374729 B-7000 Mons [email protected] Belgium http://tcts.fpms.ac.be/~dutoit

Page 2: Laboratoires de Traitement du Signal

2 LABORATOIRES DE TRAITEMENT DU SIGNAL

AVANT-PROPOS

Organisation des séances de travaux pratiques Ce manuel rassemble une série d’exercices pratiques ayant pour but de permettre à l’étudiant de mieux comprendre les implications pratiques de son cours de traitement du signal. L’accent y est mis sur l’utilisation pratique du logiciel MATLAB pour la conception de systèmes de traitement de signal. Matlab est en effet un logiciel largement répandu aujourd’hui, autant dans les universités que dans les centres de recherche et développement, ainsi que dans l’industrie.

L’ouvrage est divisé en 4 laboratoires et 1 projet. Le projet a pour objet la mise au point d’un synthétiseur musical sous MATLAB, basé sur les techniques de synthèse utilisées dans les synthétiseurs commerciaux : synthèse par interpolation de formes d’ondes – synthèse additive – synthèse soustractive. Le but de ce projet est de stimuler l’intérêt de l’étudiant pour le traitement du signal, à travers une démarche de synthèse plutôt que par le biais de travaux d’analyse. Il ne s’agit donc pas ici d’illustrer le cours, mais bien de le mettre en pratique.

Dans cette perspective, les laboratoires préparent l’étudiant à réaliser le projet, en le dotant d’un ensemble d’outils : générateurs, analyseurs, et filtres. On y aborde donc les problèmes suivants :

1. Génération de signaux numériques – Echantillonnage de signaux analogiques

2. Analyse spectrale des signaux déterministes et aléatoires

3. Traitement numérique dans le domaine temporel – Systèmes LTI

4. Filtrage numérique : approximation et synthèse

Appréciation du travail de l’étudiant L’étudiant sera coté en fonction de son niveau de participation aux séances de laboratoires, ainsi que de la qualité (fond et forme) du rapport de projet. Ce rapport devra expliciter le plus clairement possible :

• = la technique de synthèse utilisée : principe, structure modulaire du synthétiseur, prévision des problèmes à résoudre pour la mise en oeuvre

Page 3: Laboratoires de Traitement du Signal

LABORATOIRES DE TRAITEMENT DU SIGNAL 3

• = le détail des modules implémentés dans MATLAB sous la forme de fonctions

• = une analyse des résultats fournis : comparaison (auditive, temporelle, et spectrale) entre les formes d’ondes produites et les formes d’ondes originales

• = une analyse des performances et des limitations du synthétiseur en termes de possibilités de modifications des caractéristiques des sons

Le projet sera coté sur ? pour un total annuel de ? points en Traitement du Signal.

Informations sur le Web Le présent manuel, ainsi qu’un certain nombre d’informations utiles au déroulement du projet, sont disponibles sur le site web du cours :

http://tcts.fpms.ac.be/cours/1005-03/

Les étudiants sont par ailleurs invités à me communiquer d’éventuelles autres sources d’informations utiles, en envoyant un email à :

[email protected]

Le site Web sera également utilisé pour afficher les résultats sonores obtenus, ainsi que la liste finale des cotations.

Page 4: Laboratoires de Traitement du Signal
Page 5: Laboratoires de Traitement du Signal

LABO 1 GENERATION DE SIGNAUX

NUMERIQUES - ECHANTILLONNAGE

1.1 Introduction Les systèmes de traitement du signal numérique manipulent des signaux, qui sont soumis à divers types de traitements par échantillons (typiquement, du filtrage numérique ou de la modulation) ou par bloc (typiquement, des analyses spectrales ou des modélisations).

Ces signaux sont soit produits par des sources analogiques et numérisés à l’aide de convertiseurs analogiques-numériques, soit générés directement sous forme numérique.

Dans la cadre de cette scéance de travaux pratiques, nous allons envisager la mise au point de générateurs de signaux numériques, et examiner par la pratique l’influence de la fréquence d’échantillonnage.

1.2 Rappel Théorique 1.2.1 Echantillonnage – Théorème de Shannon Lorsqu’on échantillonne un signal x(t) possédant un spectre X(ï), à la fréquence d’échantillonnage Fe, on obtient le signal numérique x+(t) donné par :

( ) ( ) ( )ee Tx t x t T t+ = ∂

où ( )eT t∂ est un train d’impulsions de Dirac espacées de Te.

Les échantillons correspondants sont données par :

( ) ( )ex n x nT+=

Le spectre X+(ï) de x+(t) est donné par :

( ) ( )en

X X nω ω ω∞

+

=−∞

= −

Ceci correspond à une duplication de X(ï) à l’infini, et à une sommation (complexe) des spectres ainsi dupliqués.

On en déduit immédiatement le théorème de Shannon (dans sa version la plus simple) : « Pour échantillonner correctement une fonction x(t), il faut que son

Page 6: Laboratoires de Traitement du Signal

6 LABORATOIRES DE TRAITEMENT DU SIGNAL

spectre X(ï) soit borné et que la pulsation d’échantillonnage ïe soit supérieure ou égale à deux fois la pulsation maximale ïM »

1.2.2 Spectre d’un signal échantillonné – Transformée en z Le spectre X+(ï) est donné par :

( )

( ) ( )

( )

( )

( )

e

j

j t

j nT

jn

n

z e

X x t e dt

x n e

x n e

x n zφ

ω

ω

φ

ω∞

+ + −

−∞∞

−∞∞

−∞

∞−

−∞ =

=

=

=

=

On constate donc que ce spectre est donné par la transformée en z de x(n), calculée sur le cercle de rayon unité.

1.2.3 Signaux aléatoires Un signal aléatoire (ou bruit) n’est pas vraiment défini par ses échantillons, mais bien plutôt par :

• = sa densité de probabilité (ou, ce qui revient au même, sa fonction de distribution, qui en est l’intégrale)

• = sa fonction d’autocorrélation (ou, ce qui revient au même, sa densité spectrale de puissance, qui en est la transformée de Fourier)

Un bruit « blanc » possède une densité spectrale de puissance constante (et donc une fonction d’autocorrélation impulsionnelle).

Les échantillons d’un bruit uniforme sont distribuée uniformément sur un intervalle défini. Ceux d’un bruit gaussien possèdent une distribution gaussienne de moyenne et variance définie.

La variance d’un bruit uniforme entre –q/2 et q/2 est donnée par q²/12.

NB : ces notions seront revues plus en détail dans une prochaine séance de laboratoire.

1.3 Commandes Matlab utilisées Nous allons produire des signaux élémentaires. Les fonctions ones, zeros, sin, rand, randn, stem1 et hist nous serviront de base. La fonction freqz nous permettra de voir les spectres des signaux numériques générés. Freqz sera utilisé selon la synthaxe suivante :

freqz(x,1,'whole')

1 On préférera en général stem à plot pour visualiser un signal composé d'un petit nombre

d'échantillons.

Page 7: Laboratoires de Traitement du Signal

LABORATOIRES DE TRAITEMENT DU SIGNAL 7

Utilisée de cette façon, cette fonction calcule le spectre de x sur 512 points et en affiche le module et la phase.

1.4 Génération de signaux numériques 1.4.1 Impulsion numérique Créer une impulsion numérique sur 100 échantillons (un "1" suivi de 99 "0"), afficher le signal et voir son spectre.

NB : ce signal étant purement numérique (il ne provient pas de l'échantillonnage d'un signal analogique), il est inutile de spécifier la "fréquence d'échantillonnage".

1.4.2 Signal aléatoire uniforme – signal aléatoire gaussien Créer 1000 points d'un signal aléatoire uniforme de moyenne nulle et de variance égale à 1, afficher le signal, afficher son histogramme, et voir son spectre.

Même chose pour un signal aléatoire gaussien de moyenne nulle et de variance égale à 1.

NB : Il est important de noter qu’on ne visualise pas à proprement parler les « spectres » de ces signaux aléatoires, ni même leur densité spectrale de puissance : le calcul s’effectue sur un nombre fini d’échantillons, ce qui tronque la somme de la formule du point 1.2.2, et ne donne donc le spectre du signal que de façon tres approximative.

1.4.3 Signal sinusoidal Simuler l’échantillonnage à 10 kHz d’une sinusoïde de fréquence f de 600 Hz. Calculer 200 échantillons, visualiser le signal échantillonné, et son spectre.

Obtient-on ce à quoi on doit s’attendre (en amplitude et en fréquence)?

Répéter l’opération pour f = 1000, 4400, 5000, 5600, 9400, 10600 Hz. Ceci doit illustrer clairement le théorème de Shannon.

NB : Il est important de noter qu’ici aussi on ne visualise pas à proprement parler les spectres de ces signaux, pour les mêmes raisons que plus haut. Nous examinerons ce problème plus en détail lors d’une prochaine séance.

1.4.4 Signal de type « sinc » (sinus cardinal)

Soit le signal ( ) ( )t

ttx c

πωsin= , dont la transformée de Fourier est ( )ωX . Dans le cas

où ω πc cf= 2 , avec f Hzc =1000 , on demande de :

a) Calculer la valeur théorique de ( )ωX ;

b) Dessiner ( )ω+X , lorsque le signal est échantillonné aux fréquences suivantes :

• = F Hze = 4000

• = F Hze = 2000

• = F Hze =1500

Ces différents spectres font clairement apparaître le problème du recouvrement spectral.

Page 8: Laboratoires de Traitement du Signal

8 LABORATOIRES DE TRAITEMENT DU SIGNAL

c) Pour chacune de ces fréquences d’échantillonnage, visualiser sous Matlab le signal résultant de l’échantillonnage 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 (même problème que plus haut : si N est trop petit, le somme du point 1.2.2 est tronquée.

Page 9: Laboratoires de Traitement du Signal

LABO 2 ANALYSE SPECTRALE DES

SIGNAUX DETERMINISTES ET ALEATOIRES

2.1 Introduction Il a été revu lors de la séance précédente que le choix de la période d'échantillonnage Te joue sur le phénomène de repliement spectral. Plus Te est petit, plus faible est le repliement. Le théorème de Shannon impose dès lors un filtre de garde, qui permet d’éviter cet effet perturbateur.

Cependant, dans la plupart des spectres examinés dans la séance précédente, on constatait une différence parfois importante avec les spectres théoriques.

Le but de cette séance de laboratoire est de mieux comprendre la raison de ces différences, et d’en maîtriser l’effet.

2.2 Rappel Théorique 2.2.1 Analyse spectrale à court terme La plupart des signaux réels ne sont pas complètement stationnaires. Leur contenu spectral évolue au cours du temps. On cherche en général à caractériser ce contenu spectral a un instant donné, ce qui implique qu’on n’analyse pas l’ensemble des échantillons du signal, mais bien seulement un nombre L de ces échantillons, qu’on appelle tranche de signal.

L’effet de ce découpage en tranches est simple : prendre L échantillons est équivalent à multiplier le signal par une fenêtre de pondération rectangulaire (un signal de L échantillons valant « 1 » entourés par une infinité de « 0 »). Par conséquent, le spectre de la tranche sera le résultat de la convolution du spectre du signal par celui de la fenêtre de pondération.

La spectre de la fenêtre rectangulaire est facile a obtenir :

Page 10: Laboratoires de Traitement du Signal

10 LABORATOIRES DE TRAITEMENT DU SIGNAL

2 ( 1)

2

12

( ) ( )

1 ...11

sin( )21sin( )2

e

e e e

e

e

e

e

j nT

j T j T j L T

j LT

j T

Lj Te

j Te

W w n e

e e eee

L TeTe

ω

ω ω ω

ω

ω

ω

ω

ω

ω

ω

∞−

−∞− − − −

=

= + + + +

−=−

=

Il s’agit donc d’une « fonction pieuvre » de période Fe (Hz).

On constate bien entendu que plus L est grand, plus le spectre de la fenêtre de pondération 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 expérimentalement (voir labo) que la différence d’amplitude entre le lobe principal et les lobes secondaires est de l’ordre de 13 dB.

Ces deux caractéristiques impliquent que l’utilisation d’une fenêtre rectangulaire ne permettra en général pas de distinguer deux sinusoïdes dont les fréquences seraient espacées de moins de Fe/L (Hz) ou dont les amplitudes seraient dans un rapport de plus de 13 dB.

Il est donc souvent utile d’utiliser d’autres fenêtres de pondération, dont l’allure est calculée pour offrir de meilleures possibilités de séparation spectrale en amplitude ou en fréquence : fenêtre de Hamming, fenêtre de Blackman. Ces deux fenêtres ont des spectres d’allure semblable au précédent (fonctions « pieuvre »), mais leur résolution spectrale va décroissant, alors que leur résolution en amplitude va croissant (voir labo).

2.2.2 Analyse spectrale discrétisée en fréquence Lors de la séance précédente, nous avons utilisé la fonction freqz(x,1,'whole') pour calculer et afficher la transformée de Fourier de la suite d’échantillons x.

Cette fonction réalise en réalité la FFT de x sur 1024 points par défaut et en affiche le module en dB1. La fonction renvoie alors 512 points en fréquence entre 0 et Fe/2. Comme le calcul se fait sur 1024 points en fréquence, elle attend en entrée 1024 échantillons. Lorsque le nombre L de points de x est inférieur à 1024, x est complété par des « 0 ». On peut imposer à la fonction de travailler sur un nombre de points N différent de 1024, avec freqz(x,1,N,'whole').

Dans tous les cas, il est clair que le spectre affiché n’est qu’une version échantillonnée du spectre de x : les points affichés sont distants de Fe/N (Hz).

Cet effet est d’autant moins marqué que N est grand. Dans des applications pratiques, on ne peut cependant augmenter N comme on le voudrait : le temps de calcul augmente également (en log2(N)).

1 Ou la DFT si le nombre de points (du spectre) à calculer n’est un exposant de 2.

Page 11: Laboratoires de Traitement du Signal

LABORATOIRES DE TRAITEMENT DU SIGNAL 11

2.3 Commandes Matlab utilisées (Outre les commandes de la séance précédente) hamming, blackman, psd (power spectral density, pour l’estimation spectrale avec périodogramme) .

2.4 Analyse spectrale 2.4.1 Analyse spectrale de sinusoïdes Pour chacun des signaux suivants, prédéterminer ce qui sera affiché par freqz, puis vérifier sous Matlab:

• = 32 points d’un sinusoïde de fréquence 2650 Hz échantillonnée à 10 kHz (c’est le cas général : la fréquence de la sinusoïde est quelconque par rapport à la fréquence d’échantillonnage); on choisira de réaliser le calcul sur 32 points également : N=L.

• = Même chose avec N=256

• = 32 points d’un sinusoïde de fréquence 2500 Hz échantillonnée à 10 kHz; (c’est la cas particulier d’un sinusoïde de fréquence égale à un multiple de Fe/N); on choisira de réaliser le calcul sur 32 points également : N=L.

• = Même signal que ci-dessus, mais forcer N à 256 points (L restant inchangé : on sort du cas précédent);

2.4.2 Analyse spectrale de plusieurs sinusoïdes Soit un signal composé d’une somme pondérée de sinusoïdes :

( ) ( )sin 2i ii

x t a f tπ= .

Prédéterminer, et vérifier ensuite, les valeurs de Fe et N à utiliser pour pouvoir observer avec précision, tout en maintenant minimale la charge de calcul, les trois fréquences suivantes :

1 1

2 2

3 3

158 , 1312 , 1401 , 1

f Hz af Hz af Hz a

= == =�

= =�

2.4.3 Utilisation de fenêtres de pondération a) Sous Matlab, on veut examiner les propriétés spectrales des fenêtres

suivantes :

• = fenêtre rectangulaire (fournie par la fonction boxcar)

• = fenêtre de Hamming (fournie par la fonction hamming)

• = fenêtre de Blackman (fournie par la fonction blackman)

On demande d’afficher les spectres des 4 fenêtres, et de mesurer, dans chaque cas

1. la différence D entre l'amplitude du lobe principal et celles des lobes secondaires, en dB

2. la demi-largeur LP du lobe principal, en Hz.

Page 12: Laboratoires de Traitement du Signal

12 LABORATOIRES DE TRAITEMENT DU SIGNAL

On supposera pour les calculs que Fe=22, L=50, N=512.

Les mesures doivent vérifier les valeurs suivantes:

Rectangulaire Hamming Blackman

D 13 dB 40 dB 60 dB

LP Fe/L 2 Fe/L 2.75 Fe/L

b) En déduire, et vérifier ensuite sous Matlab, la fenêtre à utiliser pour pouvoir distinguer au mieux les fréquences d’un signal ( ) ( )sin 2i i

if t a f tπ= dans les cas

suivants :

• =f Hz af Hz a

1 1

2 2

1100 11200 1

= == =

,,

Fe = 8 kHz, L = N = 256

• =f Hz af Hz a

1 1

2 2

510 5001020 1

= == =

,,

Fe = 8 kHz, L = N = 256

2.4.4 Analyse spectrale d’ un signal aléatoire a) Générer, en utilisant la fonction randn de Matlab, un bruit blanc Gaussien de N=8192 points. Estimer et dessiner ensuite la puissance spectrale de ce signal (en dB), à l’aide des estimateurs simple et moyenné successivement. Vous pouvez utiliser à cette fin la fonction psd de Matlab, dont la procédure d’appel est la suivante :

psd(X,NFFT,Fs,Window) ; Où :

• = X représente le signal dont on souhaite estimer la puissance spectrale ;

• = NFFT est longueur des tranches en lesquelles est décomposé X, la moyenne des estimations spectrales pour chacune de ces tranches étant ensuite calculée (dans le cas où l’on a NFFT=length(X), cela revient donc à une estimateur spectral simple) ;

• = Fs vaut la fréquence d’échantillonnage, utilisée à des fins de graduation d’échelle ;

• = Window est le type et la longueur de la fenêtre appliquée à chacune des tranches de signal, l’utilisation de boxcar(NFFT) revenant à n’appliquer aucune fenêtre;

b) De l’expérience acquise lors des points précédents, en déduire la fenêtre ainsi que le nombre de tranches à utiliser pour pouvoir estimer au mieux la puissance spectrale d’un signal ( ) ( )sin 2i i

if t a f tπ= auquel un bruit blanc Gaussien de

variance 5 est superposé :

2 En pratique, Fe a la valeur qu'on lui donne. Le résultat en est indépendant.

Page 13: Laboratoires de Traitement du Signal

LABORATOIRES DE TRAITEMENT DU SIGNAL 13

• = 1 1

2 2

860 , 11015 , 5

f Hz af Hz a

= == =

Fe = 8 kHz, N = 1024

Page 14: Laboratoires de Traitement du Signal

14 LABORATOIRES DE TRAITEMENT DU SIGNAL

LABO 3 TRAITEMENT NUMERIQUE DANS

LE DOMAINE TEMPOREL -SYSTEMES LTI

3.1 Introduction Un des points essentiels abordés l’an passé en théorie des circuits était l’étude de l’effet d’éléments simples (R, L, C) sur un signal électrique analogique. De la même façon, un des points essentiels en traitement du signal est l’étude de l’effet d’opérateurs numériques simples (+, *, z-1) sur un signal numérique. Ces opérations constituent ce que l’on appelle une récurrence linéaire. Leur effet peut être étudié dans le domaine temporel comme dans le domaine spectral. Le lien entre ces deux vues du même effet est réalisé par la transformée en Z.

Au cours de cette séance de travaux pratique, nous étudierons des récurences simples, et vérifierons leurs effets dans le domaine temporel et spectral.

3.2 Rappel Théorique 3.2.1 Récurrence linéaire sur l’entrée (filtre FIR) Une des applications les plus importantes de la théorie des circuits est celle du filtrage, qui s’exprimait dans le domaine temporel par une convolution entre un signal d’entrée et la réponse impulsionnelle du filtre :

( ) ( ) ( )y t x h t dτ τ τ∞

−∞

= −

Il est donc logique, par analogie, d’étudier l’effet d’une convolution numérique sur une signal numérique :

( ) ( ) ( )i

y n h i x n i∞

=−∞

= −

Cette opération extrêmement simple constitue une récurrence linéaire. Elle est constituée de sommes, de multiplications, et de délais appliqués au signal d’entrée. Elle constitue ce que l’on appelle un filtre FIR.

Page 15: Laboratoires de Traitement du Signal

LABORATOIRES DE TRAITEMENT DU SIGNAL 15

Nous verrons plus bas qu’on peut interpréter cette récurrence de deux façons (somme pondérée d’échantillons – somme de réponses impulsionnelles retardées)

3.2.2 Récurrence linéaire sur l’entrée et sur la sortie (filtre IIR) On peut facilement étendre la notion de récurrence linéaire en faisant intervenir également les échantillons de sortie déjà calculés :

1( ) ( ) ( ) ( ) ( )

i iy n b i x n i a i y n i

∞ ∞

=−∞ =

= − + −

Ce type de récurrence linéaire caractérise ce que l’on appelle un filtre IIR.

Il est clair qu’on peut toujours écrire également :

( ) ( ) ( )i

y n h i x n i∞

=−∞

= −

où h(n) est la réponse impulsionnelle du filtre FIR. Cette expression est cependant peu pratique, puisque la durée de h(n) est théoriquement infinie.

3.2.3 Fonction de transfert H(z) On montre dans le cours que lorsqu’on associe à x(n), y(n), et h(n) leurs transformés en Z respectives, on a :

( ) ( ) ( )Y z X z H z=

où H(z) est donné par :

( ) ( ) i

iH z h i z

∞−

=−∞

=

Dans le cas particulier d’un filtre IIR, on peut également écrire :

( )( )( )( ) ( )

i

i

i

i

b i zB zH zA z b i z

∞−

=−∞∞

=−∞

= = (ATTENTION : a(i) au dén, pas b(i))

Ce polynôme H(z) est essentiel. La réponse en fréquence du système linéaire est en effet donnée par :

( )( ) ( ) jz e

H H z φφ=

= (où Ñ est la pulsation normalisée)

On en déduit l’importance des zéros et des pôles de H(z) : le calcul de la réponse en fréquence d’un système numérique (en dB) peut être interprété comme une somme de contributions élémentaires mesurables dans le plan complexe en se déplaçant sur le cercle de rayon unité et en mesurant les modules et phases de vecteurs (z-zi) et (z-pi) !

3.2.4 Cas particulier : système autorégressif Il a été vu au cours qu'un signal autorégressif x(n) est un signal produit par passage d'un bruit blanc u(n) de moyenne nulle et de variance unité à travers un système autorégressif (AR), c.-à-d. un système de type "tout pôles" de fonction de transfert :

Page 16: Laboratoires de Traitement du Signal

16 LABORATOIRES DE TRAITEMENT DU SIGNAL

=

−== p

i

ii zazA

zH

0

)()( σσ

On a alors :

)()()(

zAzUzX σ=

On en déduit que :

)()()()( ϕϕ

ϕϕ σσ

jj

jj

eAeAeUeX ==

Il s’agit donc d’un type particulier de filtre IIR.

3.3 Commandes Matlab utilisées (Outre les commandes de la séance précédente). filter, roots, zplane, freqz.

3.4 Traitement dans le domaine temporel 3.4.1 Récurrence linéaires simple : différence du premier ordre On considère la récurrence suivante :

( ) ( ) ( 1)y n x n x n= − − (différence du premier ordre)

On demande de déterminer (sur papier), puis de visualiser (sous Matlab) :

• = La réponse impulsionnelle du système

• = Sa transformée en Z

• = Ses pôles et zéros

• = L’allure de sa réponse en fréquence ; vérifier que cette allure correspond bien à la position des pôles et zéros

Quelle serait la sortie d'un tel filtre si l'entrée était constante (voir l'équation de récurrence)? Ceci correspond-il avec ce que l'on voit sur la réponse en fréquence?

On demande ensuite de réaliser sous Matlab le filtrage (par ce système) de 500 échantillons d’un signal sinusoïdal à 1000 Hz échantillonné à 10 kHz (utiliser la fonction filter, qui implémente une récurrence généralisée)3. Afficher les signaux d’entrée et de sortie, ainsi que leurs spectres. Vérifier sur ces données que les relations entrée-sortie sont bien caractérisées par la réponse en fréquence du filtre.

3.4.2 Récurrence linéaires simple : moyenne à 5 termes Même chose pour la récurrence :

3 On pourrait évidemment utiliser cette même fonction pour calculer la réponse impulsionnelle du

système. Dans le cas simple d'un FIR, c'est inutile : la réponse impulsionnelle est tout simplement

la suite des coefficients du filtre.

Page 17: Laboratoires de Traitement du Signal

LABORATOIRES DE TRAITEMENT DU SIGNAL 17

4

0

1( ) ( )5 i

y n x n i=

= − (moyenne à 5 termes)

Noter que la réponse en fréquence obtenue correspond bien à l’idée qu’on pouvait se faire de l’utilité de cette récurrence : un moyennage local, qui doit correspondre à un passe-bas.

On demande également d’interpréter cette récurrence de deux façons : comme une somme pondérée d’échantillons d’entrée et comme une somme pondérée de réponses impulsionnelles.

3.4.3 Filtre en peigne Un filtre en peigne est caractérisé par la fonction de transfert :

( ) 1 NH z z−= −

Pour une valeur de N=10, répéter la démarche de la question précédente.

Expliquer, à partir d’un raisonnement dans le domaine temporel, l’effet sur la sinusoïde à 1000 Hz.

3.4.4 Mise en cascade Considérer le système linéaire constitué de la mise en cascade des systèmes étudiés en 3.4.1 et 3.4.3.

Répéter la démarche des exercices précédents.

NB : On remarquera au passage que le calcul de la fonction de transfert en z du filtre total est donnée par le produit des fonctions de transfert en z des filtres élémentaires, c.-à-d. par un produit de polynômes. On utilisera donc la fonction conv sous Matlab. On comprend maintenant pourquoi cette fonction de convolution réalise bien le produit de polynômes : elle réalise en réalité la convolution des coefficients de ces polynômes, c.-à-d. ici la convolution des réponses impulsionnelles des filtres élémentaires, ce qui est logique.

3.4.5 Signal autorégressif Nous allons pour terminer créer un bruit coloré, en filtrant un bruit blanc à travers un système autorégressif simple.

a) Créer arbitrairement un système autorégressif d'ordre 4. Ceci nécessite de :

• = Choisir arbitrairement une valeur de σ et des coefficients a(i)

• = S'assurer que le système correspondant est stable (en visualisant ses pôles dans le plan complexe, et la réponse impulsionnelle)

• = Visualiser sa réponse en fréquence )( ϕ

σjeA

b) Créer un signal autorégressif de 8192 points à partir du filtre généré, visualiser sa densité spectrale de puissance, et comparer à la réponse en fréquence obtenue au point a)

Page 18: Laboratoires de Traitement du Signal
Page 19: Laboratoires de Traitement du Signal

LABO 4 APPROXIMATION ET SYNTHESE

DE FILTRES NUMERIQUES

4.1 Introduction Le filtrage numérique est une des applications majeures du traitement du signal.

La précédente séance de laboratoire a été consacrée à l’étude de récurrences simples, et à la relation entre récurrences, transformées en Z, pôles et zéros correspondants, et réponses en fréquence. Ces récurrences caractérisaient des filtres numériques, dont nous avons donc analysé les caractéristiques générales.

Nous allons ici aborder le problème de l’approximation et de la synthèse des filtres numériques. Comme c’était déjà le cas en Théorie des Circuits, nous commencerons par examiner les possibilités de simples cellules du second degré. Nous poursuivrons ensuite par la synthèse de filtres d’ordre plus élevé.

4.2 Rappel Théorique 4.2.1 Filtres numériques du second degré La synthèse des filtres du second degré est rendue paossible par la relation simple qui existe entre leurs pôles et zéros et leur réponse en fréquence.

La forme générale d’un filtre du second degré est :

1 21 2

1 21 2

1( )1

a z a zH z Kb z b z

− −

− −

+ +=+ +

Comme en théorie des circuits, il est pratique de mettre le numérateur ou le dénominateur de cette expression sous une forme qui fasse mieux apparaître les caractéristiques des pôles et zéros :

1 2 21 2 cos z zρ θ ρ− −− +

où ê est le module du pôle ou zéro, et où è est son argument.

Résonateur du second degré

On obtient facilement un résonateur du second degré en choisissant une paire de pôles et un zéro (forcément réel) :

Page 20: Laboratoires de Traitement du Signal

20 LABORATOIRES DE TRAITEMENT DU SIGNAL

11

1 21 2

1( )1

a zH z Kb z b z

− −

+=+ +

L’argument des pôles correspond à la fréquence de résonance. Leur module permet de régler le facteur de qualité de la résonnance : on montre dans le cours de traitement du signal que la largeur de bande (en pulsation) à 3dB de la résonance est approximativement donnée par (lorsque les pôles sont suffisamment proches du cercle de rayon unité):

2(1 )ϕ ρ∆ = −

Enfin, on montre que, si l’on veut que l’amplitude du maximum de la réponse en fréquence soit indépendante de la fréquence de résonance, il suffit de choisir :

1 cosa θ= −

(c.-à-d. que le zéro est la projection, sur l’axe réel, du point d’intersection entre le cercle de rayon unité et la droite joignant 0 à un pôle)

Coupe-bande du second degré

Il est tout aussi facile de synthétiser un coupe-bande du second degré, avec une paire de zéros (et forcément une paire de pôles).

1 21 2

1 21 2

1( )1

a z a zH z Kb z b z

− −

− −

+ +=+ +

On place les zéros sur le cercle de rayon unité, avec un argument correspondant à la pulsation de résonance :

1 2cosa θ= − et 2 1a =

Il est pratique de placer la paire de pôles en prolongement direct de la paire de zéros :

1 2 cosa ρ θ= − et 22a ρ=

où ê est le module des pôles, qui peut être réglé de façon à gérer la largeur de la bande (en pulsation) dans laquelle l’atténuation est supérieure à 3 dB :

2(1 )ϕ ρ∆ = −

4.2.2 Filtres numériques de degré élevé L’approximation de filtres d’ordre plus élevé peut se faire de deux façons : selon qu’on cherche à créer un filtre récursif ou non récursif.

L’approximation de filtres récursifs s’effectue de façon similaire à ce qui se faisait en Théorie des Circuits : approximations analytiques Butterworth, Chebyshev, ou Cauer (elliptique).

L’approximation de filtres non-récursifs est réalisée à l’aide de méthodes numériques minimisant l’erreur entre les spécifications et la réponse en fréquence du filtre. La méthode la plus connue est celle de Parks-McClelland, implémentée dans Matlab sous le nom de Remez.

4.3 Commandes Matlab utilisées

Page 21: Laboratoires de Traitement du Signal

LABORATOIRES DE TRAITEMENT DU SIGNAL 21

(Outre les commandes de la séance précédente) filter, ellipord et ellip, remezord et remez.

4.4 Filtrage Numérique 4.4.1 Approximation de filtres du second degré Soit un signal utile composé d’une sinusoïde à 120 Hz ± 1 Hz, et dont l’amplitude est de l’ordre de 20 V. Ce signal se trouve superposé à deux signaux perturbateurs : la tension du réseau à 50 Hz ± 0,1 Hz d’amplitude 220 V, et un bruit blanc. Le tout est échantillonné à 400 Hz.

On désire créer un filtre numérique simple, composé de 2 cellules du second degré (un coupe-bande et un passe-bande), qui permette d’isoler le mieux possible le signal utile des signaux auxquels il se trouve mélangé. On demande par ailleurs que l’amplitude du signal utile ne se trouve pas modifiée de plus de 1%.

On demande de créer un script labo441.m qui permette de:

1. Calculer les fonctions de transferts de ces deux cellules.

2. Vérifier la réponse en fréquence de chaque cellule, la position de ses pôles et zéros, ainsi que la réponse en fréquence du filtre complet.

4.4.2 Approximation de filtres d’ordre élevé On désire réaliser l'approximation d'un filtre passe-bas numérique (à fréquence normalisée : Fe=1) dont les spécifications sont les suivantes :

Bande passante : 0 à 0.2 avec une tolérance de 0.1 dB (au total)

Bande atténuée : 0.25 à 0.5 avec une atténuation d'au moins 60 dB

1. On demande de créer un script labo442.m qui fournisse :

• = un filtre récursif (de Cauer)

• = un filtre non récursif à phase linéaire

répondant tous les deux à ces spécifications.

2. Pour chacun des filtres :

• = visualiser la réponse en fréquence et la réponse impulsionnelle

• = visualiser la position des pôles et zéros

• = vérifier (avec zoom et ginput) que les spécifications sont bien respectées.

3. Comparer les degrés de ces filtres, et estimer les charges de calcul correspondantes (en nombres d’opérations par échantillon).

Page 22: Laboratoires de Traitement du Signal
Page 23: Laboratoires de Traitement du Signal

LABO 5 - 6 - 7 PROJET

SYNTHESE DE MUSIQUE SOUS MATLAB

5.1 Introduction Au cours de séances précédentes, nous avons appris à utiliser un certain nombre d'outils fondamentaux en traitement du signal : générateurs (et échantillonneurs), analyseurs, et filtres.

Ces outils vont maintenant nous permettre de modéliser et synthétiser des signaux audio-numériques. Plus précisément, à partir d'un seul exemplaire d'une seule note d'un instrument donné (différent pour chaque groupe), le but de notre projet sera de recréer une pièce musicale complète utilisant cet instrument. L'étape de modélisation du son sera, dans ces conditions, indispensable : elle nous permettra en effet de modifier certaines caractéristiques des sons synthétisés, comme leur durée ou leur fréquence fondamentale, tout en conservant le timbre du son de départ.

Pour ce faire, nous aborderons successivement 3 méthodes de synthèse (et les méthodes d'analyse associées) : la synthèse additive, la synthèse soustractive, et la synthèse par formes d'ondes.

5.2 Rappels Théoriques 5.2.1 Caractéristiques acoustiques des sons On caractérise souvent un son musical par :

• = Sa fréquence fondamentale (la note jouée). Un LA4 (LA dans la quatrième octave d'un clavier de piano) a une fréquence de 440 Hz. Dans la musique occidentale, il y a 12 notes par octave, chacune étant distante des autres d'un demi-ton. Les notes sont disposées uniformément sur un axe logarithmique en fréquence : un demi-ton correspond à un rapport de fréquence de 2^(1/12) Hz.

• = Sa durée. Un son musical est souvent composé d'un transitoire d'attaque, pendant lequel le son s'établit dans l'instrument et se transforme en son de

Page 24: Laboratoires de Traitement du Signal

24 LABORATOIRES DE TRAITEMENT DU SIGNAL

régime, puis meurt dans un transitoire d'extinction. On parle souvent d'ADSR : attack-decay-sustain-release.

• = Son timbre, caractérisé principalement par l'évolution temporelle de son enveloppe spectrale. L'enveloppe spectrale du son est créée par l'instrument, qui possède souvent un ensemble de fréquences de résonances (et donc une fonction de transfert), et par la source d'excitation (l'anche du saxophone, par exemple), qui possède 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 créer ainsi une variation de l'enveloppe spectrale du son produit. Typiquement, il s'agira d'une atténuation des fréquences aiguës lors de la phase de relâchement.

5.2.2 Synthèse additive Le principe de la synthèse additive est de loin le plus simple à mettre en œuvre. Nous commencerons donc par envisager ce mode de synthèse.

Modélisation

Les modèles spectraux occupent une place de choix en traitement du signal. La modélisation harmonique interprète le spectre du signal en termes d'harmoniques d'un fréquence fondamentale 0F :

=i

ii ttatx ))(cos()()(~ φ , avec +=t

Oii dFit0

)(2)0()( ττπφφ

ou, dans le domaine discret:

=i

ii nnanx ))(cos()()(~ φ , avec [ ] e

i

jOii TjFin

=

+=1

)(2)0()( πφφ (1)

où i est l'indice des harmoniques, et où ai(t) et i 0F (t) sont respectivement leurs amplitudes et leurs fréquences instantanées.

Ce modèle peut être étendu aux sons plus complexes : c’est le modèle hybride harmonique/stochastique, qui ajoute fondamentalement une composante apériodique à l’équation précédente:

)(~))(cos()()(~)(~)(~ txttatxtxtx ri

iirp +=+= φ (2)

où )(~ tx p est complètement défini par ai(t), 0F (t) et iϕ (0), et où )(~ txr est défini par sa densité spectrale de puissance � ( )Srr ω . Tout comme les amplitudes et fréquences des sinusoïdes, � ( )Srr ω est supposé varier en fonction du temps.

Estimation des paramètres

L’estimation des paramètres de ces modèles est d’une complexité variable, en fonction de la complexité du signal à modéliser :

• = Si le signal est bien périodique, il suffit de mesurer, à partir d’une FFT, l’amplitude des harmoniques. Leur phase est moins importante (en général, l’oreille ne sera pas sensible à une déformation du spectre de phase, tant que cette déformation ne varie pas trop dans le temps).

• = Si le signal contient une composante de bruit, l’estimation de l’amplitude des harmoniques fournira, au mieux, un modèle de la seule composante

Page 25: Laboratoires de Traitement du Signal

LABORATOIRES DE TRAITEMENT DU SIGNAL 25

harmonique. La composante de bruit devrait théoriquement être estimée par mesure de la densité spectrale de puissance de ce qu’il reste du signal après soustraction de ses harmoniques. En pratique, on peut parfois estimer que la composante bruitée a une densité spectrale de même allure que celle du signal complet (harmoniques+bruit). On applique alors un périodogramme (ou toute autre méthode de modélisation spectrale) au signal complet, et on suppose que le bruit compte pour une fraction de ce spectre (à déterminer à l’écoute).

• = Enfin, si le signal n’est pas bien stationnaire, il convient de répéter la modélisation à intervalles réguliers. Un peut par exemple établir un modèle harmonique pour l’attaque, un pour le maintien, et un pour le relâchement du son.

Synthèse

La complexité de la synthèse d’un signal harmonique (éventuellement hybride harmonique/stochastique) dépend elle aussi du signal à produire :

• = Pour un signal bien périodique, il suffira de produire une période du signal (à l’aide de la formule (1)), et de répéter cette période, en lui affectant éventuellement une enveloppe de type ADSR dont les coefficients seront adaptés au signal.

• = Pour un signal possédant une composante bruitée, on créera un signal harmonique comme dans le point ci-dessus, et on lui superposera une composante bruitée (comme dans la formule (2)). Cette composante sera obtenue par filtrage d’une bruit blanc avec le filtre ad-hoc.

• = Pour un signal dont le spectre évolue au cours du temps, il faudra procéder à une interpolation temporelle des amplitudes des harmoniques. (Au pire, il faudra également appliquer à la composante bruitée un filtrage dynamique.)

Il est à noter que, dans ce dernier cas, l’utilisation de la formule (1) peut conduire à un temps de calcul prohibitif, en raison du nombre d’estimations de fonctions trigonométriques (cos). On peut éviter ce problème en réalisant la synthèse par un procédé dit d’ addition-recouvrement de signaux à court-terme (voir figure ci-dessous) : on commence par produire des signaux parfaitement harmoniques par IFFT. Ces signaux sont ensuite pondérés par une fenêtre de Hanning (qui part de 0, passe par 1 en son centre, et revient vers 0), et additionnés les uns aux autres. L’évolution continue du spectre du signal ainsi obtenu provient du fait que, même si chaque signal de base est parfaitement harmonique, les amplitudes des harmoniques changent d’un signal au suivant. Il est clair que, pour que ce type de synthèse fonctionne correctement, il est important que les signaux additionnés soient en phase (c.-à-d. que les parties qui se recouvrent se correspondent).

Page 26: Laboratoires de Traitement du Signal

26 LABORATOIRES DE TRAITEMENT DU SIGNAL

Synthetic speech

Windowing

Synthesis Frames

s (t)k-1~

s (t)s (t)k+1

k~~

t k-1 t k t k+1 t k+2

k+1(t - )/2t k-1

Fig. 1. Synthèse par addition-recouvrement

Modification de la durée et/ou de la fréquence fondamentale

Un modèle additif pur permet facilement d’allonger ou de raccourcir des sons : il suffit en principe de produire plus ou moins de périodes.

La modification de la fréquence fondamentale est un problème plus complexe : si on veut éviter de modifier le timbre, il faut modifier la fréquence et l’amplitude des harmoniques, de façon à conserver l’enveloppe spectrale. Les nouvelles valeurs des amplitudes peuvent être obtenues en échantillonnant l’enveloppe spectrale, elle-même obtenue par interpolation des amplitudes des harmoniques de départ.

5.2.3 Synthèse soustractive Voir document annexe : "What Is Analogue Synthesis?", qui donne l'organisation générale d'un synthétiseur analogique générique basé sur la synthèse soustractive et en explique les modules.

5.2.4 Synthèse par formes d'ondes Voir document annexe : “Synthesis Technology : Wavetable”, qui décrit les principes de base de cette méthode.

On notera que la modification de la période fondamentale, qui est réalisée dans la version de base par simple interpolation des formes d’ondes, ne maintient

Page 27: Laboratoires de Traitement du Signal

LABORATOIRES DE TRAITEMENT DU SIGNAL 27

absolument pas l’enveloppe spectrale du signal (c.-à-d. les fréquences de résonance de l’instrument): un son de piano à queue dont on augmente la fréquence par simple interpolation se transforme vite en un son de piano d’enfant.

Pour pallier cet inconvénient, il est possible d’utiliser une méthode de synthèse radicalement différente (mais qui s’inscrit toujours dans le cadre de la synthèse par formes d’ondes) : l’addition-recouvrement pitch-synchrone dans le domaine temporel (TD-PSOLA : Time Domain Pitch-Synchronous OverLap Add).

Si s(n) est un signal purement périodique, il est en effet possible d'en obtenir un signal ~( )s n de même enveloppe spectrale que s(n) mais de fréquence fondamentale différente en additionnant des fenêtres d'OLA si(n), extraites par multiplication de s(n) par une fenêtre de pondération w(n) synchronisée sur le pitch 0T de s(n). La modification de fréquence fondamentale se fait en changeant l'écartement temporel entre fenêtres d'OLA successives (de sa valeur 0T de départ à une valeur T quelconque), et en réadditionnant les unes aux autres les fenêtres d'OLA ainsi écartées (Fig. 2):

( ) = ( ) ( - )s n s n w n i Ti 0

~( ) ( ( ))s n s n i T Tii

= − −=−∞

0

Cette opération résulte en effet, d'après le théorème de la Somme de Poisson1 en une réharmonisation du spectre de si(n) (qui, si nous supposons le signal de départ purement périodique, est indépendant de i) avec une nouvelle fréquence fondamentale 1/T:

)2(22)(~ alors )()( siT

iT

iST

nsSnsi

iiiπωδππω −�

��

�→←→←∞

−∞=

ℑℑ

Il s'ensuit que si la fenêtre de pondération w(n) est choisie de façon à ce que le spectre de si(n) approxime l'enveloppe spectrale de s(n), TD-PSOLA fournit un moyen très simple de modifier la fréquence fondamentale d'un signal périodique.

1 Suivant la formule de Poisson, la somme d'une infinité de versions décalées d'un même

signal f(t) conduit à un signal périodique dont les raies spectrales viennent se positionner

exactement sur le spectre du signal de départ:

si )()( ωFtf →←ℑ , alors +∞

−∞=ℑ

+∞

−∞=

−→←−nn T

nT

nFT

nTtf )2()2(2)(000

0πωδππ

(où ()δ est une impulsion de

Dirac)

Page 28: Laboratoires de Traitement du Signal

28 LABORATOIRES DE TRAITEMENT DU SIGNAL

T0

T

L

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 même enveloppe spectrale que le signal de départ (en haut); mais pas la même fréquence fondamentale.

On choisit en pratique souvent une fenêtre de Hanning ou une fenêtre triangulaire, avec une longueur égale à deux fois la période de pitch du signal. Une fenêtre plus large fait apparaître des harmoniques dans le spectre de si(n); une fenêtre plus courte n'approxime que très grossièrement l'enveloppe spectrale de s(n).

5.3 Synthèse de Musique sous Matlab 5.3.1 Analyse du son à synthétiser Wavread permet de charger un .wav sous matlab.

Quel est la fréquence fondamentale du son étudié?

Voir sa forme d'onde et zoomer sur des détails à l'attaque, dans la partie de régime, et lors de l'extinction. Ecouter (avec sound) le son (en entier, puis par morceaux).

Visualiser le spectre du signal à différents endroits.

Essayer de se faire une idée de l'évolution de l'enveloppe spectrale du signal.

Utiliser specgram pour afficher un sectrogramme du signal.

Au vu de tous ces renseignements, le son vous paraît-il avoir un timbre varialble dans le temps ? (c.-à-d. : la forme de son enveloppe spectrale varie-t-elle dans le temps ?)

5.3.2 Synthèse additive

Page 29: Laboratoires de Traitement du Signal

LABORATOIRES DE TRAITEMENT DU SIGNAL 29

Outils : fonction adsr et pwlin fournies, sous Matlab. Ces fonctions permettent de produire facilement une courbe de type ADSR, et plus généralement d’interpoler une fonction linéaire par morceaux.

Créer une fonction out = additive(freq, ampl, dur), qui fournisse en sortie un signal composé d’une somme de cosinusoides dont les fréquences sont harmoniques de la valeur donnée dans freq et dont les amplitudes sont données par le vecteur ampl. La durée du son produit doit être de dur secondes.

Synthèse périodique pure

Sur base du spectre d’une fenêtre du signal, choisie dans sa partie la plus stable, estimer les amplitudes des harmoniques. Générer ensuite par synthèse harmonique pure une période du signal (à la fréquence du signal de départ : pas de changement de fréquence). Boucler cette période et lui appliquer un ADSR réaliste.

Vérification (ceci sera valable pour toutes les étapes suivantes): afficher les signaux, les écouter, et comparer leurs spectres.

Synthèse harmonique avec variation du timbre

Effectuer plusieurs mesures du spectre, de façon à ce qu’une interpolation entre les spectres mesurés permette de reproduire plus fidèlement la variation dynamique du timbre. Réaliser une synthèse dynamique, par somme de cosinus.

Synthèse harmonique avec transitoire d’attaque

Essayer de mieux modéliser le transitoire d’attaque (soit par un bruit coloré, lui-même soumis à un ADSR rapide), soit en mémorisant le transitoire et en l’ajoutant purement et simplement au signal hamronique.

Synthèse harmonique avec modification de durée

Produire, le mieux possible, un son de même fréquence que le précédent, mais de durée variable (dans un rapport de 0.25 à 4)

Synthèse harmonique avec modification de fréquence fondamentale

Produire, le mieux possible, un son de durée fixe, mais de fréquence variable (dans un rapport de 0.25 à 4)

5.3.3 Synthèse soustractive Simulation de filtres numériques du second degré « commandés en tension »

Mettre au point, sur base de la relation simple qui lie les coefficients d’un filtre numérique du second degré à ses pôles et zéros, un filtre passe base dont la fréquence de résonance peut être commandée par un vecteur « tension ».

Même chose pour un filtre passe-haut.

Tester ces filtres sur le signal harmonique obtenu en 5.3.2, ainsi que su un bruit blanc.

Synthèse soustractive

Commencer par établir le schéma de principe du synthétiseur qui devrait permettre de produire un son s'apparentant au son reçu par le groupe. Faire valider ce schéma de principe par l’enseignant.

Page 30: Laboratoires de Traitement du Signal

30 LABORATOIRES DE TRAITEMENT DU SIGNAL

Mettre en œuvre cette méthode (ce qui nécessitera de simuler des générateurs, des filtres, des modulateurs éventuels, et des adsr).

Synthèse soustractive avec modification de durée et/ou de fréquence fondamentale

Modifier les paramètres du synthétiseur de façon à modifier la durée et/ou de fréquence fondamentale du signal sans en modifier le timbre.

5.3.4 Synthèse par formes d’ondes Bouclage

Réaliser une fonction out=loop(in, beg, end, dur) qui renvoie un signal de durée dur par bouclage du signal in entre les échantillons beg et end.

Tester sur le signal original.

Interpolation simple

Créer une fonction qui implémente l’interpolation simple d’un signal en vue de son changement de fréquence fondamentale.

Tester sur le signal original (rapport de fréquences entre 0.25 et 4)

TD-PSOLA

Créer une fonction qui implémente l’addition recouvrement pitch synchrone d’un son, en vue de son changement de fréquence fondamentale.

Tester sur le signal original (rapport de fréquences entre 0.25 et 4)

Comparer les résultats à ceux obtenus au point précédent.