170 likes | 289 Views
Jean-Paul Stromboni, mars 2005 ESSI 1, module SSI, Amphi Est vidéo projecteur Durée : 1h. Où en est-on ?. Dans cette séance, on voit :. Comment décimer les sons numériques. Signal numérique. Nous sommes ici !. spectre. un modèle mathématique de l’échantillonnage
E N D
Jean-Paul Stromboni, mars 2005 ESSI 1, module SSI, Amphi Est vidéo projecteur Durée : 1h Où en est-on ? Dans cette séance, on voit : Comment décimer les sons numériques Signal numérique Nous sommes ici ! spectre un modèle mathématique de l’échantillonnage le phénomène d’aliasing du spectre du signal échantillonné comment reconstruire le signal à partir des échantillons pourquoi et comment décimer (sous-échantillonner) pourquoi et comment sur échantillonner décimer échantillonner filtrer Filtres simples
On notera maintenant signal échantillonné s*(t) le produit du signal s(t) par la fonction peigne de Dirac On distingue : Le signal continu : Le signal discret : Le signal échantillonné :
Le spectre du signal échantillonné s*(t) s’obtient en répétant le spectre de s(t) autour des multiples de fe On a vu que la transformée de Fourier d’un peigne est un peigne : L’échantillonnage détermine donc une démultiplication, (en anglais aliasing) du spectre S(f) du signal s(t) :
On peut illustrer l’aliasing ou démultiplication du spectre sur le cas particulièrement simple d’un signal s1(t) sinusoïdal
Reprendre pour s2(t) ci-dessous et donner le spectre de s2*(t) Comment retrouver le spectre de s2(t) à partir du spectre de s2*(t), c’est le problème que se pose C. E. Shannon (~ 1947) En d’autres termes, comment gommer les répliques du spectre, tout en conservant l’original …
La réponse de Shannon à cette question, c’est … un filtre Un filtre multiplie les composantes du spectre d’un signal par un coefficient atténuateur ou amplificateur selon la fréquence. Les effets du filtre de Shannon sont résumés par sa réponse fréquentielle, ici par exemple pour fe=8kHz : Décrire les effets du filtre de Shannon ci-dessus :
Retrouver le spectre de s2 avec le filtre de Shannon précédent
D’où le moyen de retrouver s(t) à partir de s*(t)… si la contrainte de Shannon est vérifiée filtre reconstructeur de Shannon Pour retrouver s(t) à partir des échantillons s(nTe) dans s*(t),on élimine du spectre de s*(t) par filtrage tous les alias hors de [-fe/2, fe/2] pour récupérer le spectre de s(t), puis on trouve s(t) par Transformée de Fourier inverse, en d’autres termes : On en tire une formule, dite formule de Shannon, applicable si et seulement si la condition de Shannon est respectée.
La formule de Shannon (pour information) • On sait maintenant trouver la formule de Shannon qui calcule s(t) à partir des échantillons s(nTe) : • Puisque s(t) est la transformée inverse d’un produit (cf. ci-dessous) • la transformée de Fourier d’un produit est un produit de convolution • Puisque le produit de convolution par l’impulsion de Dirac décale
On ne peut pas reconstruire le spectre de s3(t) ci-dessous D’où vient le problème ?
Pour pouvoir supprimer proprement les alias, il ne doit pas y avoir de mélanges des alias, ou recouvrements du spectre Si fe diminue, ou si le spectre du signal s(t) est trop large, les alias se mélangent, le filtre de Shannon est incapable de récupérer s(t). La parade est le filtre antialiasing ou prefilter (à expliquer)
s(nTe) t La méthode la plus simple pour compresser un son numérique consiste à le « décimer » c’est-à-dire à le sous-échantillonner Décimer ou sous-échantillonner un signal discret x(nTe) dans un rapport M, c’est ne conserver qu’un échantillon tous les M échantillons Symbole : La décimation réduit le nombre d’échantillons dans un facteur M, l’effet sur la fréquence d’échantillonnage est une division par M Par conséquent, il peut s’avérer nécessaire de préfiltrer le signal hors de avant de le décimer pour éviter des recouvrements du spectre
L’effet de la décimation sur le spectre d’un signal est égal à l’effet d’une division de la fréquence d’échantillonnage Conserver un échantillon sur M revient à diviser par M la fréquence d’échantillonnage fe Puisque : C’est donc : est divisé par M et il y a M fois plus d’alias Avec MATLAB, pour décimer le vecteur sig dans un facteur M: >> sdecime = s(1:M:length(sig))
Pour décompresser un signal décimé, on doit le suréchantillonner L’opération inverse du sous-échantillonnage consiste à ajouter dans un premier temps M -1 échantillons nuls entre deux échantillons du signal décimé. Symbole : Il faut ensuite lisser les M-1 valeurs nulles ajoutées en appliquant un filtre interpolateur pour reconstruire un signal audio de bonne qualité. t
Effet du sur-échantillonnage sur le spectre Pour sur-échantillonner un signal, on insère tout d’abord M-1 échantillons nuls entre deux échantillons : Avec MATLAB, pour faire cette opération sur le vecteur x, on procède en deux temps : xM = zeros(1, M*length(x)); xM(1:M:M*length(x)) = x;