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

SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 1 Sous-échantillonner le signal audio pour compresser.

Présentations similaires


Présentation au sujet: "SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 1 Sous-échantillonner le signal audio pour compresser."— Transcription de la présentation:

1 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 1 Sous-échantillonner le signal audio pour compresser Jean-Paul Stromboni, Polytech'Nice-Sophia, Département Sciences Informatiques, SI3 durée 55 mn, vidéo projecteur, et au besoin jouer des sons Après ce cours, vous devez savoir : décrire l'effet du sous-échantillonnage sur un signal audio et sur son spectre justifier la contrainte de Shannon pour bien échantillonner un signal décrire leffet sur le spectre du filtre reconstructeur de Shannon décrire leffet du sur-échantillonnage dun signal discret décompresser par sur-échantillonnage et application du filtre de Shannon En travaux dirigés, vous expérimenterez : la compression et la décompression d'un signal sinusoïdal par sous-échantillonnage et sur-échantillonnage, avec laide de Scilab

2 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 2 Sous échantillonner : un moyen de compresser Sous échantillonner un signal discret dans un rapport M, cest conserver un échantillon sur M (cf. illustration ci-dessous) Symbole : Sous échantillonner dans un rapport M revient à diviser la fréquence déchantillonnage par M La taille du signal est divisée par M, le bit rate (débit binaire) aussi, doù le taux de compression de M Jusquà quel point peut on augmenter M sans endommager le signal ? Te t s(t) 0 D Exemple : pour M=2 Taille du signal avant ? Taille du signal après sous échantillonnage ? Échantillons restants que devient Te ? Que devient fe ? Taux de compression ? 2Te t s(t) 0 D

3 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 3 Effet du sous échantillonnage sur le spectre Exemple dun signal sinusoïdal Comment retrouver f0 et a sur le spectre ? On sous-échantillonne le signal dans un rapport M T e devient MT e, M entier, f e devient f e /M Retrouver f0 et a ? Il faut répondre à la question : f f fefe f e /M fofo fofo f e - f o f e /M- f o 0 0 a/2 |TFD(s)|

4 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 4 Exemple dun signal sinusoïdal avec Matlab % attention, script Matlab fe=8000; D=3; f0=440; a0=1; t=0:1/fe:D; s=a0*sin(2*pi*f0*t); N=8192; stem(t,s) axis([0,D,-1.1,1.1]) ylabel('amplitude') xlabel('temps t (s)') title(['0 à',num2str(D),' s']) K=4*N; fr=[0:K-1]*fe/K; spec=abs(fft(s(1:N),K)); plot(fr,spec) ylabel('spectre d''amp …) xlabel('fréquence Hz') title([ … ]) grid

5 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 5 Sous-échantillonnage dans un rapport M=2 Symbole : ssech=s(1:2:length(s)); N devient 4096 Te devient 2*Te, 1/4000s fe devient fe/2 soit 4000Hz on retrouve a0 et f0 –a0/2 = 2048/N (2036/N), d'où a0 = 1 –f0 = 440Hz (439.9) taux de compression C=2

6 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 6 Sous-échantillonnage de s dans un rapport 4 ssech=s(1:4:length(s)); N devient N/4= 2048 Te devient 4*Te fe devient fe/4 =2000Hz a0/2 = 1024/2048, a0=1 f0 = 440Hz taux compression : 4

7 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 7 Sous-échantillonnage de s dans un rapport M= 8 ssech=s(1:8:length(s)); N devient N/8= 1024 Te devient 8*Te fe devient fe/8 =1000Hz a0/2 = 512/1024, a0=1 f0 = 440Hz taux compression : 8

8 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 8 Sous-échantillonnage de rapport 16 : expliquer le problème ! ssech=s(1:16:length(s)); N devient N/16= 512 Te devient 16*Te fe devient fe/16 =500Hz a0/2 = 256/512, a0=1 f0 = 60Hz !! Erreur !! taux compression : pas Les deux raies spectrales en f0 et fe-f0 ont croisé fe/2, on parle de repliement du spectre. On lit fe-f0=60Hz et non f0=440Hz dans l'intervalle [0,250Hz]

9 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 9 Énoncés de la contrainte de Shannon Daprès A Mathematical Theory of Communication, july 1948, in Bell System Technical Journal, par Claude Elwood Shannon ( ) Pour échantillonner correctement un signal s(t), il faut respecter la contrainte de Shannon : –Contrainte de Shannon simplifiée : la fréquence d'échantillonnage doit être égale au moins au double de la fréquence maximale du spectre du signal : s'il existe fmax telle que S(f >fmax)=0, alors fe >=2*fmax –Contrainte de Shannon générale : la fréquence d'échantillonnage doit être égale au moins au double de la largeur du spectre du signal : s'il existe fmin et fmax telle que S(f >0) =0 pour f fmax, alors fe >=2*(fmax-fmin) Si la contrainte nest pas respectée, les échantillons ne permettent pas de reconstituer le signal s(t) ! Conséquence : seuls les signaux à bande limitée (cest-à-dire dont le spectre est nul au-dessus dune fréquence fmax) peuvent être échantillonnés correctement, doù le filtre dit anti-aliasing des cartes sons qui limite le spectre du signal à lintervalle [0, f e /2[ avant léchantillonnage

10 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 10 Filtre reconstructeur de Shannon, formule de Shannon Voici la formule de Shannon qui reconstruit s(t) à partir des échantillons s(nTe) si la contrainte de Shannon est respectée: En terme de filtrage, la formule de Shannon applique au signal discret le filtre reconstructeur de Shannon, pour retrouver s(t) : –ce filtre multiplie par Te les composantes fréquentielles entre –fe/2 et fe/2, et multiplie par 0 toutes les autres composantes du spectre pour supprimer –voici la réponse fréquentielle de ce filtre tracée entre -fe et fe : Si la contrainte de Shannon nest pas respectée pour léchantillonnage, la formule est impuissante, s(t) est perdu, les échantillons sont inutiles ! f fe/2 -fe/2 Te 0

11 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 11 Effets du sur-échantillonnage sur le spectre : S(f) ne change pas, car on ajoute des échantillons nuls ! f e étant multipliée par 8, on voit M=8 périodes de S(f) entre 0 et fe Sur-échantillonnage dun signal discret dans un rapport M signifie insertion de M-1 échantillons nuls entre deux échantillons du signal // avec Scilab ou Matlab sse=zeros(size(s)); sse(1:M:length(s))=ssech; N/8 redevient N échantillons 8*Te redevient Te fe/8 redevient fe =8000Hz a0/2 reste 512/1024, a0=1 f0 = 440Hz sur-échantillonnage M=8 : Comment retrouver ci-contre le spectre du signal de départ (cf. page 6) ?

12 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 12 pour terminer, on applique un filtre chargé de reconstituer le spectre du signal sinusoïdal avant le sous échantillonnage Le filtre de Shannon de fréquence de coupure fe/8 reconstitue le spectre du signal s à partir du spectre de sse : il conserve les 2 raies du spectre de s et supprime toutes les autres il multiplie par 8 les raies conservées Pourquoi peut-on assurer que la sortie du filtre vaut s ? Parce que le spectre du signal filtré est le spectre de s ! Pourquoi faut-il respecter la contrainte de Shannon ? Car le filtre de Shannon est inefficace sinon (voir par exemple M=16) Programmation du filtre avec Scilab t= [0: length(s)-1]/fe; srec=zeros(1,length(s)); // pour size(s) en Matlab for j=0:length(ssech)-1 srec=srec+ssech(j+1)*sinc(%pi*(t-8*j/fe)*fe/8); // en Matlab, pas besoin de %pi end

13 SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 13 Créer avec Scilab le signal s suivant durant 2 s : Sous échantillonner le signal s dans le vecteur Scilab sse si M=2 ? Quel est le bit rate de s si B=8 bits ?Quel taux de compression faut il appliquer à s pour réduire le bit rate à 32kbps ? Sur-échantillonner le vecteur sse dans un rapport M=2 Qu'est ce que le recouvrement du spectre ? Jusqu'à quel rapport M peut on sous échantillonner le signal s ? Dans quel cas le filtre de Shannon est-il incapable de retrouver s à partir de sse ? Pour vous tester par vous-même


Télécharger ppt "SI3, cours S.S.I.I., chapitre 5 : Sous-échantillonner le signal audio pour compresser (vers. 2013) Page 1 Sous-échantillonner le signal audio pour compresser."

Présentations similaires


Annonces Google