Vous êtes sur la page 1sur 2

Analyse et Filtrage des signaux numriques

M1 TRM/ST (2011/2012)

TP n5: TZ et filtres numriques


I.Quelques fonctions utiles
Soit h(z) la transforme en z dun filtre numrique donn dont la dcomposition sous forme fraction
rationnelle est donne par :

s = filter(b, a, e) : filtre numriquement les donnes stockes dans le vecteur e avec le filtre dcrit la
fois par le vecteur b (coefficients du numrateur de h(z)) et le vecteur a (coefficients du dnominateur de
h(z)). Imposons au vecteur a de commencer par un 1. Notons que la fonction "filter" permet tout autant
de construire un filtre rcursif (RII) quun filtre non rcursif (RIF).
[h, ] = freqz((b, a, N, fe) : retourne N valeurs du gain complexe du filtre numrique chantillonn la
frquence fe (Hertz), dcrit par b et a. Ces valeurs sont stockes dans h et calcules pour N pulsations
mises dans . Les pulsations sont equi-espacs sur lintervalle [0,].
[h, t] = impz(b, a, N, fe) : retourne la rponse impulsionnelle du filtre numrique dcrit par b et a. La
rponse impulsionnelle est calcule en N instants stocks dans t et espacs de 1/fe, les valeurs de
rponse correspondante sont stockes dans h.
[b, a] = butter(n/2, f) : fournit les coefficients du filtre de Butterworth dordre n (pair de prfrence).
La bande passante du filtre doit tre comprise entre 0 et fe/2. Les bornes de cette bande passante, f1 et
f2, normalises par fe/2, sont stockes dans le vecteur f.
[b, a] = cheby1(n/2, Rp, f) : fournit les coefficients du filtre de Chebyshev dordre n, de bandepassante
f et de Rp dB dondulations dans la bande passante.
II.Exemples de programme tester
1. Trac du gain
Fe=1; n=1024; freq=[0:n-1]/n*Fe;
% fonction de transfert rationnelle
numer=[1 1]; denom=[1 -1.2 .7]; % denominateur
numerS=fft(numer,n); denomS=fft(denom,n);
gaincplx=numerS ./ denomS;
plot(freq,abs(gaincplx)), grid
% tranfert reel
set(gca,'xlim',[0 Fe/2])
2. Trac des poles
denom=[1 -1.2 .7]; % denominateur
poles=roots(denom)+j*eps; plot(poles,'x')
%cercle unite
cercle=exp(2*j*pi*[0:100]/100);
hold on, plot(cercle), hold off; axis('square')
3. Sortie dun filtre
% entre echelon unite
N=20; rectn=ones(1,N); tps=[0:N-1];
% reponse indicielle du filtre 1/(1-.5 z^(-1))
yn=filter(1,[1 -.5],rectn);
figure ; plot(tps,yn,'o')
n=0 :10 ;
num=[1 0]; den=[0.9 0.1 0.001];
%Rponse indicielle
y=dstep(num,den,length(n));
figure ; stem(n,y)
%Rponse impulsionnelle
y=dimpulse(num,den,n); figure ; stem(n,y)

Analyse et Filtrage des signaux numriques

M1 TRM/ST (2011/2012)

III. Exercices avec prparation


Exercice 1 : Taper et commenter le programme suivant
clc
clear all
b = [0.079 2*0.079 0.079]; %Numrateur
a = [1 -1.2 0.516]; %Dnominateur
N = 32; n=0:N-1;
delta = [1; zeros(N-1,1)];
h = filter(b, a, delta); % (ou impz(b,a);)
figure(1); stem(n,h);
L = 256;
[H,f] = freqz(b,a,L);
module = abs(H); phase = angle(H);
figure (2); plot(f,module);
figure (3); plot(f,phase);
[tau,f]=grpdelay(b,a,L);
figure (4); plot(f,tau);
figure (5); zplane(b,a);
%inverse de freqz
[num,den]=invfreqz(H,f, 2,2)
Exercice 2 : TZ et rcurrence linaires simple
On considre la rcurrence suivante : y(n)=x(n)x(n1) (diffrence du premier ordre). On
demande de dterminer (sur papier), puis de visualiser (sous Matlab) :
- La rponse impulsionnelle du systme
- Sa transforme en Z
- Ses ples et zros
- Lallure de sa rponse en frquence, vrifier que cette allure correspond bien la position
des ples et zros
- Quelle serait la sortie d'un tel filtre si l'entre tait constante (voir l'quation de
rcurrence)? Ceci correspond-il avec ce que l'on voit sur la rponse en frquence?
1 4
- Refaire le mme travail pour y(n)= x(n i )
5 i =0
Exercice 3 : Analyse de fonctions de transfert rationnelles par la TZ
Pour chacune des fonctions de transfert H(z) suivantes :

Dterminez et tracez les caractristiques suivantes du filtre associ (entre parenthses les
fonctions matlab utiliser):
- rponse impulsionnelle h (N=32) (filter(b,a,d))
- rponse frquentielle H (TFD dordre N=32) (freqz)
- zros et ples (zplane(b,a))
- le retard de groupe en fonction de la frquence (grpdelay(h))
- rponse une sinusode pure de priode 100.
- rponse indicielle (rponse un chelon unit)
- Pour chaque filtre, indiquez de quel type de filtre sagit-il (daprs la forme de la rponse en
frquences.