Beruflich Dokumente
Kultur Dokumente
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
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
x = square(2*pi*Fe*t/50); 0.4 200 Ces systèmes peuvent donc se représenter dans Matlab,
yb(f )
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).
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.