Вы находитесь на странице: 1из 2

PSfrag replacements

Bréviaire Matlab 4 Université Paul Sabatier Année 2002-2003

– Wn bande passante du filtre (fréquence haute de la bande


passante pour un passe-bas ; fréquence basse de la bande
subplot(1,2,2); plot(f(1:N/2),abs(X(1:N/2)));
xlabel(’fréquence f’), ylabel(’X(f)’);
— Matlab et le traitement du signal —
passante pour un passe-haut ; fréquences basse et haute 1
300

de la bande passante pour un passe-bande ; fréquences Table des matières N éléments (signal de durée N
fe ). Le vecteur des temps qui
0.8
250
basse et haute de la bande coupée pour un coupe-bande). 0.6 lui est associé est :
Les fréquences de Wn sont normalisées par rapport à la 0.4 200 1 Représentation des signaux et systèmes 1

b(f )
x(t)
fréquence de Nyquist. 0.2 1.1 Temps . . . . . . . . . . . . . . . . . . . . . 1 >> t = (0:N-1)/fe;

x
0 150 1.2 Autocorrélation . . . . . . . . . . . . . . . . 1
– Rp atténuation maximale (en dB) dans la bande pas- 1.3 Fonction de transfert . . . . . . . . . . . . . 1
−0.2
sante. −0.4 100
1.2 Autocorrélation
– Rs atténuation minimale (en dB) dans la bande coupée. −0.6 2 Représentations fréquentielles 2
50 2.1 Signaux . . . . . . . . . . . . . . . . . . . . 2 L’estimation de l’autocorrélation d’un signal ou de l’inter-
−0.8
2.2 Systèmes . . . . . . . . . . . . . . . . . . . 2 corrélation de deux signaux de longueur N peut être effec-
−1
3.3.5 Estimation de l’ordre des filtres 0 0.02 0.04 0.06
0
0 2000 4000
tuée avec la fonction xcorr :
temps t fréquence f
3 Filtrage et synthèse de filtres 2
Enfin, Matlab, possède des fonctions permettant d’estimer % Synthèse du filtre passe bas >> Cxy = xcorr(x,y,option);
3.1 Filtrage . . . . . . . . . . . . . . . . . . . . 2
l’ordre minimal nécessaire pour la construction d’un filtre % (RIF moindres carrés) 3.2 Synthèse filtres RIF . . . . . . . . . . . . . 2
passe-bas ou passe bande entrant dans un gabarit donné : % Bande passante [0, 200 Hz] 3.2.1 Troncature de la Réponse Impul- C’est un vecteur de longueur 2N-1 tel que le Nième élé-
% Bande coupée [400Hz, 4000Hz] sionnelle . . . . . . . . . . . . . . . . 2 ment corresponde à la corrélation en 0. si option n’est pas
>> [n, Wn] = buttord(Wp,Ws,Rp,Rs) ; % Réponse impulsionnelle 3.2.2 Échantillonnage de la Réponse en donné, xcorr estime la corrélation non normalisée :
>> [n, Wn] = cheb1ord(Wp,Ws,Rp,Rs) ; h = firls(39,[0 500 750 Fe/2]/Fe*2,[1 1 0 0]); Fréquence . . . . . . . . . . . . . . . 2 ½ PN −n

>> [n, Wn] = ellipord(Wp,Ws,Rp,Rs) ; 3.2.3 Moindres Carrés . . . . . . . . . . . 2 un
Cx,y [n] = k=1 x [k]y[k + n] si n ≥ 0
% Réponse en frquence Cx,y [−n]∗ si n < 0

PSfrag replacements
[H, freq] = freqz(h,1,512,Fe); 3.2.4 Méthode de Rémez . . . . . . . . . . 3
– Wp bande passante. 3.3 Synthèse de filtres RII . . . . . . . . . . . . 3 option peut prendre les valeurs :
– Ws bande coupée. % Affichage 3.3.1 Synthèse de filtres analogiques – ’biased’ pour l’estimateur biaisé de la corrélation :
subplot(1,2,1); plot(h); passe-bas . . . . . . . . . . . . . . . 3
– Rp atténuation maximale (en dB) dans la bande pas- 3.3.2 Transformation des fréquences . . . 3 b 1 un
xlabel(’échantillon’), ylabel(’h[n]’); Cx,y [n] = C [n].
sante. 3.3.3 Discrétisation des filtres . . . . . . . 3 N x,y

x
b(f )
x(t)
subplot(1,2,2); plot(freq,20*log10(abs(H)));
– Rs atténuation minimale (en dB) dans la bande coupée. 3.3.4 Synthèse complète des filtres . . . . 3 – ’unbiased’ pour l’estimateur non biaisé de la corréla-
xlabel(’fréquence f’), ylabel(’H(f)’);
0.16 20
3.3.5 Estimation de l’ordre des filtres . . . 4 tion :
– n ordre du filtre. nb 1
0.14 Cx,y [n] = C un [n].
– Wn fréquence propre du filtre numérique. Pour un filtre 0
4 Exemple 4 |N − n| x,y
0.12

passe-bas Wp et Ws sont les fréquences hautes de la bande 0.1


– ’coeff’ pour laquelle la corrélation est normalisée de
−20 c
passante et basse de la bande coupée. Pour un filtre h(f ) Matlab et sa boı̂te à outils Signal Processing, contiennent façon à ce que Cx,y (0) = 1.
h[n]

0.08
passe-bande, Wp contient les fréquences basse et haute un grand nombre de fonctionnalités concernant :
b
0.06 −40
de la bande passante et Ws les fréquences haute et basse 0.04 – la génération de signaux ; 1.3 Fonction de transfert
de la bande coupée. 0.02
−60
– la représentation des signaux (Transformée de Fou- – La fonction de transfert (transformée de Laplace de la ré-
Attention, les fréquences sont normalisées par rapport à 0
−80 rier Discrète FFT, Transformée en Cosinus Discrets
la fréquence de Nyquist = f2e . −0.02
ponse impulsionnelle) d’un filtre analogique s’écrit sous
DCT. . . ) ; la forme :
Pour les filtres passe-haut et coupe-bande, leur ordre peut −0.04
0 20 40
−100
0 2000 4000 – l’analyse des signaux (statistique, analyse spectrale pa- b0 sM + b1 sM −1 + · · · + bM −1 s + bM
être calculé de la même façon que pour les filtres passe-bas échantillon fréquence f
ramétrique. . . ) ; F (s) =
et passe-bande en renversant les fréquences de 0 vers 1 et % Filtrage du signal sN + a1 sN −1 + · · · + aN −1 s + aN
de 1 vers 0. (e.g. l’ordre d’un passe-haut Wp=0.2, Ws=0.1 y = filter(h,1,x); – la représentation des systèmes linéaires (fonction de
ou sous la forme :
est le même que celui d’un passe-bas Wp=0.8, Ws=0.0). Y = fft(y); transfert, pôles et zéros, espace d’état. . . ) ; PM
PSfrag replacements

– l’analyse des systèmes (réponse impulsionnelle, réponse k=1 (s − zk )


F (s) == K PN .
% Affichage en fréquence. . . ) ; k=1 (s − pk )
4 Exemple subplot(1,2,1); plot(t,y);
– le filtrage et la synthèse de filtres. – La fonction de transfert (transformée en z de la ré-
xlabel(’temps t’), ylabel(’y(t)’);
Nous nous intéresserons ici uniquement aux fonctions utiles ponse impulsionnelle) d’un filtre numérique s’écrit quant
% Génération du signal subplot(1,2,2); plot(f(1:N/2),abs(Y(1:N/2)));
à elle :
b
h(f )

x
b(f )

pour la représentation fréquentielle des signaux et des sys-


h[n]

x(t)

Fe = 8e3; xlabel(’fréquence f’), ylabel(’Y(f)’); PM


N = 512; tèmes linéaires et aux fonctions de filtrage et de synthèse b0 + b1 z −1 + · · · + bM z −M k=1 (z − zk )
300 de filtres. F (z) = = K PN .
t = (0:N-1)/Fe; −1
1 + a1 z + · · · + a N z −N
1 k=1 (z − pk )
x = square(2*pi*Fe*t/50);
0.8 250 Ces systèmes peuvent donc se représenter dans Matlab,
0.6
% TFD sur [0, Fe] 0.4 200
1 Représentation des signaux et avec les vecteurs du dénominateur a=[1, a1 ,...aN ] et
du numérateur b=[b0 , b1 ,...bM ] ou par le gain K et
yb(f )
y(t)

X = fft(x); 0.2
systèmes les vecteurs des poles p=[p0 , p1 ,...pM ] et des zéros
f = (0:N-1)/N*Fe; 0 150
−0.2 z=[z0 , z1 ,...zM ].
−0.4 100 1.1 Temps
% Affichage −0.6 Un filtre numérique à réponse impulsionnelle finie (RIF)
subplot(1,2,1); plot(t,x); −0.8 50 Un signal numérique échantillonné à la fréquence fe se re- ayant son dénominateur à 1 sera entièrement caractérisé
xlabel(’temps t’), ylabel(’x(t)’); −1 présente naturellement dans Matlab, comme un vecteur de par sa réponse impulsionnelle (h = b).
0
0 0.02 0.04 0.06 0 2000 4000
temps t fréquence f

Hervé Carfantan Le 23 janvier 2005 Hervé Carfantan Le 23 janvier 2005


Bréviaire Matlab 2 Bréviaire Matlab 3

2 Représentations fréquentielles 3.2.1 Troncature de la Réponse Impulsionnelle – m est le vecteur des amplitudes de la réponse en fréquence % Lowpass -> Bandpass (p −→ 1 p
B ( ω0 + ω0
p ))
du filtre idéal aux fréquences fn.
2.1 Signaux La fonction fir1 synthétise un filtre RIF simple (défini >> [bt, at] = lp2bp(b,a,W0,Bw) ;
Voir l’aide en ligne pour plus de détails. . .
par une seule bande passante ou coupée) par troncature et 1
La Transformée de Fourier Discrète d’un signal de N points % Lowpass -> bandstop (p −→ B p ω )
fenêtrage de la réponse impulsionnelle du filtre numérique ω0 + p0
est calculée par un algorithme rapide (Fast Fourier Trans- idéal : 3.2.4 Méthode de Rémez >> [bt, at] = lp2bs(b,a,W0,Bw) ;
form FFT) :
>> h = fir1(n,fn,type,window) ; La fonction remez synthétise un filtre RIF approchant au Si ωb est la pulsation basse de coupure et ωh la pulsation
>> X = fft(x) ; mieux, au sens du minimax (norme L∞ ), la réponse en haute de coupure, alors la pulsation propre du filtre ω0 et
– n est l’ordre du filtre (longueur de la RI moins un). fréquence du filtre idéal. la largeur de bande du filtre sont donnés par : B = ωh − ωb
C’est également un signal (à valeurs complexes) de N points √
– Les fréquences fn sont normalisées par rapport à la fré- et ω0 = ωh ωb .
échantillonnés à la fréquence fNe . Le vecteur des fréquences >> h = remez(n,fn,m) ;
qui lui est associé est : quence de Nyquist (fn= f / f2e , 0 ≤ fn ≤ 1). fn indique la
fréquence de coupure pour les passe-bas et passe-haut, Les paramètres sont les mêmes que pour firls. 3.3.3 Discrétisation des filtres
>> f = (0:N-1)/N*fe; et les fréquences de coupures basse et haute pour les La fonction remezord permet de plus d’estimer l’ordre né-
passe-bande et coupe-bande. cessaire à la méthode de remez pour construire un filtre de La discrétisation des filtres analogiques permet d’obtenir
Rappelons que ce signal est de période fe ; on peut le déviation maximale donnée. les coefficients des filtres numériques à partir de ceux du
– La chaı̂ne de caractère type précise le type de filtre.
représenter sur l’intervalle [− f2e , f2e ] grâce à la fonction Voir l’aide en ligne pour plus de détails. . . filtre analogiques. Deux techniques sont disponibles à cette
’high’ pour passe-haut, ’stop’ pour coupe-bande, type
fftshift (qui ne fait qu’un décalage des vecteurs et aucun fin dans Matlab :
omis pour les passe-bas et passe-bande.
calcul de fft) : – Discrétisation par invariance de la réponse impulsion-
– Le vecteur window de longueur n+1, correspond à la fe- 3.3 Synthèse de filtres RII nelle :
>> Y = fftshift(X); nêtre prise en compte (par défaut fenêtre de Hamming). >> [bd, ad] = impinvar(b, a, fe) ;
Les fonctions Matlab, disponibles pour créer des fe- Les principales méthodes de synthèse de filtres à réponse
Le vecteur des fréquences qui lui est associé est alors : impulsionnelle infinie (RII) procèdent par discrétisation Où fe est la fréquence d’échantillonnage.
nêtres sont : bartlett, blackman, boxcar (rectangu- – Discrétisation par transformation bilinéaire : (approxi-
laire), chebwin (chebychev), Hamming, hanning, kaiser, d’un filtre analogique.
>> f = (0:N-1)/N*fe - fe/2; mation p ≈ T2e 1−z
−1

triang (triangulaire). 1+z −1 )

3.3.1 Synthèse de filtres analogiques passe-bas >> [bd, ad] = bilinear(b, a, fe) ;
Voir l’aide en ligne pour plus de détails. . .
2.2 Systèmes Attention, la transformation bilinéaire provoque une dé-
Les fonctions suivantes renvoient les pôles (p) zéros (z) et formation des fréquences (soit fa la fréquence analogique
– La réponse en fréquence d’un système analogique est 3.2.2 Échantillonnage de la Réponse en Fré- gain (k) des filtres analogiques passe-bas normalisés (pul- et fn la fréquence numérique) :
donnée par : quence sation de coupure unité) :
>> H=freqs(b,a,w); fe πfa
H est la réponse en fréquence aux pulsations données La fonction fir2 synthétise un filtre RIF par échantillon- % Butterworth fd = arctan( )
π fe
dans le vecteur w (en radian par seconde). nage de la réponse en fréquence du filtre analogique idéal >> [z, p, k] = buttap(n) ;
et fenêtrage de la réponse impulsionnelle du filtre ainsi % Chebychev et
– La réponse en fréquence d’un système numérique est construit. fe πfd
% Oscillations inférieures à Rp dB fa = tan( ).
donnée par : π fe
% en bande passante
>> H=freqz(b,a,f,fe); >> h = fir2(n,fn,m,window) ; >> [z, p, k] = cheb1ap(n, Rp) ; Il est donc nécessaire de pré-déformer le gabarit du filtre
H est la réponse du système aux fréquences données dans analogique pour obtenir le filtre numérique désiré.
– n est l’ordre du filtre (longueur de la RI moins un). % Oscillations au deçà de Rs dB
le vecteur f (en Hertz) et fe la fréquence d’échantillon-
% en bande coupée
nage. – fn est le vecteur des fréquences normalisées (0 ≤ fn ≤ 1) >> [z, p, k] = cheb2ap(n, Rs) ; 3.3.4 Synthèse complète des filtres
Voir l’aide en ligne pour plus de détails. . . définissant le filtre idéal comme linéaire par morceaux. % Elliptique : oscillations inférieures
Remarque : Matlab, travaille en pulsation pour les sys- – m est le vecteur des amplitudes, aux fréquences données % à Rp dB en bande passante et au deçà Matlab, propose des fonctions dans lesquelles la synthèse
tèmes analogiques et en fréquence (et même en fréquence par fn, de la réponse en fréquence du filtre idéal. % de Rs dB en bande coupée complète du filtre numérique est effectuée :
normalisée) pour les systèmes numériques. >> [z, p, k] = ellipap (n, Rp, Rs) ;
Voir l’aide en ligne pour plus de détails. . .
% Butterworth
Pour obtenir une représentation de ces filtres analogiques >> [b, a] = butter(n,Wn,type) ;
3 Filtrage et synthèse de filtres 3.2.3 Moindres Carrés en terme des numérateurs et dénominateurs de leur fonc- % Chebychev
3.1 Filtrage tion de transfert (transformée de Laplace de leur réponse % Oscillations de Rp dB en bande
La fonction firls synthétise un filtre RIF approchant au impulsionnelle) : % passante
Le filtrage du vecteur x par le filtre numérique défini par mieux, au sens des moindres carrés (norme L2 ), la réponse >> [b, a] = cheby1(n,Rp,Wn,type) ;
a et b est effectué par : en fréquence du filtre analogique idéal. >> [b, a] = zp2tf(z,p,k) ; % Oscillations au deçà de Rs dB
% en bande coupée
>> y = filter(b,a,x); >> h = firls(n,fn,m) ;
3.3.2 Transformation des fréquences >> [b, a] = cheby2(n,Rs,Wn,type) ;
Remarque : Les conditions initiales de l’équation de récu- – n est l’ordre du filtre (longueur de la RI moins un). % Elliptique : oscillations de Rp dB en
rence peuvent être données en entrée de la fonction filter. Pour transformer les filtres passe-bas en tout type de % bande passante et au deçà de Rs dB en
Elles se calculent par la fonction filtic. – fn est le vecteur des fréquences normalisées (0 ≤ fn ≤ 1) filtres : % bande coupée
définissant le filtre idéal. % Lowpass -> Lowpass (p −→ ωp0 ) >> [b, a] = ellip(n,Rp,Rs,Wn,type) ;
Attention, contrairement à fir2, ces fréquences sont
3.2 Synthèse filtres RIF >> [bt, at] = lp2lp(b,a,W0) ;
prises deux par deux dans firls, permettant ainsi de Ces fonctions donnent directement les coefficients a et b
définir des bandes de fréquences ou le filtre idéal n’est (p −→ ω0 du filtre numérique à partir de :
Il existe différentes méthodes de synthèse de filtres RIF % Lowpass -> Highpass p )
pas précisé (bandes de transition). – n ordre du filtre.
approchant un filtre idéal : >> [bt, at] = lp2hp(b,a,W0) ;

Hervé Carfantan Le 23 janvier 2005 Hervé Carfantan Le 23 janvier 2005

Вам также может понравиться