Extraits choisis du cours S.S.I.I. Jean-Paul Stromboni, 16 septembre 2013, amphi nord, 50mn, utilise des sons Polytech'Nice-Sophia, Département SI, cours SI3, 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
É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
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) 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.
Extrait 2: composition fréquentielle. Le chronogramme ci-dessus a été tracé à partir de l’expression mathématique suivante s(t): Le signal s(t) est composé des trois fréquences 200, 600 et 1000Hz
Extrait 3 : spectre d’amplitude et spectrogramme de s(t) fe/2 spectrogramme = spectre(temps) fréquence spectre calculé par l’algorithme de F.F.T. (Fast Fourier Transform) amplitude en dB fréquence fe/2
Extrait 4: signal audio sinusoïdal (ou note pure) Signal analogique et (en temps) continu Expression : s(t)= 0.8*sin(2*p*t/0.02)
Extrait 5: échantillonnage et quantification de s(t) 010 001 000 nombre de bits par échantillon : B = 3 8 niveaux de quantification pas de quantification : Q=0.25 erreur de quantification 0 < e < 0.25 Signal numérique et en temps discret période d’échantillonnage : Te= 0.001s fréquence d'échantillonnage fe =1000Hz 20 Te par période Signal en temps discret et analogique
Compression par sous-échantillonnage fe=1000 Hz
Compression par quantification
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.wav Bbcfiltré.wav Réponse fréquentielle du filtre En ordonnée, la fréquence e y En abscisse, le temps En abscisse, le temps
Extrait 8: du son à l’image numérique s(t) D t x abscisse X colonnes ! y Im(x,y) H y ordonnée Y lignes !! x L
Pour vous tester vous-mêmes après ce cours: 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 ?
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’);
Extrait 9 : bancs de filtres, compression avec pertes h1 On code les signaux yi, i=1..M selon leur importance ou énergie M*h1 h2 M*h2 Bbc.wav … … … … hM M*hM Banc de filtres Étage sous- échantillonneur Etage de compression Banc de lissage suréchantillonnage 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é.
Extrait 10 : Filtre passe bande avec Matlab Ce script Matlab lit le fichier piano.wav dans le vecteur e, filtre, et sauve le signal filtré y dans pianofiltre.wav Comparer les spectrogrammes de piano.wav (à gauche) et pianofiltre.wav (à droite) % lecture du son à filtrer [e,fe,b]=wavread ('piano.wav'); % définition du filtre R=256; % longueur du filtre fc=500; % bande passante f0=1500; % fréquence centrale N = 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 impulsionnelle h=fftshift(real(ifft(H))); filtre = 2*cos(2*pi*[0:R-1]*f0/fe).*h; % filtrage du signal audio y=filter( filtre,1,e); wavwrite(y,fe,b,'pianofiltre.wav'); % calcul de l’énergie du signal E=(y’*y)/2; En ordonnée, la fréquence En abscisse, le temps
Extrait 11 : CODEC mlaw et bruit de quantification Les signaux audio de faible amplitude peuvent être compressés par le CODEC mlaw (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 m. 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 8 1/8 m 8 bit m-1 8