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

S.S.I.I.- séance n°10 : Un moyen de compresser le signal audio Page 1 Un moyen de compresser le signal audio présenté à travers un exemple Cours S.S.I.I.,

Présentations similaires


Présentation au sujet: "S.S.I.I.- séance n°10 : Un moyen de compresser le signal audio Page 1 Un moyen de compresser le signal audio présenté à travers un exemple Cours S.S.I.I.,"— Transcription de la présentation:

1 S.S.I.I.- séance n°10 : Un moyen de compresser le signal audio Page 1 Un moyen de compresser le signal audio présenté à travers un exemple Cours S.S.I.I., séance 10, novembre 2009, durée 55 minutes Jean-Paul Stromboni, pour les élèves SI3, vidéoprojecteur Ce que vous devez savoir après cette séance : Compresser un signal audio, c'est réduire sa taille et son débit binaire, ou bit rate, doù le taux de compression. Pour compresser avec un banc de filtres, il faut dabord sous échantillonner les signaux filtrés, et réduire la taille des signaux filtrés les moins significatifs. Pour décompresser, on sur-échantillonne en ajoutant des échantillons nuls, et on applique des filtres interpolateurs. Savez vous répondre aux questions suivantes ? Calculer lénergie dun échelon de Heaviside de longueur R=256 points de deux façons. Un son wav 44100Hz, 16 bits, mono, est compressé à 128kbps, que vaut C ? Avec un taux de compression de 11 que devient un son wav de 33 Mo ? Comment décimer en Matlab dans un facteur 10 le vecteur: s= sin(0.2*pi*[1:10000]) Pourquoi peut-on décimer les signaux filtrés dans un banc de M filtres ? Comment sur-échantillonner le signal s avec MATLAB dans un rapport ? Décimer le signal suivant :Avec un banc de 32 filtres, quel taux de compression peut on imaginer atteindre ?

2 S.S.I.I.- séance n°10 : un moyen de compresser le signal audio Page 2 Prenons un signal audio à compresser Il est tiré du fichier : Chord.wav son spectrogramme son chronogramme sa taille N sa durée sa fréquence d'échantillonnage durée de fenêtres de fft (20 à 30 ms donne D=

3 S.S.I.I.- séance n°10 : un moyen de compresser le signal audio Page 3 construisons un banc de filtres un banc de deux filtres (pour faire simple), réponses harmoniques représentées entre -fe/2 et fe/2 retrouver la fréquence d'échantillonnage la longueur des filtres, les fréquences de coupure leurs gains statiques (à fréquence nulle) et les réponses impulsionnelles h1 et h2 de ces filtres

4 S.S.I.I.- séance n°10 : un moyen de compresser le signal audio Page 4 On filtre le signal e avec h1 et h2 on obtient deux signaux, s1 et s2 dont voici les chronogrammes s1, c'est e filtré par h1 et s2, e filtré par h2 et voici les spectres de e, s1 et s2

5 S.S.I.I.- séance n°10 : un moyen de compresser le signal audio Page 5 on peut sous-échantillonner s1 et aussi s2 dans un rapport 2, pourquoi ? On obtient deux signaux notés sd1 et sd2

6 S.S.I.I.- séance n°10 : un moyen de compresser le signal audio Page 6 On compare sd1 et sd2 en calculant les énergies de ces deux signaux : Matlab trouve que l'énergie de sd1 vaut 25.5, et que celle de sd2 vaut 1.0 prédire le taux de compression si on néglige sd2 on conserve sd1 et sd2, pour voir si on sait décompresser les deux signaux, quel est le taux de compression prévisible ?

7 S.S.I.I.- séance n°10 : un moyen de compresser le signal audio Page 7 Pour décompresser, on sur-échantillonne en ajoutant des échantillons nuls : comment en tire t'on les signaux sse1 et sse2 (utiliser le zoom sur le chronogramme de sse2) ? quel est l'effet sur la fréquence d'échantillonnage ? comment retrouver les spectres de s1 et de s2 ?

8 S.S.I.I.- séance n°10 : un moyen de compresser le signal audio Page 8 pour terminer, il faut appliquer des filtres interpolateurs pour récupérer s1 et s2: On en tire les signaux sint1 et sint2, par filtrage : comparer ces deux filtres ci-dessous avec h1 et h2 pourquoi peut on affirmer qu'on récupère s1 et s2 ?

9 S.S.I.I.- séance n°10 : un moyen de compresser le signal audio Page 9 et voici le signal reconstruit srec, ici avec un taux de compression de un puis de deux

10 S.S.I.I.- séance n°10 : un moyen de compresser le signal audio Page 10 Doù la structure du CODEC : Pour évaluer l'importance des signaux filtrés dans le signal à compresser, on utilise l'énergie définie par : Compléter le diagramme ci-dessus : identifier les étages de la structure : placer les signaux et variables : donner un principe pour le bloc 'conserver K signaux Donner le taux de compression donner le taux de compression maximum possible indiquer comment réaliser les filtres interpolateurs gi : banc sous-éch compressionsur-éch. interpolation synthèse s s(1,: ) s(2,: ) sd(1,: ) sse(1,: ) sint(1,: ) srec sint(M,: ) M/K, soit M gi=M*hi Négliger les signaux filtrés dont lénergie est inférieure à un seuil h1h1 h2h2 … hMhM g1g1 g2g2 … gMgM conserver K signaux filtrés sur M

11 S.S.I.I.- séance n°10 : un moyen de compresser le signal audio Page 11 Simulation Matlab : le script codec.m % lecture du signal [e,fe,B]=wavread('..\..\z.SonsSSI\Bbc.wav'); D=fix(fe*0.03) % pour une fenêtre de 30 millisecondes spectrogram(e,D,0,D,fe,'yaxis') title(['spectrogramme de Bbc.wav']) % création du banc de filtres M=8; R=256; N= R/(4*M); H=[ones(1,N-1),0.9,0.5,0.1,zeros(1,R-2*N-3), … 0.1,0.5,0.9,ones(1,N-2)]; h=fftshift(real(ifft(H))); for j=0:M-1 banc(j+1,:)=2*cos((2*j+1)*[0:R-1]*pi/(2*M)).*h; end % 1. étage danalyse (banc de filtres) for j=0:M-1 y(j+1,:)=filter(banc(j+1,:),1,e); end % 2. étage sous-échantillonneur fd = y(:,1:M:length(e)); % 3. placer ci-dessous votre algorithme de compression monalgorithme % 4. étage sur-échantillonneur fse=zeros(M,length(e)); fse(:,1:M:length(e))=fd; % 5. étage interpolateur for k=1:M fint(k,:)=filter(M*banc(k,:),1,fse(k,:)); end % 6. étage de synthèse frec=sum(fint);

12 S.S.I.I.- séance n°10 : un moyen de compresser le signal audio Page 12 Exemple d'algorithme de compression: on annule les échantillons compressés % monalgorithme.m : garder les K premiers signaux filtrés % principe: annuler les signaux filtrés à négliger E=diag(y*y')/2; bar([0:M-1]*fe/(2*M),100*E/sum(E)) xlabel('fréquence (Hz)') title('énergie en % de l''énergie totale') grid K=input('entrer le nombre de bandes à conserver') fd(K+1:M,:)=0; disp(['K= ',num2str(K),'taux de compression : ',num2str(M/K)]) Résultat pour K=5, taux de compression prédit : 1.6


Télécharger ppt "S.S.I.I.- séance n°10 : Un moyen de compresser le signal audio Page 1 Un moyen de compresser le signal audio présenté à travers un exemple Cours S.S.I.I.,"

Présentations similaires


Annonces Google