Sie sind auf Seite 1von 13

IUT-R&T 2ime Anne

Universit Aix-Marseille II

Traitement Numrique du Signal

TP 2ime Anne

F. Briolle

Les compte-rendus des TP sont individuels.


Ils sont nots et comptent pour de la note de lexamen.
Vous devez reproduire les figures que vous observez, sans oublier
de faire figurer les units (temps(s), frquence (Hz), amplitude,
etc).

IUT-R&T 2ime Anne


Traitement Numrique du Signal
TP n1 : chantillonnage
Pour respecter le thorme dchantillonnage, la frquence dchantillonnage Fe doit tre suprieure 2 fois la
frquence maximale du signal, Fmax.
Nous illustrerons les effets lis au sous chantillonnage du signal.
Shannon a montr que, si Fe2*Fmax, on ne perd pas dinformation en chantillonnant le signal et quil est
possible de connatre la valeur du signal analogique linstant t partir des chantillons.
Nous utiliserons ce thorme en sur chantillonner un signal dun facteur 4 : il faudra calculer la valeur des
chantillons aux instants n*Te/4, n*Te/2, n*3Te/4 pour 0 n N (N : nb dchantillons du signal)

1- Sous chantillonnage
Raliser une dmonstration mettant en vidence les effets du sous chantillonnage.
Les signaux :
Vous pourrez utiliser une sinusode, un chirp (une sinusode dont la frquence varie en
fonction du temps : voir la commande CHIRP) un signal rel (parole, piano,
clarinette, etc.. voir les commandes : LOAD, WAVREAD)
Pour reprsenter un signal s chantillonn la frquence Fe en fonction du temps :
>> N=length(s)
% nb dchantillons du signal
>> T=(N-1)/Fe
% dure du signal
>> t=0 : 1/Fe :T ;
% vecteur reprsentant le temps
>> plot(t,s)
Pour la dmonstration, vous pourrez :
faire couter le signal
>> soundsc(s,Fe)

A-

>>
>>
>>
>>

reprsenter le module y de la FFT du signal


y = abs(fftshift(fft(s)));
deltaf = Fe/N
f = -Fe/2 : deltaf : Fe/2-deltaf;
plot(f,y)

utiliser une reprsentation temps-frquence (commande SPECGRAM)

sans filtrage passe-bas


Si on sous chantillonne le signal, en prenant un point sur 4 par exemple, les
frquences hautes du signal vont se replier.
Illustrer le repliement de spectre li au sous chantillonnage

B-

avec filtrage passe-bas


Si on ralise un filtrage passe-bas pour liminer les frquences hautes du signal avant
de sous chantillonner le signal, on respecte le thorme de Shannon et on nobserve
pas de repliement de spectre.
Utiliser la fonction DECIMATE pour illustrer cette proprit.

2- Sur chantillonnage
A- Calcul dun point
Montrer quil est possible de calculer exactement la valeur dun signal tout
instant t partir de ses chantillons.
La dmonstration sera ralise en utilisant un signal dfini analytiquement, donc
connu tout instant t ,
Par exemple s(t)= sinus(2 t), connu toutes les 0.1s, entre 0s t <20s ;
>> t=0 :1/10 :19.9;
>> s=sin(2*pi*t) ;
a) En utilisant le thorme de Shannon, on calculera avec le programme INTERPOL,
la valeur du signal pour t0=8.2456872s, (t0 est compris entre 8.2s et 8.3s).
b) On comparera ce rsultat avec le rsultat obtenu par interpolation linaire entre la
valeur du signal connu linstant 8,2s (chantillon s[83]) et linstant 8.3s (chantillon
s[84]).
c) les rsultats obtenus par interpolation seront compars avec la valeur exacte du
signal s(t0) = sinus(2*pi*t0).
Raliser un programme de dmonstration illustrant le sur chantillonnage.

B- Sur chantillonnage dun signal


Adapter le programme INTERPOL pour raliser le sur chantillonnage du signal dun
facteur 4.
Raliser un programme de dmonstration.

Programme INTERPOL
% calcul de l'interpolation : on calcule s(t)
% s0=interpol(t,s,Te,N)
%
%
%
%
%
%

pour t0 donn

s0 : valeurs s(t0) calcules


t0 : un vecteur qui contient les instants o on va calculer le signal
t0 =[t0 t1 t2] ; t0 peut se rduire une seule valeur : t0
s : vecteur contenant les chantillons du signal
Te : priode dchantillonnage du signal
N : nb dchantillons utiliss pour le calcul

% cette interpolation est ralise en appliquant le thorme de Shannon


% s(t0)=sum[s(n)* sinc(pi*Fe(t0-nTe)]
% on fait varier n autour de k=floor(t/Te)
% Pour le calcul de s(t0) on utilise les N chantillons qui prcdent
% s[k] et les N chantillons suivants
%-------------------------------------------------------------------function [f]= interpol(t0,s,Te,N)
close all
%t0 est un vecteur : on peut faire le calcul pour t=[t0 t1 t2 ]
% ou une seule valeur t0
u=length(t0);
%on ajoute s N zeros au dbut et N zros la fin, car
%l'interpolation se fait en utilisant 2*N+1 chantillons autour de s(k)
ya1=[zeros(1,N) s zeros(1,N)];
%calcul des 2*N+1 poids
n=-N:N;

% pour chaque instant tj de calcul


for j=1:u
% position de tj dans l'ensemble des chantillons {tn=(n-1)Te}
k=floor(t(j)/Te);
% calcul des 2*N+1 poids
%mise a zros du vecteur p
p=zeros(1,2*N+1);
%calcul des poids
a=(t(j)-k*Te)/Te
p=sinc((n-a))
%on calcule s(j)= somme pondre des 2*N+1 chantillons slectionns
%autour de s(k)
s1=ya1(k+1:k+2*N+1);
s(j)=sum(s1.*p)/sum(p);
end

IUT-R&T 2ime Anne


Traitement Numrique du Signal
TP n2
Conversion Analogique Numrique : quantification
1 Objectifs
La conversion analogique-numrique met en uvre deux processus conjoints :
- Lchantillonnage, ou prlvement rgulier dchantillons du signal,
- La quantification, ou reprsentation numrique des chantillons.
Si lon respecte les conditions nonces par le thorme de Shannon, lchantillonnage ne produit pas de perte
dinformation : on peut reconstruire le signal de dpart partir des chantillons.
Par contre, comme nous allons le voir au cours de cette sance, la quantification des chantillons produit toujours
erreur, donc une perte dinformation, que nous allons caractriser.

2 Quantification
A- 2.1 Rappels
(Revoir galement vos cours sur la conversion analogique-numrique)
La quantification est lopration qui affecte une valeur numrique code en binaire un chantillon donn. La
valeur numrique qui est affecte lchantillon est choisie parmi un ensemble de valeur possibles, dont le
nombre dpend de la rsolution (ou nombre de bits) du convertisseur.

Rsolution du convertisseur : N bits => 2 valeurs possibles.


Les valeurs possibles pour les chantillons sont les niveaux de quantification. Lintervalle entre deux niveaux de
dcision est le pas de quantification.

Niveaux de dcision
pas de quantification

Discret

Continu
(analogique)

(numrique)

Un codage sur N bits permet dutiliser 2

niveaux de dcision, il y a donc 2

-1 intervalles.

B- 2.2 Quantification dun signal sinusodal


Crer sous OCTAVE un vecteur de 1000 lments, reprsentant le temps. Nous choisissons une priode unit :

t = linspace(0,1,1000) ;
Crer ensuite un vecteur reprsentant un signal sinusodal, damplitude et de frquence unit :

s = sin(2*pi*t) ;
Crer maintenant une fonction ralisant la quantification :
Crer un fichier numerise.m contenant le code suivant :
function y = numerise(s,N)
q = 2/(2^N);
y = q * floor((s*(1-q)/q) + 0.5) ;
Cette fonction renvoie dans le vecteur y les chantillons du vecteur s quantifis sur N bits.

C- Question 1
Observez le signal quantifi y pour N valant successivement 16, 8, 4, et 2 bits. Que remarquez-vous ?

3 Caractrisation de lerreur de quantification


D- 3.1 Mthode
Pour caractriser lerreur introduite par la quantification, nous allons utiliser un modle de bruit additif. Avec ce
modle, on considre que le signal quantifi est le signal original auquel le processus de quantification a rajout
un bruit. Le schma quivalent est :

b
y = Q(s)

y=s+b

Le bruit de quantification est donc donn par :


b=s-y;

E- 3.2 Rapport signal sur bruit


Pour caractriser lerreur de quantification, nous utilisons le rapport signal sur bruit, dfini par :

RSB =

Puissance du signal
Puissance du bruit

Il est souvent commode de lexprimer en dcibels :

Puissance du signal
RSBdB = 10 . log10

Puissance du bruit
On peut lexprimer partir de la valeur efficace du signal, et celle du bruit :

RSB =

(valeur efficace du signal )2


2
(valeur efficace du bruit )

Soit en dcibels :

RSBdB = 10 . log10

(valeur efficace du signal )2


(valeur efficace du bruit )2

valeur efficace du signal

RSBdB = 20 . log10
valeur efficace du bruit

F- 3.3 Valeur efficace dun signal priodique


La valeur efficace dun signal continu s(t), priodique de priode T, est dfinie par :
Pour un signal chantillonn, dont la priode est N points, dfini par les chantillons du vecteur u, la valeur

(Veff )

(Ueff )2

1 2
=
s (t ) dt
T 0 N
1
=
u2
N k= 0 k

efficace est :
do :

Ueff =

1 N 2
u
N k= 0 k

G- Question 2
2.A : Crer une fonction octave RSBdB qui renvoie le rapport signal sur
bruit exprim en dcibels pour deux vecteurs dchantillons. La syntaxe
dappel de cette fonction sera :
r = RSBdB(s,b) ;
avec :
s : le vecteur contenant les chantillons du signal
b : le vecteur contenant les chantillons de bruit
r : le rapport signal sur bruit en dcibels
Conseil :
Vous pouvez construire dabord une fonction Veff qui renvoie la valeur efficace pour un vecteur
dchantillons :

v = Veff (u) ;
La fonction RSBdB utilisera alors la fonction Veff.
Donnez le code source de ces fonctions et vrifier ensuite vos fonctions.

2.B : Quelle est la valeur efficace du signal contenu dans le vecteur s ?

2.C : Quelle est la valeur renvoye par RSBdB(s,10*s) ?


2.D : Justifier ces rsultats.

H- Question 3
3.A : Observez le bruit de quantification pour N valant successivement 16, 8, 4 et 2 bits. Que remarquezvous ?
3.B : Crer un vecteur reprsentant deux priodes dun signal sinusodal damplitude unit:

s = sin(2*pi*2*t) ;
Mme question quen 3.A pour deux priodes de signal sinusodal.
3.C : A laide de la fonction RSBdB, tudier la relation entre N et le rapport signal sur bruit. (Tracer la
relation RSB = f(N)). Justifier le rsultat.

4 Quantification dun signal audio


Nous allons maintenant caractriser de manire qualitative lerreur de quantification pour le cas dun signal
audio chantillonn 44100 Hz (norme CD). Cette caractrisation sera ralise sur deux extraits sonore :
Un extrait de parole (contenu dans le fichier parole.wav)
Une note de piano (contenu dans le fichier piano.wav)
En utilisant les fonctions wavread, et sound, charger en mmoire les chantillons contenus dans les fichiers
piano.wav et parole.wav, puis couter les sons originaux.
Utiliser ensuite votre fonction numerise pour crer quantifier ces signaux avec N valant successivement 16,
15, 14, etc. bits. Ecoutez le rsultat chaque fois.

I- Question 4
A partir de quelle valeur de N remarquez-vous une dgradation du signal de parole ?
Mme question pour la note de piano.

IUT-R&T 2ime Anne


Traitement Numrique du Signal
TP n 3
Reprsentation Spectrale
e

Objectif : tudier les diffrents paramtres (frquence dchantillonnage, dure dobservation) qui peuvent
influencer la qualit de la reprsentation temporelle et frquentielle des signaux. On sintresse la rsolution
temporelle ou frquentielle de ces reprsentation (cart entre deux points)
1- Reprsentation temporelle et frquentielle
a) Construire le signal s=cos(2*pi*t), sachant que la frquence
dchantillonnage Fe =10Hz et la dure dobservation de ce signal est
T = 8.3s.
Reprsenter le vecteur s en fonction du temps.
Que vaut la rsolution temporelle de ce signal (cart entre deux chantillons du
vecteur reprsentant le signal en fonction du temps) ?
Que valent la priode et la frquence de ce signal ?
b) Reprsenter le signal dans le domaine frquentiel.
Pour cela :
on calculera le module de la Transforme de Fourier Discrte, norme en
fonction du nb dchantillons du signal :
> N=length(s);
> y=(1/N)*abs(fft(s));
on calculera le vecteur f, reprsentant laxe des frquences :
> Fe=10 ;
> Te = 1/Fe ;
> df = 1/(N*Te) ;
> f=0:df:Fe-df;
et on reprsentera y en fonction de f:
> plot(f,y)
Que vaut la rsolution frquentielle de ce signal (cart entre deux chantillons
du vecteur reprsentant le signal en fonction de la frquence) ?
2- Influence de la frquence dchantillonnage
a) Construire le signal s4=cos(2*pi*t), sachant que la frquence
dchantillonnage Fe =4Hz et la dure dobservation de ce signal est T = 8.3s.
Construire le signal s100=cos(2*pi*t), sachant que la frquence
dchantillonnage Fe =100Hz et la dure dobservation de ce signal est
T = 8.3s.
Comparer les reprsentations temporelles des signaux chantillonn 10 Hz,
4 Hz et 100 Hz. Que valent les rsolutions temporelles ?
b) Comparer les reprsentations frquentielle de ces trois signaux.
Que vaut la rsolution frquentielle.
Nota : Les reprsentations frquentielles seront normes , cest--dire divise
par le nombre de points du signal analys.
3- Influence de la dure dobservation
a) Construire le signal s1=cos(2*pi*t), sachant que la frquence
dchantillonnage Fe =10Hz et la dure dobservation de ce signal est T = 83s.
b) Reprsenter sur une mme figure la reprsentation frquentielle norme du
signal s1 observ sur 83s et celle du signal s observ sur 8.3s.
Que valent les rsolution frquentielle de ces deux reprsentations.

4- Technique du zro padding


Pour amliorer la rsolution frquentielle du signal s qui une dure de 8.3 s, on
prolonge artificiellement ce signal en introduisant des zros. On construit ainsi un
vecteur :
> z=[s zeros(1,p)] ;
a)

Quel est le nombre p de zros quil faut introduire pour que z ait une dure de
83s ?
b) Reprsenter sur une mme figure les reprsentations temporelle des trois
signaux : le signal s de dure 8.3s (question 1) , le signal z (question 4), le
signal s1 de dure 83s (question 3). Commentaires.
c) Reprsenter sur une mme figure les reprsentations frquentielle normes de
ces trois signaux. Commentaires.

5- Rsolution frquentielle
Reprendre la question 4 avec la signal :
> y = cos(2*pi*t) + cos(2*pi*1.1*t)
a) Quelle est la dure minimale dobservation de ce signal pour sparer les deux
frquences 1 Hz et 1.1 Hz
b) Le signal est observ sur 8.3 s ; puis sur 83 s ; enfin le signal, observ pendant
8.3s, est artificiellement prolonge 83s par lajout de zros. Etudier les
diffrentes reprsentations frquentielle normes. Lajout de zros pour
prolonger la dure dobservation est-il efficace ?

IUT-GTR 2ime Anne


Traitement du Signal
TP n4
Reprsentation spectrale

Objectif : application de lanalyse spectrale un signal de parole rel. Mise en vidence des caractres
pertinents de lanalyse.

Application un signal de parole


Charger en mmoire le signal de parole parole.mat, qui reprsente la phrase le
metteur en scne termine le scnario prononc par un locuteur masculin.
> load parole.mat
> plot(y)
> soundsc(y,Fs)

a)

Reprsenter le signal de parole en fonction du temps, sachant que la frquence


dchantillonnage Fs est gale 44 100 kHz. Reprer, sur la reprsentation
temporelle les diffrents sons qui composent le phrase. Pour cela, vous
utiliserez la commande sound(x,Fs) o x est une partie du vecteur y, choisi
entre lchantillonA et lchantillonB : x = y(chantillonA : chantillonB)
b) Construire les signaux correspondant aux parties notes en gras dans la phrase :
le metteur en scne termine le scnario.
Les signaux le et mi reprsentent un son vois (les voyelles e et i), le
signal ss une sifflante (la consonne s).
> le=y(1905 :6000) ;
> ss=y(25000 :29096) ;
> mi=y(45001 :49096) ;

b) Analyser les signaux le et mi .


Reprsenter les signaux en fonction du temps. Quelle est leur dure ?
Reprsenter ces signaux en fonction de la frquence. Quelle vaut la rsolution
frquentielle ? Examiner cette reprsentation pour 0<f<500Hz (les 50 premiers
points). Que valent les deux frquences f1 et f2 caractristiques de ces
signaux (ces frquences sont appeles formants) ? Calculer le rapport f2/f1.
Commentaires.
c)

Analyser le signal ss
Mme dmarche que pour les signaux prcdents. Ce signal ne comporte pas
de frquences caractristiques. On sintressera la zone de frquence
3000Hz<f<13000Hz.

d) Spectrogramme
Une technique danalyse temps-frquence, le spectrogramme, permet davoir
une reprsentation frquentielle du signal en fonction du temps. Pour cela, des
Transformations de Fourier sont ralises sur des blocs de 256 chantillons,
cest--dire sur des dures T = 256/44100 = 5.8 ms. Le signal ayant une dure
denviron 1.8s, on calcule environ 300 Transformes de Fourier pour les
instants [0, 5.8ms], [5.8ms, 11.6ms], . [1.8s, 1.8058s].
Chaque module de Transforme de Fourier est reprsente en fonction du
temps.
Utiliser la commande specgram pour reprsenter le spectrogramme de la phrase
le metteur en scne termine le scnario .
> specgram(y,256,Fs) ;
Laxe horizontal reprsente le temps, entre 0s et 1.8s, et laxe vertical
reprsente les frquences, entre 0 Hz et 22 kHz. Commenter cette
reprsentation. Reprer les instant o des sifflantes sont prononces.

Das könnte Ihnen auch gefallen