(Analyse Et Filtrage Des Signaux Numériques_TP5)

2
Analyse et Filtrage des signaux numériques M1 TRM/ST (2011/2012) 1 TP n°5: TZ et filtres numériques I.Quelques fonctions utiles 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 : 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)). 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). [h, ϖ] = freqz((b, a, N, fe) : retourne N valeurs du gain complexe 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 pulsations mises dans ϖ. Les pulsations sont equi-espacés sur l’intervalle [0,π]. [h, t] = 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 t et espacés de 1/fe, les valeurs de réponse correspondante sont stockées dans h. [b, a] = butter(n/2, f) : fournit les coefficients du filtre de Butterworth d’ordre n (pair de préférence). La bande passante du filtre doit être comprise entre 0 et fe/2. Les bornes de cette bande passante, f1 et f2, normalisées par fe/2, sont stockées dans le vecteur f. [b, a] = cheby1(n/2, Rp, f) : fournit les coefficients du filtre de Chebyshev d’ordre n, de bandepassante f et de Rp dB d’ondulations 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 d’un filtre % entrée 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]; %Réponse indicielle y=dstep(num,den,length(n)); figure ; stem(n,y) %Réponse impulsionnelle y=dimpulse(num,den,n); figure ; stem(n,y)

description

analyse

Transcript of (Analyse Et Filtrage Des Signaux Numériques_TP5)

Page 1: (Analyse Et Filtrage Des Signaux Numériques_TP5)

Analyse et Filtrage des signaux numériques M1 TRM/ST (2011/2012)

1

TP n°5: TZ et filtres numériques

I.Quelques fonctions utiles 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 :

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)). 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). [h, ω] = freqz((b, a, N, fe) : retourne N valeurs du gain complexe 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 pulsations mises dans ω. Les pulsations sont equi-espacés sur l’intervalle [0,π]. [h, t] = 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 t et espacés de 1/fe, les valeurs de réponse correspondante sont stockées dans h. [b, a] = butter(n/2, ∆f) : fournit les coefficients du filtre de Butterworth d’ordre n (pair de préférence). La bande passante du filtre doit être comprise entre 0 et fe/2. Les bornes de cette bande passante, f1 et f2, normalisées par fe/2, sont stockées dans le vecteur ∆f. [b, a] = cheby1(n/2, Rp, ∆f) : fournit les coefficients du filtre de Chebyshev d’ordre n, de bandepassante ∆f et de Rp dB d’ondulations 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 d’un filtre % entrée 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]; %Réponse indicielle y=dstep(num,den,length(n)); figure ; stem(n,y) %Réponse impulsionnelle y=dimpulse(num,den,n); figure ; stem(n,y)

Page 2: (Analyse Et Filtrage Des Signaux Numériques_TP5)

Analyse et Filtrage des signaux numériques M1 TRM/ST (2011/2012)

2

III. Exercices avec préparation Exercice 1 : Taper et commenter le programme suivant clc clear all b = [0.079 2*0.079 0.079]; %Numérateur a = [1 -1.2 0.516]; %Dénominateur 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 récurrence linéaires simple On considère la récurrence suivante : y(n)=x(n)−x(n−1) (différence du premier ordre). On demande de déterminer (sur papier), puis de visualiser (sous Matlab) :

- La réponse impulsionnelle du système - Sa transformée en Z - Ses pôles et zéros - L’allure de sa réponse en fréquence, vérifier que cette allure correspond bien à la position des pôles et zéros - Quelle serait la sortie d'un tel filtre si l'entrée était constante (voir l'équation de récurrence)? Ceci correspond-il avec ce que l'on voit sur la réponse en fréquence?

- Refaire le même travail pour y(n)=∑=

−4

0

)(5

1

i

inx

Exercice 3 : Analyse de fonctions de transfert rationnelles par la TZ Pour chacune des fonctions de transfert H(z) suivantes :

Déterminez et tracez les caractéristiques suivantes du filtre associé (entre parenthèses les fonctions matlab à utiliser): - réponse impulsionnelle h (N=32) (filter(b,a,d)) - réponse fréquentielle H (TFD d’ordre N=32) (freqz) - zéros et pôles (zplane(b,a)) - le retard de groupe en fonction de la fréquence (grpdelay(h)) - réponse à une sinusoïde pure de période 100. - réponse indicielle (réponse à un échelon unité) - Pour chaque filtre, indiquez de quel type de filtre s’agit-il (d’après la forme de la réponse en fréquences.