Projet : Filtrage et Analyse Fréquentielle d'un Signal Audio
Objectif : Appliquer les concepts fondamentaux du traitement du signal pour filtrer un signal
audio bruité et analyser son contenu fréquentiel.
1. Matériel requis :
• Ordinateur avec Python installé.
• Librairies Python : numpy, scipy, matplotlib.
• Un fichier audio bruité (format WAV).
2. Étapes du projet :
a. Chargement et visualisation du signal
1. Charger le fichier audio avec [Link].
2. Afficher le signal en fonction du temps.
Code exemple :
from [Link] import wavfile
import [Link] as plt
# Charger le signal audio
fs, signal = [Link]('audio_bruite.wav')
# Afficher le signal
[Link](signal)
[Link]('Signal bruité')
[Link]('Temps')
[Link]('Amplitude')
[Link]()
b. Analyse fréquentielle
1. Utiliser la transformée de Fourier pour obtenir le spectre fréquentiel.
2. Visualiser le spectre en fonction des fréquences.
Code exemple :
import numpy as np
# Calcul de la transformée de Fourier
frequences = [Link](len(signal), 1/fs)
spectre = [Link](signal)
# Afficher le spectre
[Link](frequences, [Link](spectre))
[Link]('Spectre fréquentiel')
[Link]('Fréquences (Hz)')
[Link]('Amplitude')
[Link]()
c. Filtrage du signal
1. Implémenter un filtre passe-bas pour atténuer le bruit.
2. Appliquer le filtre et afficher le signal filtré.
Code exemple :
from [Link] import butter, lfilter
# Créer un filtre passe-bas
def filtre_passe_bas(signal, cutoff, fs, ordre=5):
b, a = butter(ordre, cutoff / (0.5 * fs), btype='low')
return lfilter(b, a, signal)
# Appliquer le filtre
signal_filtre = filtre_passe_bas(signal, cutoff=1000, fs=fs)
# Afficher le signal filtré
[Link](signal_filtre)
[Link]('Signal filtré')
[Link]('Temps')
[Link]('Amplitude')
[Link]()
3. Résultats attendus :
• Comparaison entre le signal bruité et le signal filtré.
• Spectre fréquentiel avant et après filtrage.
4. Questions pour les étudiants :
1. Quelle est l’importance du filtrage dans le traitement du signal ?
2. Comment choisir la fréquence de coupure d’un filtre passe-bas ?
3. Quels autres types de filtres pourriez-vous utiliser dans des applications pratiques ?