Professional Documents
Culture Documents
M1 TRM/ST (2011/2012)
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)
M1 TRM/ST (2011/2012)
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.