1 TP RLS Dans ce TP, on se propose d’écrire en langage Matlab des algorithmes de moindres carrés récursifs avec fenêtre de pondération. Nous utiliserons ces algorithmes pour estimer le résidu de prédiction d’un signal de parole. 1 Algorithme RLS On considère le modèle linéaire xj = yjT h + ej pour j ∈ {1, . . . , n} où xj , ej ∈ R, yj ∈ Rp (avec p < n). Soit λj des nombres positifs. L’estimateur des moindres carrés pondérés est défini par ĥ = arg minp h∈R n X (xj − yjT h)2 λj j=1 T T T T xn , Yn = Yn−1 yn et Λn = diag(λ1 , . . . , λn ). On donne: On pose Xn = Xn−1 Lemme 1 (d’inversion matricielle) (A + BCD)−1 = A−1 − A−1 B C −1 + DA−1 B 1.1 −1 DA−1 (1) Fenêtre exponentielle On considère la suite de pondération suivante : λj = λn−j 1. En utilisant le principe d’orthogonalité, déterminer, en fonction de Xn , de Yn et de Λn , l’expression de ĥ. 2. Dans la suite on posera Rn = (YnT Λn Yn ) et Qn = Rn−1 . Déterminer l’équation récurrente que vérifie Rn , ainsi que les conditions initiales. En utilisant le lemme 1, déterminer l’équation récurrente que vérifie Qn , ainsi que les conditions initiales. 3. Algorithme récursif: montrer que pour n = 1 . . . : Kn = λ−1 Qn−1 yn 1 + λ−1 ynT Qn−1 yn hn = hn−1 + Kn (xn − ynT hn−1 ) Qn = λ −1 (Ip − Kn ynT ) Qn−1 avec comme conditions initiales1 Q0 = IP /δ with δ ≪ 1 et h0 = 0. 1 On ne peut pas prendre R0 = 0 car cela conduirait à Q0 = ∞. (2) 2 1.2 Fenêtre rectangulaire glissante On considère la suite de pondération λj = 1 si j = n − N + 1 . . . n 0 si j = 1 . . . n − N 1. En utilisant le principe d’orthogonalité, déterminer, en fonction de Xn , de Yn et de Λn , l’expression de ĥ. 2. En utilisant les formules suivantes : T YnT Λn xn = Yn−1 Λn−1 Xn−1 − yn−N xn−N + yn xn et T T YnT Λn Yn = Yn−1 Λn−1 Yn−1 − yn−N yn−N + yn ynT T −yn−N T = Yn−1 Λn−1 Yn−1 + yn−N yn ynT déterminer un algorithme récursif. 2 Expérimentation 1. On veut réaliser l’estimation de l’erreur de prédiction sur un passé de longueur P d’un signal. Comment ce problème peut-il être résolu par un algorithme RLS ? Ecrire sous Matlab les fonctions correspondantes. 2. En utilisant les fonctions précédentes, effectuer l’estimation du résidu de prédiction pour un signal de parole (fichier desgens.wav). Décrire les résultats obtenus (on distinguera les plages dites de son voisé et les plages dites de son non voisé). 3. Evaluer la fréquence de pitch et reporter vos résultats sur le spectrogramme du signal (récupérer la fonction spectro.m).