Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
1 Avant de commencer
L’objectif de ce projet est double : Premièrement, vous permettre de mettre en oeuvre des techniques vues
en cours et en TP afin de résoudre un problème technique. Deuxièmement, vous exercer à présenter votre
démarche et vos résultats sous la forme d’un rapport technique (appelé compte-rendu). Vous rendrez vos
codes Matlab, mais on insiste sur le fait que la moitié de l’évaluation porte sur la rédaction du compte-rendu.
En particulier, les points techniques devront être illustrés par de nombreux graphiques pertinents et lisibles.
Ecrire le squelette en supposant pour commencer que le signal de sortie trame par trame est identique au
signal d’entrée trame par trame. Ecrire le signal de sortie complet dans un fichier wav, et vérifier qu’il est
identique au signal de sortie.
Pour chaque trame, tracer les formes d’onde et les spectres des signaux d’entrée et de sortie.
1
R2(z) = R1(z)
1 − gz −T
HLP C est le filtre RIF obtenu en sortie de la fonction Matlab lpc. On choisira un ordre de prédiction P = 10.
g et T sont les paramètres de gain et de retard du prédicteur à long terme, et sont calculés à partir de la
fonction d’auto-corrélation du signal R1, comme expliqué ci-après.
1
On note X1[k] la fonction d’auto-corrélation de R1 (fonction Matlab xcorr). On choisira une valeur du
paramètre maxlag égale à 100 échantillons. On recherche le premier maxima local notable de la fonction
X1. Pour cela, on la multiplie par une fonction de pondération gaussienne :
(k−γ)2
p[k] = e− 2σ 2
On calcule donc le maximum de la fonction X1[k].p[k]. La position du maximum (en nombre d’échantillons)
correspond à la valeur recherchée du paramètre de retard T . La valeur de l’auto-corrélation au maximum
correspond à la valeur recherchée du paramètre de gain g (voir la figure ci-dessous).
E1(z) = 1 − gz −T
E2(z)
1
Y (z) = E1(z)
HLP C (z)
Y désigne le signal de sortie, E1 le signal d’excitation à court terme et E2 le signal d’excitation à long
terme. Dans un premier temps, on suppose que E2 = R2 en l’absence de codage du résiduel.
2
Afin de garantir la continuité des processus de filtrage entre la trame courante et la trame précédente, il
faut utiliser les fonctionnalités d’état initial et d’état final de la mémoire du filtre disponible avec la fonction
filter (selon l’implémentation DN, voir le cours partie VIII) :
[y,final_state] = filter(B,A,x,init_state)
Lors du traitement sur le bloc courant, l’état initial de chaque filtre doit être l’état final du filtre dans le
bloc précédent. Dans le premier bloc, l’état initial est une variable vide.
Insérer les filtres d’analyse et de synthèse trame par trame dans le squelette du codeur. Pour chacun des 4
filtres, mettre en place une mémoire de l’état du filtre entre trames. En l’abscence de codage du résiduel, le
signal de sortie doit être identique au signal d’entrée. Tracer les formes d’ondes et les spectres des signaux
résiduel et d’excitation.
On note r2[n] le signal résiduel et σr2 l’écart-type de |r2[n]| (fonction Matlab std). Le résiduel sous-quantifié
sur 3 niveaux s’écrit :
ρ2[n] = 1 lorsque r2[n] ≥ σr2
ρ2[n] = 0 lorsque −σr2 < r2[n] < σr2
ρ2[n] = −1 lorsque r2[n] ≤ −σr2
Dans le cas d’un système complet, le flux binaire comprendrait, pour la trame courante, les paramètres
suivants :
Ici, on ne s’intéresse pas aux aspects "informatiques" de la mise en form de ce flux binaire. On suppose
simplement que tous les paramètres sont transmis tels quel au décodeur.
La partie décodage du résiduel consiste mettre à l’échelle le signal sous quantifié ρ2[n], de telle sorte que
l’énergie du signal résultant soit égale à celle du résiduel d’origine r2[n]. On note σρ2 l’écart-type de |ρ2[n]|.
Le décodage s’écrit alors :
σr2
r2[n]
b = ρ2[n]
σρ2
Implémenter à la suite le codage et le décodage du résiduel dans la boucle sur les trames, pour simuler la
mise en série du codeur et du décodeur en l’abscence d’erreurs de transmission. Tracer les formes d’onde et
les spectres des signaux dans la partie décodeur, et les comparer à ceux des signaux dans la partie analyse.
Enregistrer les signaux dans des fichiers wav pour pouvoir les écouter.