Nothing Special   »   [go: up one dir, main page]

TP TAS No 0 - Part 1

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 2

Université BADJI Mokhtar Annaba Année 2021/2022

Faculté des sciences de l’ingénieur


Département d’électronique
M1 TELECOMMUNICATION

TP n°0 Part 1: Analyse des filtres numériques par la TZ

Soit h(z) la transformée en z d’un filtre numérique donné dont la décomposition sous forme
fraction rationnelle est donnée par :

Grâce à la seule connaissance du vecteur b et du vecteur a, on peut analyser tout filtre :

- Déterminer les pôles et les zéros du filtre (et étudier sa stabilité)


- Déterminer la réponde impulsionnelle ou indicielle
- Déterminer la réponse fréquentielle et le retard de groupe (dérivée de la phase), etc.

Quelques fonctions utiles :

s = filter(b, a, e) : filtre numériquement les données stockées dans le vecteur e avec le filtre
décrit à la fois par le vecteur b (coefficients du numérateur de h(z)) et le vecteur a
(coefficients du dénominateur de h(z)) pour une entrée e.
Imposons au vecteur a de commencer par un 1. Notons que la fonction "filter" permet tout
autant de construire un filtre récursif (RII) qu’un filtre non récursif (RIF).

Pour déterminer la réponse impulsionelle sera un dirac, pour la réponse indicielle e sera un
échelon.
[H, f] = freqz((b, a, N, fe) : retourne N valeurs du gain complexe (Réponse fréquentielle
TFD) du filtre numérique échantillonné à la fréquence fe (Hertz), décrit par b et a. Ces valeurs
sont stockées dans H et calculées pour N fréquences mises dans f. Les fréquences sont equi-
espacées sur l’intervalle [0,fe/2].

[b,a]=invfreqz(H,f, nb, na): retourne le numérateur b (d’ordre nb) et le dénominateur a


(d’ordre na) à partir de la réponse fréquentielle donnée par H et f.

[h, n] = impz(b, a, N, fe) : retourne la réponse impulsionnelle du filtre numérique décrit par b
et a. La réponse impulsionnelle est calculée en N instants stockés dans n et espacés de 1/fe, les
valeurs de réponse correspondante sont stockées dans h.

[tau,f]=grpdelay(b,a,N,fe) : retourne le retard de groupe (dérivée de la phase) du filtre


numérique décrit par b et a. La réponse impulsionnelle est calculée en N fréquences mises
dans f. Les fréquences sont equi-espacées sur l’intervalle [0,fe/2]

zplane(b,a) : permet de tracer les pôles et les zéros dans le plan complexe.
Travail à faire :

Soit le filtre h(n) décrit par l’équation aux différences suivantes :

y(n)=1.2 y(n-1)-0.516 y(n-2)+ 0.079 x(n) +2*0.079 x(n-1)+0.079 x(n-2)


- La première étape consiste à déterminer les vecteurs a et b. On calcule H(z) (coefficients en
z-1) et on trouve :
Numérateur : b = [0.079 2*0.079 0.079]
Dénominateur: a = [1 -1.2 0.516]

- Puis, par programme on peut : déterminer et tracer la réponse impulsionnelle, la réponse


fréquentielle (module et phase), le retard de groupe, les pôles et les zéros, étudier la stabilité,
la nature du filtre.

Programme :
clc ; clear all ; close all;
b = [0.079 2*0.079 0.079]; %Numérateur
a = [1 -1.2 0.516]; %Dénominateur
figure (1); zplane(b,a);
N = 32; n=0:N-1;
delta = [1; zeros(N-1,1)];
h = filter(b, a, delta); % (ou impz(b,a);)
figure(2); stem(n,h);
echelon=ones(1,N);
h_ind=filter(b,a,echelon);
figure(3); stem(n,h_ind);
L = 256;fe=1;
[H,f] = freqz(b,a,L,fe);
module = abs(H); phase = angle(H);
figure (4); plot(f,module);
figure (5); plot(f,phase);
[tau,f]=grpdelay(b,a,L,fe);
figure (6); plot(f,tau);
[num,den]=invfreqz(H,f, 2,2)

1. Calculer les pôles et zéros de ce filtre ; correspondent-ils à ceux de la figure 1 (trouvée par
Matlab) ?
2. A partir du tracé des pôles et des zéros, esquisser l’allure de h(n) et H(f) en justifiant vos
réponses.
Confirmer avec les figures 2 et 4.
3. Etudier la stabilité du filtre.
4. Comparer les figures 5 et 6. Quel lien les relie ?
5. Quel retard de groupe souhaite-t-on avoir dans la bande passante du filtre ?

Vous aimerez peut-être aussi