Vous êtes sur la page 1sur 2

Anne 2012-2013 e Wn bande passante du ltre (frquence haute de la bande e passante pour un passe-bas ; frquence basse de la bande e passante

e pour un passe-haut ; frquences basse et haute e de la bande passante pour un passe-bande ; frquences e basse et haute de la bande coupe pour un coupe-bande). e Les frquences de Wn sont normalises par rapport ` la e e a frquence de Nyquist. e Rp attnuation maximale (en dB) dans la bande pase sante. Rs attnuation minimale (en dB) dans la bande coupe. e e 3.3.5 Estimation de lordre des ltres

Universit Paul Sabatier e subplot(1,2,2); plot(f(1:N/2),abs(X(1:N/2))); xlabel(frquence f), ylabel(X(f)); e


300 1 0.8 0.6 250

Anne 2012-2013 e

Universit Paul Sabatier e

Matlab et le traitement du signal


N lments (signal de dure ee e lui est associ est : e et syst`mes e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 4 4 >> t = (0:N-1)/fe;
N fe ).

Le vecteur des temps qui

Table des mati`res e


1 Reprsentation des signaux e 1.1 Temps . . . . . . . . . . . 1.2 Autocorrlation . . . . . . e 1.3 Fonction de transfert . . .

0.2 0

x(f )

0.4

x(t)

200

150

0.2 0.4 0.6 0.8 1 0 0.02 0.04 0.06 0 0 2000 4000 50 100

1.2

Autocorrlation e

2 Reprsentations frquentielles e e 2.1 Signaux . . . . . . . . . . . . . . . . . . . . 2.2 Syst`mes . . . . . . . . . . . . . . . . . . . e 3 Filtrage et synth`se de ltres e 3.1 Filtrage . . . . . . . . . . . . . . . . . . . . 3.2 Synth`se ltres RIF . . . . . . . . . . . . . e 3.2.1 Troncature de la Rp. Impuls. . . . . e 3.2.2 Echantillonnage de la Rp. en Frq. e e 3.2.3 Moindres Carrs . . . . . . . . . . . e 3.2.4 Mthode de Rmez . . . . . . . . . . e e 3.3 Synth`se de ltres RII . . . . . . . . . . . . e 3.3.1 Synth`se de ltres analog. passe-bas e 3.3.2 Transformation des frquences . . . e 3.3.3 Discrtisation des ltres . . . . . . . e 3.3.4 Synth`se compl`te des ltres . . . . e e 3.3.5 Estimation de lordre des ltres . . . 4 Exemple

Lestimation de lautocorrlation dun signal ou de lintere corrlation de deux signaux de longueur N peut tre eece e tue avec la fonction xcorr : e >> Cxy = xcorr(x,y,option); Cest un vecteur de longueur 2N-1 tel que le Ni`me le ee ment corresponde a la corrlation en 0. si option nest pas ` e donn, xcorr estime la corrlation non normalise : e e e
un Cx,y [n] = N n k=1

temps t

frquence f

Enn, Matlab, poss`de des fonctions permettant destimer e lordre minimal ncessaire pour la construction dun ltre e passe-bas ou passe bande entrant dans un gabarit donn : e >> [n, Wn] = buttord(Wp,Ws,Rp,Rs) ; >> [n, Wn] = cheb1ord(Wp,Ws,Rp,Rs) ; >> [n, Wn] = ellipord(Wp,Ws,Rp,Rs) ; Wp bande passante. Ws bande coupe. e Rp attnuation maximale (en dB) dans la bande pase sante. Rs attnuation minimale (en dB) dans la bande coupe. e e n ordre du ltre. Wn frquence propre du ltre numrique. Pour un ltre e e passe-bas Wp et Ws sont les frquences hautes de la bande e passante et basse de la bande coupe. Pour un ltre e passe-bande, Wp contient les frquences basse et haute e de la bande passante et Ws les frquences haute et basse e de la bande coupe. e Attention, les frquences sont normalises par rapport a e e ` e la frquence de Nyquist = f2 . e Pour les ltres passe-haut et coupe-bande, leur ordre peut tre calcul de la mme faon que pour les ltres passe-bas e e e c et passe-bande en renversant les frquences de 0 vers 1 et e de 1 vers 0. (e.g. lordre dun passe-haut Wp=0.2, Ws=0.1 est le mme que celui dun passe-bas Wp=0.8, Ws=0.0). e

% % % % %

Synth`se du filtre passe bas e (RIF moindres carrs) e Bande passante [0, 200 Hz] Bande coupe [400Hz, 4000Hz] e Rponse impulsionnelle e h = firls(39,[0 500 750 Fe/2]/Fe*2,[1 1 0 0]); % Rponse en frquence e [H, freq] = freqz(h,1,512,Fe); % Affichage subplot(1,2,1); plot(h); xlabel(chantillon), ylabel(h[n]); e subplot(1,2,2); plot(freq,20*log10(abs(H))); xlabel(frquence f), ylabel(H(f)); e
0.16 0.14 0.12 0.1 0 20

x [k]y[k + n] si n 0 Cx,y [n] si n < 0

h[n]

0.08 0.06 0.04 0.02 0

h(f )

20

40

Matlab et sa bo a outils Signal Processing, contiennent te ` un grand nombre de fonctionnalits concernant : e la gnration de signaux ; e e la reprsentation des signaux (Transforme de Foue e rier Discr`te FFT, Transforme en Cosinus Discrets e e DCT. . . ) ;
2000 4000

option peut prendre les valeurs : biased pour lestimateur biais de la corrlation : e e 1 un b Cx,y [n] = Cx,y [n]. N unbiased pour lestimateur non biais de la corrlae e tion : 1 nb Cx,y [n] = C un [n]. |N n| x,y coeff pour laquelle la corrlation est normalise de e e c faon a ce que Cx,y (0) = 1. c `

60

1.3

Fonction de transfert

80

0.02 0.04 0 20 40 100 0

chantillon

frquence f

Exemple

% Filtrage du signal y = filter(h,1,x); Y = fft(y); % Affichage subplot(1,2,1); plot(t,y); xlabel(temps t), ylabel(y(t)); subplot(1,2,2); plot(f(1:N/2),abs(Y(1:N/2))); xlabel(frquence f), ylabel(Y(f)); e
300 1 0.8 0.6 250

lanalyse des signaux (statistique, analyse spectrale paramtrique. . . ) ; e la reprsentation des syst`mes linaires (fonction de e e e transfert, ples et zros, espace dtat. . . ) ; o e e lanalyse des syst`mes (rponse impulsionnelle, rponse e e e en frquence. . . ) ; e le ltrage et la synth`se de ltres. e Nous nous intresserons ici uniquement aux fonctions utiles e pour la reprsentation frquentielle des signaux et des syse e t`mes linaires et aux fonctions de ltrage et de synth`se e e e de ltres.

La fonction de transfert (transforme de Laplace de la re e ponse impulsionnelle) dun ltre analogique scrit sous e la forme : b0 sM + b1 sM1 + + bM1 s + bM F (s) = N s + a1 sN 1 + + aN 1 s + aN ou sous la forme : F (s) == K
M k=1 (s zk ) . N k=1 (s pk )

y(f )

y(t)

% Gnration du signal e e Fe = 8e3; N = 512; t = (0:N-1)/Fe; x = square(2*pi*Fe*t/50); % TFD sur [0, Fe] X = fft(x); f = (0:N-1)/N*Fe; % Affichage subplot(1,2,1); plot(t,x); xlabel(temps t), ylabel(x(t));

La fonction de transfert (transforme en z de la re e ponse impulsionnelle) dun ltre numrique scrit quant e e a elle : ` F (z) = b0 + b1 z 1 + + bM z M =K 1 + a1 z 1 + + aN z N
M k=1 (z N k=1 (z

0.4 0.2 0 0.2 0.4 0.6 0.8 1 0 0.02 0.04 0.06

200

1
1.1
2000 4000

150

Reprsentation des signaux et e syst`mes e


Temps

100

50

0 0

temps t

frquence f

Un signal numrique chantillonn a la frquence fe se ree e e` e prsente naturellement dans Matlab, comme un vecteur de e Herv Carfantan e

Ces syst`mes peuvent donc se reprsenter dans Matlab, e e avec les vecteurs du dnominateur a=[1, a1 ,...aN ] et e du numrateur b=[b0, b1 ,...bM ] ou par le gain K et e les vecteurs des poles p=[p0, p1 ,...pM ] et des zros e z=[z0, z1 ,...zM ]. Un ltre numrique a rponse impulsionnelle nie (RIF) e ` e ayant son dnominateur a 1 sera enti`rement caractris e ` e e e par sa rponse impulsionnelle (h = b). e http://userpages.irap.omp.eu/~hcarfantan/

pk )

zk )

Herv Carfantan e

http://userpages.irap.omp.eu/~hcarfantan/

Anne 2012-2013 e

2 3.2.1

Universit Paul Sabatier e Troncature de la Rponse Impulsionnelle e

Anne 2012-2013 e m est le vecteur des amplitudes de la rponse en frquence e e du ltre idal aux frquences fn. e e Voir laide en ligne pour plus de dtails. . . e 3.2.4 Mthode de Rmez e e

3 % Lowpass -> Bandpass

Universit Paul Sabatier e (p


1 p B ( 0

2
2.1

Reprsentations frquentielles e e
Signaux

0 p ))

La Transforme de Fourier Discr`te dun signal de N points e e est calcule par un algorithme rapide (Fast Fourier Transe form FFT) : >> X = fft(x) ; Cest galement un signal (` valeurs complexes) de N points e a N e chantillonns ` la frquence fe . Le vecteur des frquences e e a e qui lui est associ est : e >> f = (0:N-1)/N*fe; Rappelons que ce signal est de priode fe ; on peut le e e a a reprsenter sur lintervalle [ fe , f2 ] grce ` la fonction e 2 fftshift (qui ne fait quun dcalage des vecteurs et aucun e calcul de t) : >> Y = fftshift(X); Le vecteur des frquences qui lui est associ est alors : e e >> f = (0:N-1)/N*fe - fe/2;

La fonction fir1 synthtise un ltre RIF simple (dni e e par une seule bande passante ou coupe) par troncature et e fentrage de la rponse impulsionnelle du ltre numrique e e e idal : e >> h = fir1(n,fn,type,window) ; n est lordre du ltre (longueur de la RI moins un). Les frquences fn sont normalises par rapport ` la fre e a e quence de Nyquist (fn= f / fe , 0 fn 1). fn indique la 2 frquence de coupure pour les passe-bas et passe-haut, e et les frquences de coupures basse et haute pour les e passe-bande et coupe-bande. La cha de caract`re type prcise le type de ltre. ne e e high pour passe-haut, stop pour coupe-bande, type omis pour les passe-bas et passe-bande. Le vecteur window de longueur n+1, correspond ` la fea ntre prise en compte (par dfaut fentre de Hamming). e e e Les fonctions Matlab, disponibles pour crer des fee ntres sont : bartlett, blackman, boxcar (rectangue laire), chebwin (chebychev), Hamming, hanning, kaiser, triang (triangulaire). Voir laide en ligne pour plus de dtails. . . e 3.2.2 Echantillonnage de la Rponse en Fre e quence

>> [bt, at] = lp2bp(b,a,W0,Bw) ; % Lowpass -> bandstop

>> [bt, at] = lp2bs(b,a,W0,Bw) ;

(p B

p 0

1 0 + p

La fonction remez synthtise un ltre RIF approchant au e mieux, au sens du minimax (norme L ), la rponse en e frquence du ltre idal. e e >> h = remez(n,fn,m) ; Les param`tres sont les mmes que pour firls. e e La fonction remezord permet de plus destimer lordre ne cessaire a la mthode de remez pour construire un ltre de ` e dviation maximale donne. e e Voir laide en ligne pour plus de dtails. . . e

Si b est la pulsation basse de coupure et h la pulsation haute de coupure, alors la pulsation propre du ltre 0 et la largeur de bande du ltre sont donns par : B = h b e et 0 = h b . 3.3.3 Discrtisation des ltres e

3.3

Synth`se de ltres RII e

Les principales mthodes de synth`se de ltres a rponse e e ` e impulsionnelle innie (RII) proc`dent par discrtisation e e dun ltre analogique. 3.3.1 Synth`se de ltres analogiques passe-bas e

2.2

Syst`mes e

La discrtisation des ltres analogiques permet dobtenir e les coecients des ltres numriques a partir de ceux du e ` ltre analogiques. Deux techniques sont disponibles a cette ` n dans Matlab : Discrtisation par invariance de la rponse impulsione e nelle : >> [bd, ad] = impinvar(b, a, fe) ; O` fe est la frquence dchantillonnage. u e e Discrtisation par transformation bilinaire : (approxie e 1 2 mation p Te 1z1 ) 1+z

La rponse en frquence dun syst`me analogique est done e e ne par : e >> H=freqs(b,a,w); H est la rponse en frquence aux pulsations donnes dans e e e le vecteur w (en radian par seconde). La rponse en frquence dun syst`me numrique est done e e e ne par : e >> H=freqz(b,a,f,fe); H est la rponse du syst`me aux frquences donnes dans le e e e e vecteur f (en Hertz) et fe la frquence dchantillonnage. e e Voir laide en ligne pour plus de dtails. . . e Remarque : Matlab, travaille en pulsation pour les syst`mes analogiques et en frquence (et mme en frquence e e e e normalise) pour les syst`mes numriques. e e e

Les fonctions suivantes renvoient les ples (p) zros (z) et o e gain (k) des ltres analogiques passe-bas normaliss (pule sation de coupure unit) : e % Butterworth >> [z, p, k] = buttap(n) ; % Chebychev % Oscillations infrieures ` Rp dB e a % en bande passante >> [z, p, k] = cheb1ap(n, Rp) ; % Oscillations au de` de Rs dB ca % en bande coupe e >> [z, p, k] = cheb2ap(n, Rs) ; % Elliptique : oscillations infrieures e % ` Rp dB en bande passante et au de` a ca % de Rs dB en bande coupe e >> [z, p, k] = ellipap (n, Rp, Rs) ; Pour obtenir une reprsentation de ces ltres analogiques e en terme des numrateurs et dnominateurs de leur fonce e tion de transfert (transforme de Laplace de leur rponse e e impulsionnelle) : >> [b, a] = zp2tf(z,p,k) ; 3.3.2 Transformation des frquences e

La fonction fir2 synthtise un ltre RIF par chantillone e nage de la rponse en frquence du ltre analogique idal e e e et fentrage de la rponse impulsionnelle du ltre ainsi e e construit. >> h = fir2(n,fn,m,window) ; n est lordre du ltre (longueur de la RI moins un). fn est le vecteur des frquences normalises (0 fn 1) e e dnissant le ltre idal comme linaire par morceaux. e e e m est le vecteur des amplitudes, aux frquences donnes e e par fn, de la rponse en frquence du ltre idal. e e e Voir laide en ligne pour plus de dtails. . . e 3.2.3 Moindres Carrs e

>> [bd, ad] = bilinear(b, a, fe) ; Attention, la transformation bilinaire provoque une de e formation des frquences (soit fa la frquence analogique e e et fn la frquence numrique) : e e fa fe arctan( ) fn = fe fa =

et

fe fn tan( ). fe Il est donc ncessaire de pr-dformer le gabarit du ltre e e e analogique pour obtenir le ltre numrique dsir. e e e Synth`se compl`te des ltres e e

3.3.4

Matlab, propose des fonctions dans lesquelles la synth`se e compl`te du ltre numrique est eectue : e e e % Butterworth >> [b, a] = butter(n,Wn,type) ; % Chebychev % Oscillations de Rp dB en bande % passante >> [b, a] = cheby1(n,Rp,Wn,type) ; % Oscillations au de` de Rs dB ca % en bande coupe e >> [b, a] = cheby2(n,Rs,Wn,type) ; % Elliptique : oscillations de Rp dB en % bande passante et au de` de Rs dB en ca % bande coupe e >> [b, a] = ellip(n,Rp,Rs,Wn,type) ; Ces fonctions donnent directement les coecients a et b du ltre numrique a partir de : e ` n ordre du ltre. http://userpages.irap.omp.eu/~hcarfantan/

3
3.1

Filtrage et synth`se de ltres e


Filtrage
La fonction firls synthtise un ltre RIF approchant au e mieux, au sens des moindres carrs (norme L2 ), la rponse e e en frquence du ltre analogique idal. e e >> h = firls(n,fn,m) ; n est lordre du ltre (longueur de la RI moins un). fn est le vecteur des frquences normalises (0 fn 1) e e dnissant le ltre idal. e e Attention, contrairement ` fir2, ces frquences sont a e prises deux par deux dans firls, permettant ainsi de dnir des bandes de frquences ou le ltre idal nest e e e pas prcis (bandes de transition). e e http://userpages.irap.omp.eu/~hcarfantan/

Le ltrage du vecteur x par le ltre numrique dni par e e a et b est eectu par : e >> y = filter(b,a,x); Remarque : Les conditions initiales de lquation de rcue e rence peuvent tre donnes en entre de la fonction filter. e e e Elles se calculent par la fonction filtic.

3.2

Synth`se ltres RIF e

Pour transformer les ltres passe-bas en tout type de ltres : p % Lowpass -> Lowpass (p 0 ) >> [bt, at] = lp2lp(b,a,W0) ; % Lowpass -> Highpass (p >> [bt, at] = lp2hp(b,a,W0) ;
0 p )

Il existe direntes mthodes de synth`se de ltres RIF e e e approchant un ltre idal : e Herv Carfantan e

Herv Carfantan e