SSII : séance finale 2011-12, lundi 9/01/2012 Page 1 Voici quelques questions pour assimiler la seconde partie du cours S.S.I.I., spectre, filtrage, banc.

Slides:



Advertisements
Présentations similaires
PRINCIPE SIMPLIFIE DE LA COMPRESSION MP3
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
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
En quoi consiste la modulation d’amplitude ?
2. Echantillonnage et interpolation des signaux vidéo
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.
Les Systèmes – Les Filtres
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
3. Systèmes L.I.T Systèmes LIT, introduction
Extraits choisis du cours S.S.I.I.
1. Introduction 1.1. Modélisation des signaux
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.
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
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.
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
Miniprojet S.S.I.I., , S.I.3 Analyse du signal NOTEguitare.wav N = fe=44100 Hz le signal audio à analyser :
Miniprojet S.S.I.I. en , S.I.3 Analyse du signal Noteguitare.wav N = fe=44100 Hz le signal audio à analyser :
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 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.
Algèbre linéaire (GCI –100)
SCIENCES PHYSIQUES ET CHIMIQUES FONDAMENTALES ET APPLIQUEES
Polytech'Orléans Filtrage Multicadence Filière ESI
- énergie bornée (tend vers 0 lorsque
Introduction.
Energie d’un signal, énergie d’interaction, analogie avec l’électrocinétique
Transformée de Fourier en Temps Continu (TFTC)
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.
A_cours_TdS_master_Signaux_Generalites_DeltaDirac.
Extraits choisis du cours S.S.I.I.
DU TRAITEMENT DU SIGNAL
Signal d’échantillonnage vH(t) et son spectre
Les signaux périodiques
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.
Filtre en traitement du signal entrée filtre sortie e s h
Sous-échantillonner le signal audio pour compresser
Construire et utiliser un banc de filtres
Sous-échantillonner le signal audio pour compresser
Transcription de la présentation:

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 de filtres, compression, … Préparer les réponses avant le cours, en saidant des polycopiés, des travaux dirigés, et de Scilab ou de Matlab pour vérifier les prévisions et faire des calculs. I - Filtre : on définit à laide de Matlab ou de Scilab un filtre H1 en imposant les R=32 valeurs de sa réponse fréquentielle qui sont réparties régulièrement sur lintervalle de fréquence allant de 0 à fe=8kHz et placées dans le vecteur H1 suivant : H1=[ones(1,7),0.1,0.5,0.9,zeros(1,13),0.1,0.5,0.9,ones(1,6)]; 1. préciser les instructions Matlab ou Scilab qui permettent de tracer H1 entre 0 et fe. 2. tracer maintenant H1 entre –fe/2 et fe/2, préciser gain statique et fréquence de coupure 3.on la vu en cours, linstruction h=fftshift(real(ifft(H1))) calcule la réponse impulsionnelle du filtre de réponse fréquentielle H1 dans le vecteur h=[h0,h1, … hR-1]: 1. que réalise ifft(H1) ? 2. pourquoi real(ifft(H1)) et pourquoi pas abs(ifft(H1)) ? 3. pourquoi utiliser fftshift ? 4. écrire léquation à programmer pour filtrer un signal composé de N échantillons contenus dans le vecteur e=[e0,e1, … eN-1] 5. prévoir leffet du filtre sur le spectre du signal contenu dans e ? 6. calculer la sortie du filtre si lentrée e est une impulsion : e0=1 et e1=e2=…=eN-1=0. II – Signal et signal filtré : on applique à lentrée du filtre H1 précédent un signal sinusoïdal de fréquence f0=1000 Hz et damplitude a= 0.8 échantillonné à la fréquence fe=8000 Hz. 1. Quel est le tracé obtenu si on exécute les instructions Matlab suivantes ? N=8192 fe=8000 f=[0 :N-1]*fe/N ; plot(f,abs(fft(e(1:N))/N) 2. linstruction Matlab : e1=filter(h,1,e) ; ou linstruction Scilab: e1=convol(h,e), filtrent e et placent le signal filtré dans le vecteur e1, comment prédire la valeur de e1 ? 3. et si f0 valait 2000 Hz, puis 2250Hz, puis 2500Hz, quel serait leffet sur le vecteur e1 ? on crée le vecteur e1d avec linstruction : e1d=e1(1 :2 :length(e1)); préciser la taille de e1d, sa fréquence déchantillonnage, et tracer le spectre de e1d 4. on crée maintenant le vecteur e1se en exécutant les deux instructions ci-dessous, préciser la taille, la fréquence déchantillonnage et le spectre du signal e1se : e1se=zeros(1,length(e1)) ; e1se(1 :2 :length(e1))=e1d ; 5. proposer un filtre capable de reconstituer le spectre de e1 à partir de celui de e1se. III- Banc de filtres et compression : On construit un banc de deux filtres dont les réponses fréquentielles sont fixées dans le vecteur H1 précédent et un vecteur H2 à déterminer : 1. déterminer le vecteur H2 à partir du vecteur H1 précédent 2. tracer H2 entre 0 et fe, préciser gain statique et fréquences de coupure basse et haute 3. comment faire calculer la réponse impulsionnelle du filtre H2 dans le vecteur h2 ? 4. que contient le vecteur e2=filter(h2,1,e) ? Que peut-on prédire pour la valeur de e2 ? 5. si on néglige la sortie e2 du filtre H2 devant la sortie e1 de H1, quel est le taux de compression qui en résultera dans la structure de principe vue en cours ? 6. calculer lénergie du signal e (on suggère dutiliser le théorème de Parseval, à tirer du cours)

SSII : séance finale , lundi 9/01/2012 Page 2 I – Filtre: tracer H1 entre 0 et fe fe=8000; R=32; H1=[ones(1,7),0.9,0.5,0.1,zeros(1,13),0.1,0.5,0.9,ones(1,6)]; f=[0:R-1]*fe/R; plot2d3(f,H1) xgrid() xlabel("fréquence (Hz)") ylabel("H1") title(["tracé de H1 ",string(R)," valeurs."])

SSII : séance finale , lundi 9/01/2012 Page 3 I – Filtre tracer entre –fe/2 et fe/2 plot2d3(f-fe/2,fftshift(H1))

SSII : séance finale , lundi 9/01/2012 Page 4 I – Filtre : réponse impulsionnelle h clf(); h=fftshift(real(ifft(H1))); plot2d3([0:R-1]/fe,h) xgrid(); xlabel("temps(s)") ylabel("h"); ifft calcule la TDF inverse, cest une quantité complexe real prend la partie réelle, avantage sur abs, elle peut être négative fftshift permet davoir un filtre causal, h débute en t=0 et pas avant

SSII : séance finale , lundi 9/01/2012 Page 5 I – Filtre : effet de H1 sur le spectre dun signal e filtre passe bas, qui supprime les fréquences > 2000Hz : il multiplie par 1 les composantes du spectre de e entre 0 et 1500Hz, Doù le gain statique égale à 1 par 0.5, la composante du spectre de e de fréquence 2000Hz, doù la fréquence de coupure à -6dB par 0.9, à la fréquence Par 0.1 à la fréquence

SSII : séance finale , lundi 9/01/2012 Page 6 I – Filtre : réponse à une entrée impulsion La réponse à une impulsion e 0 =1 et e 1 =e 2 =…=e N-1 =0 est la réponse impulsionnelle, en effet, seul e 0 =1 est différent de 0, Il en résulte e1 n =h n, n=0.. R-1 Doù la dénomination filtre à réponse impulsionnelle finie, car de durée RTe, Et R longueur du filtre

SSII : séance finale , lundi 9/01/2012 Page 7 II – Signal et signal filtré : spectre de e // signal N=8192; fe=8000; f=[0:N-1]*fe/N; a=0.8; f0=1000; e=a*sin(2*%pi*f0*t); //calcul du spectre plot(f,abs(fft(e)/N)) xgrid(); xlabel("fréquence (Hz)") ylabel("abs(fft(e))/N") title("spectre de e divisé par la taille de la fenêtre")

SSII : séance finale , lundi 9/01/2012 Page 8 II – Signal et signal filtré : H1 filtre e //filtrage e1=convol(h,e); e1=e1(1:N); plot(f,abs(fft(e1(1:N))/N)) xgrid(); xlabel("fréquence (Hz)"); ylabel("abs(fft(e1(1:N)))/N") title("spectre de e1 divisé par la taille de la fenêtre")

SSII : séance finale , lundi 9/01/2012 Page 9 II – Signal et signal filtré : il y a un régime transitoire du filtre qui dure à peu près RTe plot(t,e,t,e1) legend("e","e1") xgrid();

SSII : séance finale , lundi 9/01/2012 Page 10 II – Signal et signal filtré : f0=2000Hz f0= 2000Hz // le gain de H1 vaut 0.5 et non plus 1

SSII : séance finale , lundi 9/01/2012 Page 11 II – Signal et signal filtré : sous échantillonnage //sous échantillonnage e1d=e1(1:2:length(e1)); Nd=length(e1d); fd=[0:Nd-1]*fe/(2*Nd); plot(fd,abs(fft(e1d))/length(e1d)) xgrid(); xlabel("fréquence (Hz)") ylabel("abs(fft(e1d))/length(e1d)") title("spectre de e1d divisé par la taille de la fenêtre") La contrainte de Shannon est respectée ?

SSII : séance finale , lundi 9/01/2012 Page 12 II – Signal et signal filtré : sur échantillonnage //sur échantillonnage e1se=zeros(1,length(e1)); e1se(1:2:length(e1))=e1d; //calcul du spectre plot(f,abs(fft(e1se)/N)) xgrid(); xlabel("fréquence (Hz)"); ylabel("abs(fft(e1se))/N") title("spectre de e divisé par la taille de la fenêtre")

SSII : séance finale , lundi 9/01/2012 Page 13 II – Signal et signal filtré : reconstruire e1 //reconstruction de e1 à partir de e1se e1r=convol(2*h,e1se); e1r=e1r(1:N); plot(f,abs(fft(e1r)/N)) … Il faut prendre 2H1 au lieu de H1

SSII : séance finale , lundi 9/01/2012 Page 14 II- Banc de filtres : //Banc de filtres H2=1-H1; f=[0:R-1]*fe/R; plot(f,H1,f,H2) xgrid() legend("H1","H2") xlabel("fréquence (Hz)") ylabel("H1 et H2") title(["réponse fréquentielle des filtres du banc ",string(R)," valeurs."]) Gain statique H2 = 0 Fréquence coupure basse à -6dB = 2000 Hz Fréquence coupure haute = 4000 Hz Filtre passe haut

SSII : séance finale , lundi 9/01/2012 Page 15 II- Banc de filtres : h2=fftshift(real(ifft(H2))); plot2d3([0:R-1]/fe,h2) xgrid(); xlabel("temps(s)") ylabel("h2");

SSII : séance finale , lundi 9/01/2012 Page 16 II- Banc de filtres : e filtré par H2 e2 sera nul, car 3000Hz est hors de la bande passante de H2

SSII : séance finale , lundi 9/01/2012 Page 17 III- Banc de filtres et compression Si on néglige e2 devant e1, après tout, lénergie de e2 est nulle, on obtient un taux de compression de C=M/K=2 Si on exprime en plus e1 sur 7 bits au lieu de 8, on obtient ? –C–C= 16/7 = 2.3 environ … compresser e e1e1 ed 1 e1se e rec H1H1 H2H2 conserver K signaux sur M bandes xdi, i=1..M e2e2 ed 2 banc de M=2 filtres e2se banc de filtres e1interp e2interp

SSII : séance finale , lundi 9/01/2012 Page 18 II- Banc de filtres : function [E]=energie(s) //fichier energie.sci E=0; for i=1:length(s) E=E+s(i)^2; end E=E/2; endfunction //énergie exec("energie.sci"); E=energie(e) // résultat obtenu : E= Daprès Parseval :