Traitement des signaux audio - Laboratoire 2 Filtrage FIR 1 Conception d’un filtre FIR Le but de l’exercice proposé est de séparer un signal de voix d’un signal sinusoidal dans un fichier audio. Vous disposez dans le dossier C :\DSP\audio de deux fichiers audio contenant des signaux de voix auxquels ont été superposées des sinusoides de fréquences 1600 Hz et 5000 Hz respectivement. Pour ces deux fichiers, vous devez isoler une des deux fréquences, et éliminer l’autre (au choix). Le Chapitre 4 des notes de cours contient la procédure de dimensionnement d’un filtre FIR de type Windowed Sinc. Utilisez ce type de filtre pour créer un filtre passe-bande et un filtre réjecteur. Utilisez Matlab pour écrire un script vous permettant d’extraire les coefficients de votre filtre. Ce script prendra en paramètres la longueur du filtre et renverra la réponse impulsionnelle correspondante. Dans l’ordre, vous devez 1. Écrire le script Matlab permettant de calculer la réponse impulsionnelle d’un filtre passebande et réjecteur ; 2. Utilisez votre script pour extraire les coefficients du filtre ; 3. Générer un fichier header C contenant vos coefficients à l’aide de la fonction L138_fir_coeffs mise à votre disposition ; 4. Écrire un premier code basique implémentant le filtre ; 5. Écrire un code optimisé utilisant un buffer circulaire pour l’implémentation du filtre. Relevez la courbe de réponse en fréquence de votre filtre à l’aide de l’audio précision. Votre rapport devra contenir ces courbes. 2 Rappel : Filtres Windowed-Sinc La réponse impulsionnelle d’un filtre passe-bas et d’un filtre passe-haut se calcule comme suit. h[i] = ± sin(2πfc i) iπ Deux paramètres sont nécéssaires : la fréquence de coupure fc , exprimée comme une fraction de la fréquence d’échantillonnage, et la longueur du filtre M . La longueur du filtre sera M≈ 4 BW où BW correspond à la largeur de la bande de transition, exprimée comme une fraction de la fréquence d’échantillonnage. N’oubliez pas de fenêtrer votre filtre à l’aide d’une fenêtre de Blackman ou de Hamming (au choix). wHamming [i] = 0.54 − 0.46cos(2πi/M ) wBlakman [i] = 0.42 − 0.5cos(2πi/M ) + 0.08cos(4πi/M ) Note : un filtre passe-bande est obtenu par convolution d’un filtre passe-haut avec un filtre passe-bas et un filtre réjecteur est obtenu par addition des deux filtres. 1
© Copyright 2025 ExpyDoc