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 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 logiciel proche de Matlab mais libre et multiplateforme On utilise Audacity, éditeur libre de signaux audio à télécharger aussi. On trouve tous les documents distribués et utilisés sur l’URL : Jean-Paul Stromboni, 8 septembre 2014, amphi ouest, 50mn, utilise des sons Polytech'Nice-Sophia, Département SI, cours SI3,
Séance 1 : Présentation du cours SSII Page 2 Évaluation et notation Deux devoirs surveillés (2/3 de la note finale) : –questions sur les cours et questions sur les travaux dirigés (TD), –seuls documents autorisés : Les polys de cours annotés Les comptes-rendus réalisés en TD. Une note de TD (1/3 de la note finale) pour évaluer l’implication et la participation : Travail de recherche sur le thème du cours (en binômes): cf. page suivante Rappel sur les comptes-rendus de TD (en binômes) : Ils relatent ce qui a été fait sur un texte de TD, même non terminé Ils contiennent les observations, les interprétations, les réponses aux questions posées, Ils ne doivent pas contenir seulement des listings, images, et données numériques sans explications. L’objectif des auteurs est d’expliquer le TD suffisamment clairement pour pouvoir le reprendre plus tard et le poursuivre à partir du compte rendu. Ils font partie des documents autorisés en DS Assiduité et ponctualité (individuel)
Séance 1 : Présentation du cours SSII Page 3 Travail de documentation sur le thème du cours Objectif : enrichir le contenu du cours Travail en binôme (ou à la rigueur en monôme) Principe : Choisir un point du cours, cf. ainsi qu’un objectifhttp://cours.polytech.unice.fr Le point peut être une notion théorique, une technique, un outil, … L’objectif peut être de réunir une documentation, de faire une synthèse, de trouver/modifier une application, d’expliquer une animation pédagogique, … Faire valider le thème et l’objectif choisis par un enseignant Rassembler les résultats obtenus dans une page web : En citant bien les sources utilisées En ajoutant bien les commentaires, les explications, les interprétations nécessaires Une première évaluation du travail en cours à mi semestre Évaluation finale du travail complété en fin de semestre, où il pourra donner lieu à un exposé
Séance 1 : Présentation du cours SSII Page 4 Extrait 1: son, microphone, signal audio, chronogramme l'oreille détecte certaines vibrations de l'air, les sons seuil d’audition (0dB)< niveau (W/m 2 ) < seuil de douleur (120dB) (seuil d’audibilité à 1000Hz = W/m 2 ou encore Pa) 20 Hz < fréquence < 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 SSII Page 5 Extrait 2: composition fréquentielle. 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): 200Hz600Hz1000Hz
Séance 1 : Présentation du cours SSII Page 6 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 amplitude en dB fe/2
Séance 1 : Présentation du cours SSII Page 7 Extrait 4: signal audio sinusoïdal (ou note pure) 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 SSII Page 8 Extrait 5: échantillonnage et quantification de s(t) 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 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 SSII Page 9 Extrait 6 : compression par sous-échantillonnage fe=1000 Hz fe=500 Hz C=2
Séance 1 : Présentation du cours SSII Page 10 Extrait 7 : compression par quantification Q=2/256 Q=2/8 C=8/3
Séance 1 : Présentation du cours SSII Page 11 Extrait 8 : Filtrage numérique d’un signal discret 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 abscisse, le temps En ordonnée, la fréquence e y
Séance 1 : Présentation du cours SSII Page 12 Extrait 9: passer du son à l’image numérique x y 0 L H y ordonnée Y lignes !! x abscisse X colonnes ! Im(x,y) t D s(t)
Séance 1 : Présentation du cours SSII Page 13 Extrait 10 : filtrage numérique d’une image 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 SSII Page 14 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 SSII Page 15 Extrait 10 : Filtre passe bande avec Matlab % 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, ,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; 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.wavpiano.wavpianofiltre.wav En abscisse, le temps En ordonnée, la fréquence
Séance 1 : Présentation du cours SSII Page 16 Extrait 9 : bancs de filtres, compression avec pertes h1h1 h2h2 … hMhM … On code les signaux yi, i=1..M selon leur importance ou énergie Bbc.wav Etage de compression Banc de lissage suréchantillonnage Étage sous- échantillonneur Banc de filtres … … M*h M M*h 2 M*h 1 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 SSII Page 17 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 bit 1/8 8 8