Sunteți pe pagina 1din 15

Compte Rendu MTS 201

1

Compte Rendu de TP MTS 201
ZHAI Tengfei
SUN Botu




Table de manires
1. Introduction ................................................................................................. 2
2. Synthse des filtres FIR ................................................................................ 2
1.1. Mthode de synthse par serie de Fourier ............................................. 2
1.2. Mthode par TFD ................................................................................ 6
3. Synthse des filtres IIR ou filtres rcursifs ...................................................... 8
3.1. Domaine discret .................................................................................. 8
3.1.1. Synthse du filtre partir dun CHEBYCHEV de type II. ................. 8
3.1.2. Synthse du filtre partir dun Butterworth. ............................... 10
3.2. Domaine analogique .......................................................................... 11
3.2.1. Invariance impulsionnelle ......................................................... 11
3.2.2. Transformation bilinaire .......................................................... 12
4. Conclusion ................................................................................................. 15


Compte Rendu MTS 201
2

1. Introduction
Cette sance de TP est destine synthtiser des filtres RIF et RII sous logiciel Matlab.
Un filtre numrique est un lment qui effectue un filtrage l'aide d'une succession
d'oprations mathmatiques sur un signal discret. Il y a deux grandes familles de
filtres numriques : RII et RIF.
On verra deux mthode diffrents pour synthtiser un filtre RIF: mthode de sries de
Fourrier (ou mthode de fentre) et mthode de TFD. Ensuite, on synthtisera un filtre
RII avec mthode de Chebychev de type II et Butterworth. En fin, on soccupera de
synthtiser le filtre dans le domaine analogique utilisant les mthodes dinvariance
impulsionnelle et transforme bilinaire.
Chaque fois on comparera les mthodes partir des lobes des rponses des filtres
synthtiss sous logiciel Matlab en superposant les lobes. On essayera dexpliquer les
diffrences de faon mathmatique.
2. Synthse des filtres FIR
1.1. Mthode de synthse par srie de Fourier
1.1.1. Influence du nombre de coefficients : On utilise une fentre de Hamming
Longueur du filtre : 15
1.1.1.1. Dterminer les valeurs des coefficients du filtre laide de la commande
fir1.
fe = 32000;
fc1 = 6500;
fc2 = 8500;
wc1 = fc1 / (fe / 2);
wc2 = fc2 / (fe / 2);
% Filter N = 15
h = fir1(15 - 1, [wc1 wc2], hamming(15))
Compte Rendu MTS 201
3


1.1.1.2. Dterminer la courbe de rponse en frquence du filtre en utilisant la
commande H=freqz(a,b,M) avec a et b les vecteurs de coefficients du
numrateur et du dnominateur de la fonction de transfert du filtre, M le
nombre de points sur lesquels s'effectue le calcul, M doit tre une puissance
de 2 (M=512 par dfaut).
fe = 32000;
fc1 = 6500;
fc2 = 8500;
wc1 = fc1 / (fe / 2);
wc2 = fc2 / (fe / 2);
% Filter N = 15
h = fir1(15 - 1, [wc1 wc2], hamming(15))
[H F]= freqz(h, 1, 512, fe)
1.1.1.3. Reprsenter sur une mme figure de 4 fentres la rponse impulsionnelle
du filtre (commande stem), le module, en unit normalise (linaire) et en
dB, de la courbe de rponse en frquence ainsi que la phase de celle-ci.
figure;
subplot(2,2,1);
stem(h,'filled');
xlabel('Time');ylabel('Magnitude');title('Pulse Response');
subplot(2,2,2);
plot(F,abs(H))
xlabel('Normalized Frequency');ylabel('Linear');title('Frequency
Response');
subplot(2,2,3);
plot(F,20*log10(abs(H)))
xlabel('Normalized Frequency');ylabel('dB');title('Frequency
Response');
subplot(2,2,4);
plot(F,unwrap(angle(H)));
xlabel('Normalized Frequency');ylabel('Phase');title('Frequency
Response');
Compte Rendu MTS 201
4


1.1.1.4. Quelle remarque peut-on faire sur lallure de la phase? Est-ce que cela tait
prvisible?
Il possde une phase linaire. Ctait prvisible parce que les filtres RIF ont la
particularit de pouvoir prsenter une phase linaire.
Longueur du filtre : 25
On ajoute le code suivant aprs le code1 :
% Filter N = 25
h = fir1(25 - 1, [wc1 wc2], hamming(25))
[H F]= freqz(h, 1, 512, fe);
subplot(2,2,1);hold on;
stem(h,'filled','red');
subplot(2,2,2);hold on;
plot(F,abs(H),'red')
subplot(2,2,3);hold on;
plot(F,20*log10(abs(H)),'red')
subplot(2,2,4);hold on;
plot(F,unwrap(angle(H)),'red');
Compte Rendu MTS 201
5


Rouge : Longueur de 25 Bleu : Longueur de 15
Commentaire:
On voit que la courbe du filtre longueur de 25 a une bande de transition plus faible
par rapport celle du filtre longueur de 15.
Si la longueur du filtre N croit, la largeur du lobe principal dcrot, donc la bande de
transition du filtre est plus faible, qui est agrable pour la performance. Mais il faut
plus de mmoire ncessaire limplmentation du filtre.

1.1.2. Influence du choix de la fentre
1.1.2.1. Procder aux mmes tapes que prcdemment pour un filtre de longueur
25 et avec une fentre Blackman. Superposer les courbes avec celles
obtenues pour un fentrage de Hamming et 25 coefficients sur les graphes
adquats prcdents. Commentaires.
% Filter N = 25 using Blackman Window Methode
h = fir1(25 - 1, [wc1 wc2], blackman(25));
[H F]= freqz(h, 1, 512, fe);
subplot(2,2,1);hold on;
stem(h,'filled','red');
subplot(2,2,2);hold on;
plot(F,abs(H),'red')
subplot(2,2,3);hold on;
plot(F,20*log10(abs(H)),'red')
Compte Rendu MTS 201
6

subplot(2,2,4);hold on;
plot(F,unwrap(angle(H)),'red');

Bleu: Hamming Window Rouge: Blackman Window
Commentaire :
La fentre de Hamming est une fentre moyenne entre un lob principal troit et un
amortissement modr des lobes secondaires. Pour la fentre Blackman, les lobes
latraux sont bien attnus au prix dun lobe central largi.
En frquentiel on remarque que plus le lobe principale est troit plus les lobes
secondaires sont important. Ce qui revient dire que plus la fentre est slective
moins les frquences adjacentes la frquence du lobe principal sont attnues. Il y a
donc toujours un compromis faire entre largeur du lobe principal et importance des
lobes secondaires.
On doit slectionner une fentre qui satisfait les spcifications requises pour
dterminer le nombre de coefficients du filtre en fonction de la largeur de la transition
souhaite.
1.2. Mthode par TFD
1.2.1. Dterminer les valeurs des amplitudes de la rponse en frquence obtenue
avec {commande fir1, fentrage de Hamming et 25 coefficients}. Ces
valeurs vont tre utilises pour dfinir le vecteur A.
% Given values
clear;
fe = 32000;
fc1 = 6500;
fc2 = 8500;
wc1 = fc1 / (fe / 2);
wc2 = fc2 / (fe / 2);
A = fir1(25 - 1, [wc1 wc2], hamming(25));
Compte Rendu MTS 201
7

[H F] = freqz(A, 1, 512, fe);
AA = [abs(H); 0];
FF = [F/(fe/2); 1];
h = fir2(25 - 1, FF, AA, hamming(25));
[HH FF] = freqz(h, 1, 512, fe);
figure;subplot(2,2,1);
stem(h,'filled');
xlabel('Time');ylabel('Magnitude');title('Pulse Response');
subplot(2,2,2);
plot(FF,abs(HH))
xlabel('Normalized Frequency');ylabel('Linear');title('Frequency
Response');
subplot(2,2,3);
plot(FF,20*log10(abs(HH)))
xlabel('Normalized Frequency');ylabel('dB');title('Frequency
Response');
subplot(2,2,4);
plot(FF,unwrap(angle(HH)));
xlabel('Normalized Frequency');ylabel('Phase');title('Frequency
Response');
1.2.2. Reprsenter sur la mme figure de 4 fentres la rponse impulsionnelle du
filtre, le module, en unit normalise (linaire) et en dB, de la courbe de
rponse en frquence ainsi que la phase de celle-ci du filtre 25
coefficients et fentrage de Hamming obtenus avec fir1 et fir2.
Commentaire
2. % Filter N = 25 using Hamming Window Methode
3. h = fir1(25 - 1, [wc1 wc2], hamming(25));
4. [H F]= freqz(h, 1, 512, fe);
5. subplot(2,2,1);hold on;
6. stem(h,'filled','red');
7. subplot(2,2,2);hold on;
8. plot(F,abs(H),'red')
9. subplot(2,2,3);hold on;
10. plot(F,20*log10(abs(H)),'red')
11. subplot(2,2,4);hold on;
12. plot(F,unwrap(angle(H)),'red');
Compte Rendu MTS 201
8


Bleu: TFD Rouge: Hamming Window
Commentaire
Pour la mthode avec fentrage, il possde une mieux proprit de londulation en
bande passante et de londulation attnue. Mais il est plus compliqu par rapport la
mthode par TFD. La mthode par TFD peut utiliser un numro dordre plus infrieur
que celle de la mthode avec fentrage pour rpondre aux conditions.
1.2.3. Quel est lintrt de ce type de synthse ?
La mthode par TFD est plus universelle que la mthode avec fentrage. Cest
vraiment simple. Et puis la phase est strictement linaire.
3. Synthse des filtres IIR ou filtres rcursifs
3.1. Domaine discret
3.1.1. Synthse du filtre partir dun CHEBYCHEV de type II.
3.1.1.1. Dterminer l'ordre N et la frquence de coupure normalise fe/2, wn , du
filtre dont les caractristiques ont t dfinies ci-dessus.
% Given values
fe = 32000;
fp = [6500 8500];
Compte Rendu MTS 201
9

fpn = fp / (fe/2);
fa = [5000 10000];
fan = fa / (fe/2);
delta1 = 3;
delta2 = 50;
% Chebychev filter
order = cheb2ord(fpn,fan,delta1,delta2);
3.1.1.2. Dterminer les valeurs des coefficients du numrateur et du dnominateur
de la fonction de transfert de ce filtre.
[B A] = cheby2(order, delta2 ,fpn)
3.1.1.3. En dduire la courbe de rponse en frquence et reprsenter
graphiquement son module en dB et sa phase. Comparer avec les courbes
obtenues avec fir1 pour une fentre de Hamming et 25 coefficients.
Commentaires.
[H F]= freqz(B, A, 512, fe);
figure;
subplot(1,2,1);
plot(F,20*log10(abs(H)))
xlabel('Normalized Frequency');ylabel('dB');title('Frequency
Response');
subplot(1,2,2);
plot(F,unwrap(angle(H)));
xlabel('Normalized Frequency');ylabel('Phase');title('Frequency
Response');
% Filter N = 25 using Hamming Window Methode
h = fir1(25 - 1, (fan + fpn) /2, hamming(25))
[H F]= freqz(h, 1, 512, fe);
subplot(1,2,1);hold on;
plot(F,20*log10(abs(H)),'red')
subplot(1,2,2);hold on;
plot(F,unwrap(angle(H)),'red');

Compte Rendu MTS 201
10

Bleu : Chebychev Rouge : Hamming Window
Commentaire
On peut y voir que la bande de transition du filtre Chebychev est beaucoup plus faible
que celle du filtre synthtis utilisant la mthode de fentre. Nanmoins, le filtre
Chebychev a perdu presque totalement des dtails de phase.
3.1.2. Synthse du filtre partir dun Butterworth.
Reprendre la synthse pour un filtre de Butterworth (commandes buttord et butter). Il
suffit de changer 2 lignes des codes prcdents, pour synthtiser un filtre Butterworth.
order = buttord(fpn,fan,delta1,delta2);
[B A] = butter(order, (fan + fpn) /2);

Commentaire
La performance du filtre Butterworth au terme de largeur de bande de transition est
similaire avec celle de filtre synthtis en mthode de fentre, mais la phase est
conserve avec allure linaire.
Compte Rendu MTS 201
11

3.2. Domaine analogique
3.2.1. Invariance impulsionnelle
3.2.1.1. Dterminer les coefficients de la fonction de transfert H(s) dun filtre de
Butterworth qui respecte le gabarit prcdent. Il faut faire attention que
dans le domaine analogique les pulsations sont dfinies en radian par
seconde.
% Given values
fe = 32000;
fp = [6500 8500] * 2 * pi;
fa = [5000 10000] * 2 * pi;
delta1 = 3;
delta2 = 50;
% Butterworth filter
order = buttord(fp,fa,delta1,delta2, 's');
[B A] = butter(order, (fa + fp)/2, 's');
3.2.1.2. Dterminer les coefficients de la fonction de transfert H(z) selon la mthode
de linvariance impulsionnelle.
[BZ,AZ] = impinvar(B,A);
Compte Rendu MTS 201
12


3.2.2. Transformation bilinaire
3.2.2.1. Dterminer les coefficients de la fonction de transfert H(s) dun filtre de
Butterworth qui respecte le gabarit prcdent. Il faut faire attention que
dans ce cas les valeurs des pulsations prennent en compte les distorsions
inhrentes la transformation.
Parce que la transformation bilinaire introduit simplement une distorsion des
frquences du filtre lors du passage en numrique sans modifier la stabilit, on
effectue une pr-distorsion de ces deux pulsations par la relation

)
% Given values
fe = 32000;
fp = [6500 8500];
fpn = fp / (fe/2);
fa = [5000 10000];
fan = fa / (fe/2);
Compte Rendu MTS 201
13

delta1 = 3;
delta2 = 50;
% Butterworth filter
order = buttord(fpn,fan,delta1,delta2, 's');
w = (fan + fpn)/2
% Pre-distorsion
wpred = 2 * tan(w/2)
[B A] = butter(order, wpred, 's');

3.2.2.2. Dterminer les coefficients de la fonction de transfert H(z) selon la mthode
de la transformation bilinaire.
[BZ,AZ] = bilinear(B,A,fe);
[H F]= freqz(BZ, AZ, 512, fe);
figure;subplot(1,2,1);
plot(F,20*log10(abs(H)));
xlabel('Normalized Frequency');ylabel('dB');title('Frequency
Response');
subplot(1,2,2);
plot(F,unwrap(angle(H)));
xlabel('Normalized Frequency');ylabel('Phase');title('Frequency
Response');
3.2.2.3. Comparer les rponses frquentielles ainsi obtenues

Bleu : Transforme bilinaire Rouge : Invariance impulsionnelle
Commentaire
Compte Rendu MTS 201
14

Les lobes des filtres raliss en deux mthodes sont similaires. Nanmoins,
lattnuation du filtre synthtis par mthode de transforme bilinaire est mieux que
lautre.
Thoriquement, la mthode de transforme bilinaire na pas de superposition du
spectre quand on plie les phases (pour la mthode dinvariance impulsionnelle, quand
les rponses nest pas support born, cette technique conduit au phnomne de
repliement et spectre) et conserve la stabilit du systme. En plus il est plus facile
synthtiser et raliser.

Compte Rendu MTS 201
15

4. Conclusion
Pendant cette sance de Travaux Pratique, on a essay de synthtiser des filtre RIF et
RII dans des domaines digital et analogique avec des mthodes diffrentes.
Pour chaque mthode, comme quon a prvu dans la prdtermination du TP, a ses
avantages et inconvnients. On les a compars en superposant les lobes obtenus par
Matlab. On a essay dexpliquer les phnomnes.
On est aussi plus familier programmer sous Matlab.

S-ar putea să vă placă și