Vous êtes sur la page 1sur 2

Année 2013-2014 4 Université Paul Sabatier Année 2013-2014 1 Université Paul Sabatier

– 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 —
300
passante pour un passe-haut ; fréquences basse et haute 1

de la bande passante pour un passe-bande ; fréquences 0.8


Table des matières N éléments (signal de durée N
fe ). Le vecteur des temps qui
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- −0.2
1.3 Fonction de transfert . . . . . . . . . . . . . 1 1.2 Autocorrélation
sante. −0.4 100

−0.6
– Rs atténuation minimale (en dB) dans la bande coupée. 50
2 Représentations fréquentielles 2 L’estimation de l’autocorrélation d’un signal ou de l’inter-
−0.8
2.1 Signaux . . . . . . . . . . . . . . . . . . . . 2 corrélation de deux signaux de longueur N peut être effec-
−1
0 2.2 Systèmes . . . . . . . . . . . . . . . . . . . 2 tuée avec la fonction xcorr :
3.3.5 Estimation de l’ordre des filtres 0 0.02 0.04
temps t
0.06 0 2000
fréquence f
4000

% Synthèse du filtre passe bas 3 Filtrage et synthèse de filtres 2 >> Cxy = xcorr(x,y,option);
Enfin, Matlab, possède des fonctions permettant d’estimer % (RIF moindres carrés) 3.1 Filtrage . . . . . . . . . . . . . . . . . . . . 2
l’ordre minimal nécessaire pour la construction d’un filtre % Bande passante [0, 200 Hz] 3.2 Synthèse filtres RIF . . . . . . . . . . . . . 2 C’est un vecteur de longueur 2N-1 tel que le Nième élé-
passe-bas ou passe bande entrant dans un gabarit donné : % Bande coupée [400Hz, 4000Hz] 3.2.1 Troncature de la Rép. Impuls. . . . . 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ép. en Fréq. 2 donné, xcorr estime la corrélation non normalisée :
>> [n, Wn] = cheb1ord(Wp,Ws,Rp,Rs) ; 3.2.3 Moindres Carrés . . . . . . . . . . . 2  PN −n
h = firls(39,[0 500 750 Fe/2]/Fe*2,[1 1 0 0]);
k=1 x [k]y[k + n] si n ≥ 0

un
>> [n, Wn] = ellipord(Wp,Ws,Rp,Rs) ; % Réponse en frquence 3.2.4 Méthode de Rémez . . . . . . . . . . 3 Cx,y [n] =
Cx,y [−n]∗ si n < 0
[H, freq] = freqz(h,1,512,Fe); 3.3 Synthèse de filtres RII . . . . . . . . . . . . 3
– Wp bande passante.
% Affichage 3.3.1 Synthèse de filtres analog. passe-bas 3 option peut prendre les valeurs :
– Ws bande coupée. subplot(1,2,1); plot(h); 3.3.2 Transformation des fréquences . . . 3 – ’biased’ pour l’estimateur biaisé de la corrélation :
3.3.3 Discrétisation des filtres . . . . . . . 3
– Rp atténuation maximale (en dB) dans la bande pas- xlabel(’échantillon’), ylabel(’h[n]’); b 1 un
3.3.4 Synthèse complète des filtres . . . . 3 Cx,y [n] = Cx,y [n].
sante. subplot(1,2,2); plot(freq,20*log10(abs(H))); N
3.3.5 Estimation de l’ordre des filtres . . . 4
xlabel(’fréquence f’), ylabel(’H(f)’); – ’unbiased’ pour l’estimateur non biaisé de la corréla-
– Rs atténuation minimale (en dB) dans la bande coupée. 0.16 20

0.14 4 Exemple 4 tion :


– n ordre du filtre. nb 1
0.12
0
Cx,y [n] = C un [n].
|N − n| x,y
– Wn fréquence propre du filtre numérique. Pour un filtre 0.1 Matlab et sa boı̂te à outils Signal Processing, contiennent
−20
– ’coeff’ pour laquelle la corrélation est normalisée de
h(f )
h[n]

passe-bas Wp et Ws sont les fréquences hautes de la bande 0.08 un grand nombre de fonctionnalités concernant : c
b façon à ce que Cx,y (0) = 1.
passante et basse de la bande coupée. Pour un filtre 0.06 −40
– la génération de signaux ;
passe-bande, Wp contient les fréquences basse et haute 0.04

de la bande passante et Ws les fréquences haute et basse 0.02


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

4 Exemple subplot(1,2,2); plot(f(1:N/2),abs(Y(1:N/2))); – La fonction de transfert (transformée en z de la ré-


Nous nous intéresserons ici uniquement aux fonctions utiles
xlabel(’fréquence f’), ylabel(’Y(f)’); ponse impulsionnelle) d’un filtre numérique s’écrit quant
pour la représentation fréquentielle des signaux et des sys-
% Génération du signal à elle :
300 tèmes linéaires et aux fonctions de filtrage et de synthèse PM
Fe = 8e3;
de filtres. b0 + b1 z −1 + · · · + bM z −M k=1 (z − zk )
1
N = 512; 0.8 250 F (z) = = K PN .
t = (0:N-1)/Fe; 1 + a1 z + · · · + aN z
−1 −N
k=1 (z − pk )
0.6

x = square(2*pi*Fe*t/50); 0.4 200 Ces systèmes peuvent donc se représenter dans Matlab,
yb(f )

1 Représentation des signaux et


y(t)

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

Hervé Carfantan http://userpages.irap.omp.eu/~hcarfantan/ Hervé Carfantan http://userpages.irap.omp.eu/~hcarfantan/


Année 2013-2014 2 Université Paul Sabatier Année 2013-2014 3 Université Paul Sabatier

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. >> [bt, at] = lp2bp(b,a,W0,Bw) ;
2.1 Signaux La fonction fir1 synthétise un filtre RIF simple (défini
Voir l’aide en ligne pour plus de détails. . .
par une seule bande passante ou coupée) par troncature et % Lowpass -> bandstop (p −→ B 1
)
La Transformée de Fourier Discrète d’un signal de N points fenêtrage de la réponse impulsionnelle du filtre numérique
p
ω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) ;
– n est l’ordre du filtre (longueur de la RI moins un). mieux, au sens du minimax (norme L∞ ), la réponse en haute de coupure, alors la pulsation propre du filtre ω0 et
C’est également un signal (à valeurs complexes) de N points fréquence du filtre idéal. la largeur de bande du filtre sont donnés par : B = ωh − ωb

échantillonnés à la fréquence fNe . Le vecteur des fréquences – Les fréquences fn sont normalisées par rapport à la fré-
>> h = remez(n,fn,m) ; et ω0 = ωh ωb .
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.
>> f = (0:N-1)/N*fe; et les fréquences de coupures basse et haute pour les 3.3.3 Discrétisation des filtres
La fonction remezord permet de plus d’estimer l’ordre né-
Rappelons que ce signal est de période fe ; on peut le 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
représenter sur l’intervalle [− f2e , f2e ] grâce à la fonction – La chaı̂ne de caractère type précise le type de filtre. déviation maximale donnée. les coefficients des filtres numériques à partir de ceux du
fftshift (qui ne fait qu’un décalage des vecteurs et aucun ’high’ pour passe-haut, ’stop’ pour coupe-bande, type Voir l’aide en ligne pour plus de détails. . . filtre analogiques. Deux techniques sont disponibles à cette
calcul de fft) : omis pour les passe-bas et passe-bande. fin dans Matlab :
>> Y = fftshift(X); 3.3 Synthèse de filtres RII – Discrétisation par invariance de la réponse impulsion-
– Le vecteur window de longueur n+1, correspond à la fe-
nelle :
Le vecteur des fréquences qui lui est associé est alors : nêtre prise en compte (par défaut fenêtre de Hamming).
Les principales méthodes de synthèse de filtres à réponse >> [bd, ad] = impinvar(b, a, fe) ;
>> f = (0:N-1)/N*fe - fe/2; Les fonctions Matlab, disponibles pour créer des fe-
impulsionnelle infinie (RII) procèdent par discrétisation Où fe est la fréquence d’échantillonnage.
nêtres sont : bartlett, blackman, boxcar (rectangu-
d’un filtre analogique. – Discrétisation par transformation bilinéaire : (approxi-
laire), chebwin (chebychev), Hamming, hanning, kaiser,
mation p ≈ T2e 1−z
−1
2.2 Systèmes triang (triangulaire). 1+z −1 )
Voir l’aide en ligne pour plus de détails. . . 3.3.1 Synthèse de filtres analogiques passe-bas >> [bd, ad] = bilinear(b, a, fe) ;
La réponse en fréquence d’un système analogique est don-
née par : Les fonctions suivantes renvoient les pôles (p) zéros (z) et Attention, la transformation bilinéaire provoque une dé-
3.2.2 Échantillonnage de la Réponse en Fré- gain (k) des filtres analogiques passe-bas normalisés (pul- formation des fréquences (soit fa la fréquence analogique
>> H=freqs(b,a,w);
quence sation de coupure unité) : et fn la fréquence numérique) :
H est la réponse en fréquence aux pulsations données dans
% Butterworth fe πfa
le vecteur w (en radian par seconde). La fonction fir2 synthétise un filtre RIF par échantillon- fn = arctan( )
>> [z, p, k] = buttap(n) ; π fe
La réponse en fréquence d’un système numérique est don- nage de la réponse en fréquence du filtre analogique idéal
% Chebychev et fe πfn
née par : et fenêtrage de la réponse impulsionnelle du filtre ainsi fa = tan( ).
% Oscillations inférieures à Rp dB π fe
construit.
>> H=freqz(b,a,f,fe); % en bande passante
>> h = fir2(n,fn,m,window) ; 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 le >> [z, p, k] = cheb1ap(n, Rp) ;
analogique pour obtenir le filtre numérique désiré.
vecteur f (en Hertz) et fe la fréquence d’échantillonnage. – n est l’ordre du filtre (longueur de la RI moins un). % Oscillations au deçà de Rs dB
% en bande coupée
Voir l’aide en ligne pour plus de détails. . . – 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
Remarque : Matlab, travaille en pulsation pour les sys- définissant le filtre idéal comme linéaire par morceaux. % Elliptique : oscillations inférieures
tèmes analogiques et en fréquence (et même en fréquence % à Rp dB en bande passante et au deçà Matlab, propose des fonctions dans lesquelles la synthèse
– m est le vecteur des amplitudes, aux fréquences données
normalisée) pour les systèmes numériques. % de Rs dB en bande coupée complète du filtre numérique est effectuée :
par fn, de la réponse en fréquence du filtre idéal.
>> [z, p, k] = ellipap (n, Rp, Rs) ;
Voir l’aide en ligne pour plus de détails. . . % Butterworth
3 Filtrage et synthèse de filtres Pour obtenir une représentation de ces filtres analogiques >> [b, a] = butter(n,Wn,type) ;
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 >> [b, a] = cheby1(n,Rp,Wn,type) ;
mieux, au sens des moindres carrés (norme L2 ), la réponse >> [b, a] = zp2tf(z,p,k) ;
a et b est effectué par : % Oscillations au deçà de Rs dB
en fréquence du filtre analogique idéal.
>> y = filter(b,a,x); % en bande coupée
>> 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) ;
3.2 Synthèse filtres RIF Attention, contrairement à fir2, ces fréquences sont >> [bt, at] = lp2lp(b,a,W0) ;
prises deux par deux dans firls, permettant ainsi de (p −→ ω0 Ces fonctions donnent directement les coefficients a et b
% Lowpass -> Highpass p )
Il existe différentes méthodes de synthèse de filtres RIF définir des bandes de fréquences ou le filtre idéal n’est >> [bt, at] = lp2hp(b,a,W0) ; du filtre numérique à partir de :
approchant un filtre idéal : pas précisé (bandes de transition). – n ordre du filtre.

Hervé Carfantan http://userpages.irap.omp.eu/~hcarfantan/ Hervé Carfantan http://userpages.irap.omp.eu/~hcarfantan/