Page 1
Signal Son et Image pour l’Informaticien (S.S.I.I.)
Extraits choisis du cours S.S.I.I.
• On introduit ici des notions de base du traitement numérique du signal par ordinateur multimédia :
– signal numérique, échantillonnage, quantification, bit rate– composition fréquentielle (ou spectre), spectrogramme– transformée de Fourier discrète, algorithme de FFT – sous-échantillonnage, et sur échantillonnage– filtrage, énergie d’un signal, banc de filtres, – compression, décompression, codec
• On illustre avec le signal audio, puis on étend à l’image numérique• On utilise Scilab (à télécharger sur http://www.scilab.org), logiciel de
calcul libre et multiplateforme doté d’un langage de scripts• On utilise Audacity, éditeur libre de signaux audio à télécharger aussi.• Tous les documents du cours sont en http://cours.polytech.unice.fr/ssii
Jean-Paul Stromboni, 16 septembre 2013, amphi nord, 50mn, utilise des sonsJean-Paul Stromboni, 16 septembre 2013, amphi nord, 50mn, utilise des sonsPolytech'Nice-Sophia, Département SI, cours SI3, Polytech'Nice-Sophia, Département SI, cours SI3,
Séance 1 : Présentation du cours SSIIPage 2
Évaluation et notation
Deux devoirs surveillés (2/3 de la note) : – avec des questions sur les cours et des questions sur les TD,
– documents autorisés : polys annotés et comptes-rendus de TD.
Une note de Travaux Dirigés (1/3 de la note) : Avec les comptes-rendus de travaux dirigés :
• Ils sont rédigés par des binômes
• Ils contiennent :• les observations, les interprétations, les réponses aux questions posées• et non pas les listings, images, données numériques fournies par Scilab
• Ils expliquent ce qui a été fait sur un texte de TD même non terminé
• L’objectif des auteurs est d’expliquer le TD suffisamment clairement pour pouvoir le reprendre plus tard et le poursuivre à partir du compte rendu
Assiduité et ponctualité : bonus de note
Séance 1 : Présentation du cours SSIIPage 3
Extrait 1: son, microphone, signal audio, chronogramme
• l'oreille détecte certaines vibrations de l'air, les sons • seuil d’audition (0dB)< niveau (W/m2) < seuil de douleur (120dB)
(seuil d’audibilité à 1000Hz = 2-12W/m2 ou encore 20 10-6 Pa)
• 20 Hz < fréquence < 20 000 Hz
• le microphone transforme à tout instant t la pression de l'air en tension électrique proportionnelle s(t)
• s(t) est un signal audio
• le chronogramme est la représentation temporelle du signal, avec t en abscisse et s(t) en ordonnée.
t
s(t)
Séance 1 : Présentation du cours SSIIPage 4
Extrait 2: composition fréquentielle.
50
)2000cos(
18
)1200cos(
2
)400cos()(
tttts
Le signal s(t) est composé des trois fréquences 200, 600 et 1000Hz
Le chronogramme ci-dessus a été tracé à partir de l’expression mathématique suivante s(t):
200Hz 600Hz 1000Hz
Séance 1 : Présentation du cours SSIIPage 5
Extrait 3 : spectre d’amplitude et spectrogramme de s(t)
spectrogramme = spectre(temps)
spectre calculé par l’algorithme de F.F.T.(Fast Fourier Transform)
fréquence
fréq
uen
ce
amplitude en dB
fe/2
fe/2
Séance 1 : Présentation du cours SSIIPage 6
Extrait 4: signal audio sinusoïdal (ou note pure)
0 0.005 0.01 0.015 0.02 0.025-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1chronogramme d'un signal en temps continu
axe des temps (secondes)
am
plitu
de d
u s
ignal
• Amplitude (comprise entre -1 et 1) : 0.8 • Durée : 0.03 seconde• Période : 0.02 seconde• Fréquence : 1/0.02 = 50Hz• Signal analogique et (en temps) continu• Expression : s(t)= 0.8*sin(2**t/0.02)
Séance 1 : Présentation du cours SSIIPage 7
Extrait 5: échantillonnage et quantification de s(t)
0 0.005 0.01 0.015 0.02 0.025-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1signal numérisé, B=3bits
axe des temps (secondes)
sign
al0 0.005 0.01 0.015 0.02 0.025
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1chronogramme d’’un signal en temps discret
axe des temps (secondes)
ampl
itude
du
sign
al
000
• période d’échantillonnage : Te= 0.001s• fréquence d'échantillonnage fe =1000Hz• 20 Te par période• Signal en temps discret et analogique
001
010
• nombre de bits par échantillon : B = 3• 8 niveaux de quantification • pas de quantification : Q=0.25• erreur de quantification 0 < < 0.25• Signal numérique et en temps discret
Séance 1 : Présentation du cours SSIIPage 8
Compression par sous-échantillonnage
fe=1000 Hz fe=500 Hz C= 2
Séance 1 : Présentation du cours SSIIPage 9
Compression par quantification
Q=2/256 Q=2/8C=8/3
Séance 1 : Présentation du cours SSIIPage 10
Extrait 6 : Filtrage numérique du signal tiré de Bbc.wav
Le signal e tiré du fichier Bbc.wav est filtré, c’est-à-dire traité par un programme de calcul qui obtient y le signal filtré sauvé dans Bbcfiltré.wav.Le filtre multiplie le spectre du signal à filtrer par la réponse fréquentielle.Filtre passe-bas, rectangulaire, fréquence de coupure = 1000Hz, gain = 1
Bbc.wavBbcfiltré.wav
Hz10000
)(Hzfréquence
Hz5500
filtredugain1
Réponse fréquentielle du filtre
En abscisse, le tempsEn abscisse, le temps
En
ordonn
ée, la fréqu
ence e y
Séance 1 : Présentation du cours SSIIPage 11
Extrait 8: du son à l’image numérique
11
22/2
*)/(:
)*(
',/1
]1...0),([
[,0[),(
1
Q
BB
Q
e
ee
en
nnageéchantillo
s
Q
QQsfloorstionQuantifica
fDfloorN
nnageéchantillodfréquenceTf
NnnTsss
Dtts
x
y
0 L
H
y ordonnée
Y lignes !!
x abscisse X colonnes !
Im(x,y)
t
10
22/1
*)/(:
:
)*(),*(
,/
,/
]1...0,1...0),,Im([
[,0[,[,0[),,Im(
Q
BB
Q
yx
y
x
nm
nnageéchantillo
I
Q
QQIfloorItionQuantifica
YXdéfinition
fHfloorXfLfloorX
verticalerésolutionHYf
ehorizontalrésolutionLXf
XmYnY
nH
X
mLII
HyLxyx
D
s(t)
Séance 1 : Présentation du cours SSIIPage 12
Extrait 8 : filtre d’image numérique avec Scilab// Scilab SIVP image='joconde.jpg';
im = imread(image); imd=im2double(im);
img = rgb2gray(imd); imshow(img)
// avec Scilab et SIVP
h= fspecial(‘prewitt’)
imfx = imfilter(img, h');
aimfx=imcomplement(abs(imfx));
imwrite(aimfx,’aimfx.png’);
// avec Scilab et SIVP
imfy = imfilter(img, h);
aimfy=imcomplement(abs(imfy));
imwrite(aimfx,’aimfy.png’);
Séance 1 : Présentation du cours SSIIPage 13
Quelle est l’URL du cours SSII ? Lire l’amplitude du fondamental d’extrait 3 sur le spectre et sur le spectrogramme :
Mesurer la période, la fréquence et l’amplitude du signal de la page 4
Combien d’échantillons sur le signal à temps discret de l’extrait 5 ?
Quelles sont les amplitudes maximale et minimale des signaux audio numériques ?
Préciser les composantes de fréquence conservées par le filtre dans Extrait 6 ?
Préciser le fondamental et les harmoniques du signal triangulaire Extrait 2
Dans le signal numérique d’Extrait 5, combien de niveaux de quantification ?
Pour vous tester vous-mêmes après ce cours:
Séance 1 : Présentation du cours SSIIPage 14
Extrait 9 : bancs de filtres, compression avec pertes
h1
h2
…
hM
…
On code les signaux yi, i=1..M selon leur
importance ou énergie
M
M
M
M
M
M
Bbc.wav
Etage de compression
Banc de lissage
suréchantillonnageÉtage sous-
échantillonneur Banc de filtres
… …
M*hM
M*h2
M*h11y
2y
My
y
recy
Le signal y est tiré du fichier Bbc.wav pour être compressé.Le spectre de y est découpé en bandes de fréquence par les filtres h1, h2, …hM Les signaux filtrés sont sous-échantillonnés dans un rapport M. On néglige les signaux de "faible" énergie, il en résulte un taux de compression.Les signaux restants sont sur-échantillonnés, lissés, et le signal est décompressé.
Séance 1 : Présentation du cours SSIIPage 15
Extrait 10 : Filtre passe bande avec Matlab
% lecture du son à filtrer[e,fe,b]=wavread ('piano.wav');% définition du filtreR=256; % longueur du filtrefc=500; % bande passante f0=1500; % fréquence centraleN = fix(fc*R/fe); 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)];% réponse impulsionnelleh=fftshift(real(ifft(H)));filtre = 2*cos(2*pi*[0:R-1]*f0/fe).*h;% filtrage du signal audioy=filter( filtre,1,e);wavwrite(y,fe,b,'pianofiltre.wav');% calcul de l’énergie du signalE=(y’*y)/2;
Comparer les spectrogrammes de piano.wav (à gauche) et pianofiltre.wav (à droite)
Ce script Matlab lit le fichier piano.wav dans le vecteur e, filtre, et sauve le signal filtré y dans pianofiltre.wav
En abscisse, le temps
En ordonnée, la
fréquence
Séance 1 : Présentation du cours SSIIPage 16
Extrait 11 : CODEC law et bruit de quantification
Les signaux audio de faible amplitude peuvent être compressés par le CODEC law (fichiers .au) qui réduit le nombre de bits pour coder chaque échantillon. Pour ce faire, le signal audio doit passer dans une non linéarité sigmoïde .
Sinon, un bruit de quantification peut apparaître. Pour bien le montrer en TD, on réduit davantage l'amplitude du signal piano_c3 :
piano_c3
8 bit -1
8 bitbitB 16
1/8bitB 8
bitB 8
8
8