Sous-échantillonner le signal audio pour compresser

Slides:



Advertisements
Présentations similaires
Numérisation du signal principes
Advertisements

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
Cours 5 – Comment bien échantillonner le signal audio
SuivantPrécédent ESSI 1 - Auto TS © Jean-Paul Stromboni (Mai 2000) Consolidation: tester les connaissances acquises 1 Etude de la commande du système.
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
Comment créer des filtres « simples »
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.
Sous-échantillonner le signal audio pour compresser
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
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.
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.
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.
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
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
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.
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.
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.
Chapitre 4 la représentation des nombres. Chapitre 4 : La représentation des nombres 1 - Introduction 1.1 – Notion de mot 2 - La représentation des entiers.
Thème 1 : Ondes et Matière. O M 3 O n d e s s o n o r e s.
Programme International pour le Suivi des Acquis des Elèves
1- Introduction :   En télécommunication , le signal transportant une information doit passer par un moyen de transmission entre un émetteur et un récepteur.
Information, Calcul, Communication
Information, Calcul, Communication
Préparer par : Intissare et kaoutare
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Information, Calcul, Communication
Rappels sur la transformée de Fourier
ECHANTILLONNAGE.
HUAWEI TECHNOLOGIES CO., LTD. Page 1 31.Aout 2006 Standard ITU-T: G.703 & G.704 HUAWEI TECHNOLOGIES CO., LTD.
113 Traitement du Sigal - 3TC Transparents C. Odet, Prof. GE 3-3 Calcul des filtres RII Méthodologies de calcul des filtres RII Ressemblance avec les filtres.
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
Chap. 3 – Modulations analogiques
LE FILTRAGE ANALOGIQUE. Définition : La fonction filtrage sert à assurer la suppression des signaux de fréquence non désirée. Il existe deux types de.
Modulation numérique. Transmission numérique  Avantages techniques Immunité au bruit Optimalisation de la bande passante Facilité de traitement de l’information.
Filtre en traitement du signal entrée filtre sortie e s h
Polytech'Nice-Sophia, Département Sciences Informatiques Cours de 4 ème année : Commande par Ordinateur. semaine 5/6, 29/04/2018Page 1 Commande optimale.
Polytech'Nice-Sophia, Département Sciences Informatiques Cours de 4 ème année : Commande par Ordinateur. semaine 5/6, 04/09/2018Page 1 Commande optimale.
ANALYSE FREQUENTIELLE
Compresser avec un banc de filtres
Utiliser Scilab pour analyser les signaux audio
Etude de la commande du système à inertie
Le signal audio numérique
Introduction du cours à partir d’extraits
Commande optimale de l'alunissage de Lunar Lander
Modulation numérique. Transmission numérique  Avantages techniques Immunité au bruit Optimalisation de la bande passante Facilité de traitement de l’information.
Sous-échantillonner le signal audio pour compresser
Information, Calcul, Communication
Construire et utiliser un banc de filtres
Créer un filtre sur mesure (pour compresser)
Modulation numérique. Transmission numérique  Avantages techniques Immunité au bruit Optimalisation de la bande passante Facilité de traitement de l’information.
Programme d’appui à la gestion publique et aux statistiques
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 Utiliser la contrainte de Shannon pour compresser un signal par sous- échantillonnage décrire l’effet du sur-échantillonnage sur un signal et sur son spectre utiliser la formule de Shannon et le filtre reconstructeur de Shannon pour 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 + filtrage de Shannon, 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 (f0, fréquence unique) |TFD(s)| a/2 fe f fe - fo fo Où retrouver f0 et a sur le spectre d’amplitude ? On sous-échantillonne s dans un rapport M entier a/2 fe /M f fo fe /2M fe /M- fo Retrouver f0 et a sur le spectre

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]

Contrainte de Shannon (ou de Nyquist-Shannon) cf. ‘A Mathematical Theory of Communication’, 1948, de C.E. Shannon : pour échantillonner un signal s(t), il faut respecter la contrainte suivante sur le spectre S(f) de s(t) : Version simple de la contrainte de Shannon : 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 Version générale de la contrainte de Shannon : 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, Il faut assurer : fe >=2*(fmax-fmin) Si la contrainte a été respectée durant l’échantillonnage, la formule de Shannon (page suivante) permet de reconstruire s(t) à partir des échantillons. Sinon, les échantillons ne permettent pas de reconstituer le signal s(t) ! C’est pourquoi : seuls les signaux ‘à bande limitée’ (c’est-à-dire dont le spectre est nul au-dessus d’une fréquence maximale) peuvent être échantillonnés correctement. sur les cartes sons des ordinateurs, on place un filtre dit ‘anti-aliasing’ qui limite le spectre du signal à l’intervalle [0, fe /2[ avant l’échantillonnage

Formule de Shannon, filtre reconstructeur de Shannon, Voici la formule de Shannon qui reconstruit s(t) à partir des échantillons s(nTe) si la contrainte de Shannon est respectée: Dans le domaine fréquentiel, la formule de Shannon applique au signal discret le filtre reconstructeur de Shannon, pour calculer 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 D’où la réponse fréquentielle du filtre de Shannon Si la contrainte de Shannon n‘est pas respectée pour l’échantillonnage, le filtre est impuissant, s(t) est perdu, les échantillons sont inutiles ! f fe/2 -fe/2 Te

Sur-échantillonnage dans un rapport M d’un signal discret signifie insertion de M-1 échantillons nuls entre deux échantillons du signal Exemple : sur-échantillonnage du signal sous échantillonné précédent avec M=8 : Effets du sur-échantillonnage sur le spectre : La fréquence d’échantillonnage est multipliée par M Le spectre ne varie pas (on ajoute des termes nuls, les échantillons supplémentaires étant nuls)

Sur-échantillonnage dans un rapport M=8 du signal ssech de la page 7, et tracé du spectre du signal sur-échantillonné sur-échantillonnage M=8 : // avec Scilab, c’est sse=zeros(size(s)); sse(1:M:length(s))=ssech; N/8 redevient N=1024 échantillons 8*Te redevient Te fe/8 redevient fe =8000Hz a0/2 reste égal à 512/1024, a0=1 f0 = 440Hz Effets du sur-échantillonnage sur le spectre : le spectre ne varie pas, il reste égal à celui du signal sous-échantillonné, car on ajoute des échantillons nuls ! mais fe étant multiplié par 8, on voit M=8 périodes entre 0 et fe 8 440 Peut-on retrouver dans le spectre du signal sur-échantillonné (ci-contre) : le spectre du signal sous échantillonné Le spectre du signal initial s(t)

Comment utiliser la formule de Shannon pour retrouver les échantillons du signal initial avant sous-échantillonnage Dans le domaine fréquentiel, la formule de Shannon applique un filtre au signal sur-échantillonné : Filtre reconstructeur de Shannon de fréquence de coupure fe/(2*M) et de gain M*Te Entrée du filtre : signal sur-échantillonné Sortie du filtre : signal avant sous-échantillonnage Condition de succès : respect de la contrainte de Shannon en sous-échantillonnant

Application : pour décompresser, on utilise un filtre de Shannon pour reconstituer le signal sinusoïdal avant sous-échantillonnage Le filtre de Shannon de fréquence de coupure fe/16 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 égal au spectre de s ! Pourquoi la3 et la3Shannon sont-ils différents au départ ? Initialisation du filtre de Shannon Pourquoi faut-il respecter la contrainte de Shannon en sous-échantillonnant ? 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); // car sinc(x)= sin(x)/x en Scilab // c’est sin(px)/(px) 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 Que réalise la formule de Shannon ? 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 ?