Bonjour,
Je travaille sur un projet dans le domaine audio. Je récupère donc un signal audio que je convertis en dB (plus pratique pour effectuer des traitements par la suite) et dont je calcule l'enveloppe (de type PEAK ou RMS). Mon problème est que cette enveloppe est loin d'être lisse (j'ai essayé d'agrandir ou de rétrécir la fenêtre que j'utilise pour calculer mon enveloppe mais sans grand succès).
Pour la lisser, je souhaite utiliser un filtre passe-bas numérique (filtre IIR, éventuellement de Bessel). J'ai parcouru le forum et la FAQ et j'avoue ne pas avoir trouvé comment procéder. Les différentes fonctions de Matlab concernant les filtres de Bessel ne sont apparemment applicables que sur des signaux analogiques...
Pour le moment, j'ai essayé de lisser mon enveloppe de la façon suivante (cf figure attachée).
Si on zoome bien, on voit que les deux courbes ne sont pas superposées, mais ça me paraît tout de même "chaotique" comme signal...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 a = 0.9; % coefficient de lissage y = (1-a)*env + a*envliss_1; % avec env l'échantillon en cours (enveloppe non lissée) et envliss_1 l'échantillon précédent traité (donc de l'enveloppe lissée)
Quelqu'un aurait-il une méthode à me proposer me permettant d'avancer un peu ?
Merci d'avance.
Partager