Sous-échantillonner le signal audio pour compresser

Slides:



Advertisements
Présentations similaires
TRANSFORMEE DE FOURIER DISCRETE
Advertisements

Numérisation du signal principes
PRINCIPE SIMPLIFIE DE LA COMPRESSION MP3
Illustration dans le plan complexe du repliement spectral
1 Jean-Paul Stromboni, mars 2005, Révision des cinq premières séances S.S.I. Jean-Paul Stromboni, mars 2005, ESSI1 Elève : ______________________ groupe.
S.S.I., ESSI1, lundi 9 mai 2005 Page 1 Comment compresser avec le spectre Séance 10, 1 heure Version : lundi 9 mai 2005 Auteur : Jean-Paul Stromboni Contenu.
S.S.I., ESSI1, samedi 10 avril 2004 Page 1 Comment tailler les filtres sur mesure Séance 8, nouvelle application des filtres, 1 heure Version : samedi.
Comment créer des filtres d’ordre 1 et 2
Comment on filtre un signal audio
Comment calculer le spectre d’un signal audio
Cours 5 – Comment bien échantillonner le signal audio
Comment décimer les sons numériques
1 Jean-Paul Stromboni, octobre 2007, SI3 Réviser le devoir surveillé n°1 du cours S.S.I.I. Jean-Paul Stromboni, octobre 2007, SI3 Elève : ______________________.
Filtres (n entier, Te=1s)
Calcul de la composition fréquentielle du signal audio
1 Jean-Paul Stromboni, mars 2005, Révision des cinq premières séances S.S.I. Jean-Paul Stromboni, mars 2005, ESSI1 Elève : ______________________ groupe.
Du signal continu au numérique
Mesures dans le domaine fréquentiel
La transformée de Fourier en pratique
2. Echantillonnage et interpolation des signaux vidéo
Traitement du Signal Hugues BENOIT-CATTIN.
Comment créer des filtres « simples »
Comment compresser avec le CODEC mlaw
Créer des interfaces avec Matlab.
Comment bien échantillonner
Cours S.S.I., SI1, avril 2007 – Comment utiliser les outils déjà présentés. Page 1 Comment utiliser les outils déjà présentés dans le cours S.S.I. et pourquoi.
Extraits choisis du cours S.S.I.I.
AutoBilan MATLAB – SSII – SI3 – sept 2009 Page 1 Quel est leffet de linstruction ? Répondez ci-dessous Ok ? D=1; fe=1000 num2str(fe) num2str(d) ['la valeur.
1 PolytechNice-Sophia, Département S.I., S.I.3, octobre 2012, Jean-Paul Stromboni Séance 7 : Retour sur les cinq premiers chapitres du cours S.S.I.I.
Sauver un signal audio numérique dans un fichier wave
Extraits choisis du cours S.S.I.I.
4. Energie dinteraction, application à la reconnaissance de forme (texte, parole, radar …) Energie dun signal, analogie avec lélectrocinétique Par analogie.
S.S.I.I., , n°7 : Construire et utiliser un banc de filtres Page 1 Construire et utiliser un banc de filtres pour analyser le spectre dun signal.
Traitement Numérique du Signal
Cours S.S.I.I., , n°8, Créer des filtres pour compresser Cours S.S.I.I., , n°8, : Créer des filtres pour compresser Page 1 Mise en œuvre.
5. Echantillonnage Introduction
SSII : séance finale , lundi 9/01/2012 Page 1 Voici quelques questions pour assimiler la seconde partie du cours S.S.I.I., spectre, filtrage, banc.
S.S.I.I., , cours n°8 : Compresser avec un banc de filtres Page 1 Compresser avec un banc de filtres Le contenu de ce cours : T.D. n° 8 : simulation.
S.S.I.I., , n°6, Créer des filtres sur mesure pour compresser S.S.I.I., , n°6, : Créer des filtres sur mesure pour compresser 1 Créer un.
1 par Jean-Paul Stromboni, octobre 2008 Un autobilan pour réviser le devoir surveillé n°1 du cours S.S.I.I., par Jean-Paul Stromboni, octobre 2008 Elève.
Un principe de compression d’image
Filtrer le signal audio numérique (n entier, Te=1s)
1 Jean-Paul Stromboni, octobre 2007, SI3 Réviser le devoir surveillé n°1 du cours S.S.I.I. Jean-Paul Stromboni, octobre 2007, SI3 Elève : ______________________.
Filtrer le signal audio numérique
Un moyen de compresser le signal audio présenté à travers un exemple
S.S.I., ESSI1, le 8 février 2004 Page 1 Numériser le signal audio Séance 2, cours, 1 heure auteur : Jean-Paul Stromboni Idées clefs de la séance De nombreuses.
1 Insérez ici votre logo Insert here your logo! ANNEXES de TICE 2002 Un cours pour introduire le traitement du signal à laide de lordinateur multimédia.
1 Introduction au module S.S.I. Signaux et Systèmes pour lInformatique le thème et les motivations du module S.S.I. les connaissances et le savoir faire.
Traitement Numérique du Signal
SCIENCES PHYSIQUES ET CHIMIQUES FONDAMENTALES ET APPLIQUEES
Créer des signaux audio en temps discret avec Scilab
Utiliser le spectre et la transformée de Fourier
Théorie de l'Échantillonnage
Introduction.
Energie d’un signal, énergie d’interaction, analogie avec l’électrocinétique
DU TRAITEMENT DU SIGNAL
Cours S.S.I.I., , n°7, Créer des filtres pour compresser Cours S.S.I.I., , n°7, : Créer des filtres pour compresser Page 1 Retour sur le.
Extraits choisis du cours S.S.I.I.
Signal d’échantillonnage vH(t) et son spectre
DU TRAITEMENT DU SIGNAL
Retour sur les filtres et bancs de filtres Jean-Paul Stromboni, décembre 2007.
S.S.I.I., , cours n°9 : Compresser avec un banc de filtres Page 1 Compresser avec un banc de filtres Contenu de cette séance : T.D. n° 9 : application.
Signal Son et Image pour l’Informaticien (S.S.I.I.) Page 1 Extraits choisis du cours S.S.I.I. On introduit ici des notions de base du traitement numérique.
Calcul de la composition fréquentielle du signal audio
1 23 mars 2004, Jean-Paul Stromboni Signaux et Systèmes pour l’Informaticien Bilan essais erreurs des six premières séances Module SSI d’ESSI 1– 23 mars.
Introduction du cours à partir d’extraits
SSII, séance n°13, bilan du cours 15 décembre 2015 Dernière séance 2015 Résumé des chapitres et notions abordées en 2015.
Sous-échantillonner le signal audio pour compresser
Sous-échantillonner le signal audio pour compresser
Exploiter la fonction fft(.) de Scilab
Transcription de la présentation:

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 l’effet sur le spectre du filtre reconstructeur de Shannon décrire l’effet du sur-échantillonnage d’un 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 l’aide de Scilab

Sous échantillonner : un moyen de compresser Sous échantillonner un signal discret dans un rapport M, c’est 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, d’où le taux de compression de M Jusqu’à quel point peut on augmenter M sans endommager le signal ? 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) D Te t s(t) D

Effet du sous échantillonnage sur le spectre Exemple d’un signal sinusoïdal |TFD(s)| a/2 fe f fe - fo Comment retrouver f0 et a sur le spectre ? fo On sous-échantillonne le signal dans un rapport M Te devient MTe, M entier, fe devient fe/M a/2 fe /M f fo fe /M- fo Retrouver f0 et a ? Il faut répondre à la question :

Exemple d’un 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

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

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

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

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]

Énoncés de la contrainte de Shannon D’après ‘A Mathematical Theory of Communication’, july 1948, in Bell System Technical Journal, par Claude Elwood Shannon (1916-2001) 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<fmin et pour f>fmax, alors fe >=2*(fmax-fmin) Si la contrainte n’est pas respectée, les échantillons ne permettent pas de reconstituer le signal s(t) ! Conséquence : seuls les signaux ‘à bande limitée’ (c’est-à-dire dont le spectre est nul au-dessus d’une fréquence fmax) peuvent être échantillonnés correctement, d’où le filtre dit ‘anti-aliasing’ des cartes sons qui limite le spectre du signal à l’intervalle [0, fe /2[ avant l’échantillonnage

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 n‘est pas respectée pour l’échantillonnage, la formule est impuissante, s(t) est perdu, les échantillons sont inutiles ! f fe/2 -fe/2 Te

Sur-échantillonnage d’un signal discret dans un rapport M signifie insertion de M-1 échantillons nuls entre deux échantillons du signal sur-échantillonnage M=8 : // 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 Effets du sur-échantillonnage sur le spectre : S(f) ne change pas, car on ajoute des échantillons nuls ! fe étant multipliée par 8, on voit M=8 périodes de S(f) entre 0 et fe 8 440 Comment retrouver ci-contre le spectre du signal de départ (cf. page 6) ?

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 8 440

 Pour vous tester par vous-même  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 ?