un moyen de compresser le signal audio pr sent travers un exemple l.
Download
Skip this Video
Download Presentation
Un moyen de compresser le signal audio présenté à travers un exemple

Loading in 2 Seconds...

play fullscreen
1 / 12

Un moyen de compresser le signal audio présenté à travers un exemple - PowerPoint PPT Presentation


  • 71 Views
  • Uploaded on

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. préciser. Ce que vous devez savoir après cette séance :.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Un moyen de compresser le signal audio présenté à travers un exemple' - erol


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
un moyen de compresser le signal audio pr sent travers un exemple

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

préciser

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, d’où le taux de compression.

Pour compresser avec un banc de filtres, il faut d’abord 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.

définir

contenu

Savez vous répondre aux questions suivantes ?

se tester

soi-même

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=

Prenons un signal audio à compresser
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)

construisons un banc de filtres

et les réponses impulsionnelles h1 et h2 de ces filtres

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

On filtre le signal e avec h1 et h2

et voici les spectres de e, s1 et s2

on compare sd1 et sd2 en calculant les nergies de ces deux signaux
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 ?

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 ?

Pour décompresser, on sur-échantillonne en ajoutant des échantillons nuls :
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 ?

pour terminer, il faut appliquer des filtres interpolateurs pour récupérer s1 et s2:
d o la structure du codec

conserver K signaux filtrés sur M

g1

h1

h2

g2

hM

gM

D’où la structure du CODEC :

compression

sur-éch.

banc

sous-éch

interpolation

synthèse

sse(1,: )

sd(1,: )

s(1,: )

sint(1,: )

s(2,: )

s

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 :

srec

sint(M,: )

Rappel :

exercice

Négliger les signaux filtrés dont l’énergie est inférieure à un seuil

M/K, soit M

gi=M*hi

simulation matlab le script codec m
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 d’analyse (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);

exemple d algorithme de compression on annule les chantillons compress s
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)])

illustrer

Résultat pour K=5, taux de compression prédit : 1.6