Dut-rt Trc1 Ploytp

download Dut-rt Trc1 Ploytp

of 13

description

kiki

Transcript of Dut-rt Trc1 Ploytp

  • 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)

    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)

    A- 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 pi t), connu toutes les 0.1s, entre 0s t > 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) pour t0 donn % s0=interpol(t,s,Te,N)

    % 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

    N valeurs possibles.

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

    Continu(analogique)

    Niveaux de dcisionpas de quantification

    Discret(numrique)

    Un codage sur N bits permet dutiliser 2N

    niveaux de dcision, il y a donc 2N-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 :

    Qs y s

    b

    y+

    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 :

    Il est souvent commode de lexprimer en dcibels :

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

    Soit en dcibels :

    RSB = Puissance du signalPuissance du bruit

    RSBdB = 10 . log10Puissance du signalPuissance du bruit

    RSB = valeur efficace du signal( )2

    valeur efficace du bruit( )2

    RSBdB = 10 . log10 valeur efficace du signal( )2valeur efficace du bruit( )2

    RSBdB = 20 . log10 valeur efficace du signalvaleur 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

    efficace est :

    do :

    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 remarquez-vous ?

    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.

    Veff( )2 = 1T

    s2 t( )

    0

    T

    dt

    Ueff( )2 = 1N

    uk2

    k= 0

    N

    Ueff = 1N

    uk2

    k= 0

    N

  • 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