La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Comment décimer les sons numériques

Présentations similaires


Présentation au sujet: "Comment décimer les sons numériques"— Transcription de la présentation:

1 Comment décimer les sons numériques
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 : 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 Signal numérique Nous sommes ici ! spectre décimer échantillonner filtrer Filtres simples

2 Savez vous répondre aux questions suivantes ?
Donner le signal échantillonné s* asso-cié à : A quoi correspond la décimation d’un signal avec M=2 ? Quel est le spectre du signal échantillonné s*(t) précédent ? Qu’appelle t’on aliasing du spectre ? Donner le filtre reconstructeur de Shannon pour s*(t) Expliquer la raison et donner le principe du filtre anti-aliasing Peut-on décimer les signaux continus et les signaux discrets ? Dans quel cas le filtre de Shannon reste t’il inefficace ?

3 On notera maintenant signal échantillonné s
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é :

4 Le spectre du signal échantillonné s
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) :

5 On peut illustrer l’aliasing ou démultiplication du spectre sur le cas particulièrement simple d’un signal s1(t) sinusoïdal

6 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  …

7 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 :

8 Retrouver le spectre de s2 avec le filtre de Shannon précédent

9 D’où le moyen de retrouver s(t) à partir de s
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.

10 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

11 On ne peut pas reconstruire le spectre de s3(t) ci-dessous
D’où vient le problème ?

12 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)

13 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 : t s(nTe) 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

14 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))

15 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

16 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;


Télécharger ppt "Comment décimer les sons numériques"

Présentations similaires


Annonces Google