0% ont trouvé ce document utile (0 vote)
159 vues2 pages

MatlabSignal PDF

Transféré par

othitman
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
159 vues2 pages

MatlabSignal PDF

Transféré par

othitman
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Annee 2012-2013 4 Universite Paul Sabatier Annee 2012-2013 1 Universite Paul Sabatier

Wn bande passante du filtre (frequence haute de la bande


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

de la bande passante pour un passe-bande ; frequences 0.8


Table des matieres N elements (signal de duree N
fe ). Le vecteur des temps qui
250
basse et haute de la bande coupee pour un coupe-bande). 0.6
lui est associe est :
Les frequences de Wn sont normalisees par rapport a la 0.4 200 1 Representation des signaux et systemes 1

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

x
0 150
1.2 Autocorrelation . . . . . . . . . . . . . . . . 1
Rp attenuation maximale (en dB) dans la bande pas- 0.2
1.3 Fonction de transfert . . . . . . . . . . . . . 1 1.2 Autocorrelation
sante. 0.4 100

0.6
Rs attenuation minimale (en dB) dans la bande coupee. 50
2 Representations frequentielles 2 Lestimation de lautocorrelation dun signal ou de linter-
0.8
2.1 Signaux . . . . . . . . . . . . . . . . . . . . 2 correlation de deux signaux de longueur N peut etre effec-
1
0 2.2 Systemes . . . . . . . . . . . . . . . . . . . 2 tuee avec la fonction xcorr :
3.3.5 Estimation de lordre des filtres 0 0.02 0.04
temps t
0.06 0 2000
frquence f
4000

% Synthese du filtre passe bas 3 Filtrage et synthese de filtres 2 >> Cxy = xcorr(x,y,option);
Enfin, Matlab, possede des fonctions permettant destimer % (RIF moindres carres) 3.1 Filtrage . . . . . . . . . . . . . . . . . . . . 2
lordre minimal necessaire pour la construction dun filtre % Bande passante [0, 200 Hz] 3.2 Synthese filtres RIF . . . . . . . . . . . . . 2 Cest un vecteur de longueur 2N-1 tel que le Nieme ele-
passe-bas ou passe bande entrant dans un gabarit donne : % Bande coupee [400Hz, 4000Hz] 3.2.1 Troncature de la Rep. Impuls. . . . . 2 ment corresponde a la correlation en 0. si option nest pas
>> [n, Wn] = buttord(Wp,Ws,Rp,Rs) ; % Reponse impulsionnelle 3.2.2 Echantillonnage de la Rep. en Freq. 2 donne, xcorr estime la correlation non normalisee :
>> [n, Wn] = cheb1ord(Wp,Ws,Rp,Rs) ; 3.2.3 Moindres Carres . . . . . . . . . . . 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) ; % Reponse en frquence 3.2.4 Methode de Remez . . . . . . . . . . 3 Cx,y [n] =
Cx,y [n] si n < 0
[H, freq] = freqz(h,1,512,Fe); 3.3 Synthese de filtres RII . . . . . . . . . . . . 3
Wp bande passante.
% Affichage 3.3.1 Synthese de filtres analog. passe-bas 3 option peut prendre les valeurs :
Ws bande coupee. subplot(1,2,1); plot(h); 3.3.2 Transformation des frequences . . . 3 biased pour lestimateur biaise de la correlation :
3.3.3 Discretisation des filtres . . . . . . . 3
Rp attenuation maximale (en dB) dans la bande pas- xlabel(echantillon), ylabel(h[n]); b 1 un
3.3.4 Synthese complete 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 lordre des filtres . . . 4
xlabel(frequence f), ylabel(H(f)); unbiased pour lestimateur non biaise de la correla-
Rs attenuation minimale (en dB) dans la bande coupee. 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 frequence propre du filtre numerique. Pour un filtre 0.1 Matlab et sa bote a outils Signal Processing, contiennent
20
coeff pour laquelle la correlation est normalisee de
h(f )
h[n]

passe-bas Wp et Ws sont les frequences hautes de la bande 0.08 un grand nombre de fonctionnalites concernant : c
b facon a ce que Cx,y (0) = 1.
passante et basse de la bande coupee. Pour un filtre 0.06 40
la generation de signaux ;
passe-bande, Wp contient les frequences basse et haute 0.04

de la bande passante et Ws les frequences haute et basse 0.02


60 la representation des signaux (Transformee de Fou- 1.3 Fonction de transfert
de la bande coupee. 0
rier Discrete FFT, Transformee en Cosinus Discrets
80
DCT. . . ) ; La fonction de transfert (transformee de Laplace de la re-
Attention, les frequences sont normalisees par rapport a 0.02
ponse impulsionnelle) dun filtre analogique secrit sous
la frequence de Nyquist = f2e . 0.04 100 lanalyse 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 frquence f rametrique. . . ) ;
% Filtrage du signal b0 sM + b1 sM1 + + bM1 s + bM
etre calcule de la meme facon que pour les filtres passe-bas la representation des systemes lineaires (fonction de F (s) = N
y = filter(h,1,x); s + a1 sN 1 + + aN 1 s + aN
et passe-bande en renversant les frequences de 0 vers 1 et transfert, poles et zeros, espace detat. . . ) ;
Y = fft(y); ou sous la forme :
de 1 vers 0. (e.g. lordre dun passe-haut Wp=0.2, Ws=0.1
% Affichage lanalyse des systemes (reponse impulsionnelle, reponse PM
est le meme que celui dun passe-bas Wp=0.8, Ws=0.0). k=1 (s zk )
subplot(1,2,1); plot(t,y); en frequence. . . ) ; F (s) == K PN .
xlabel(temps t), ylabel(y(t)); le filtrage et la synthese 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 (transformee en z de la re-


Nous nous interesserons ici uniquement aux fonctions utiles
xlabel(frequence f), ylabel(Y(f)); ponse impulsionnelle) dun filtre numerique secrit quant
pour la representation frequentielle des signaux et des sys-
% Generation du signal a elle :
300 temes lineaires et aux fonctions de filtrage et de synthese 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 systemes peuvent donc se representer dans Matlab,
yb(f )

1 Representation des signaux et


y(t)

0.2
% TFD sur [0, Fe] avec les vecteurs du denominateur a=[1, a1 ,...aN ] et
0 150
X = fft(x); 0.2 systemes du numerateur 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 zeros
0.6
1.1 Temps z=[z0, z1 ,...zM ].
% Affichage 0.8 50
subplot(1,2,1); plot(t,x); Un filtre numerique a reponse impulsionnelle finie (RIF)
1
xlabel(temps t), ylabel(x(t)); 0
Un signal numerique echantillonne a la frequence fe se re- ayant son denominateur a 1 sera entierement caracterise
0 0.02 0.04
temps t
0.06 0 2000
frquence f
4000
presente naturellement dans Matlab, comme un vecteur de par sa reponse impulsionnelle (h = b).

Herve Carfantan [Link] Herve Carfantan [Link]


Annee 2012-2013 2 Universite Paul Sabatier Annee 2012-2013 3 Universite Paul Sabatier

2 Representations frequentielles 3.2.1 Troncature de la Reponse Impulsionnelle m est le vecteur des amplitudes de la reponse en frequence % Lowpass -> Bandpass (p 1 p
B ( 0 + 0
p ))
du filtre ideal aux frequences fn. >> [bt, at] = lp2bp(b,a,W0,Bw) ;
2.1 Signaux La fonction fir1 synthetise un filtre RIF simple (defini
Voir laide en ligne pour plus de details. . .
par une seule bande passante ou coupee) par troncature et % Lowpass -> bandstop (p B 1
)
La Transformee de Fourier Discrete dun signal de N points fenetrage de la reponse impulsionnelle du filtre numerique
p
0

+ p0
est calculee par un algorithme rapide (Fast Fourier Trans- ideal : 3.2.4 Methode de Remez >> [bt, at] = lp2bs(b,a,W0,Bw) ;
form FFT) :
>> h = fir1(n,fn,type,window) ; La fonction remez synthetise un filtre RIF approchant au Si b est la pulsation basse de coupure et h la pulsation
>> X = fft(x) ;
n est lordre du filtre (longueur de la RI moins un). mieux, au sens du minimax (norme L ), la reponse en haute de coupure, alors la pulsation propre du filtre 0 et
Cest egalement un signal (a valeurs complexes) de N points frequence du filtre ideal. la largeur de bande du filtre sont donnes par : B = h b

echantillonnes a la frequence fNe . Le vecteur des frequences Les frequences fn sont normalisees par rapport a la fre-
>> h = remez(n,fn,m) ; et 0 = h b .
qui lui est associe est : quence de Nyquist (fn= f / f2e , 0 fn 1). fn indique la
frequence de coupure pour les passe-bas et passe-haut, Les parametres sont les memes que pour firls.
>> f = (0:N-1)/N*fe; et les frequences de coupures basse et haute pour les 3.3.3 Discretisation des filtres
La fonction remezord permet de plus destimer lordre ne-
Rappelons que ce signal est de periode fe ; on peut le passe-bande et coupe-bande. cessaire a la methode de remez pour construire un filtre de La discretisation des filtres analogiques permet dobtenir
representer sur lintervalle [ f2e , f2e ] grace a la fonction La chane de caractere type precise le type de filtre. deviation maximale donnee. les coefficients des filtres numeriques a partir de ceux du
fftshift (qui ne fait quun decalage des vecteurs et aucun high pour passe-haut, stop pour coupe-bande, type Voir laide en ligne pour plus de details. . . filtre analogiques. Deux techniques sont disponibles a cette
calcul de fft) : omis pour les passe-bas et passe-bande. fin dans Matlab :
>> Y = fftshift(X); 3.3 Synthese de filtres RII Discretisation par invariance de la reponse impulsion-
Le vecteur window de longueur n+1, correspond a la fe-
nelle :
Le vecteur des frequences qui lui est associe est alors : netre prise en compte (par defaut fenetre de Hamming).
Les principales methodes de synthese de filtres a reponse >> [bd, ad] = impinvar(b, a, fe) ;
>> f = (0:N-1)/N*fe - fe/2; Les fonctions Matlab, disponibles pour creer des fe-
impulsionnelle infinie (RII) procedent par discretisation Ou fe est la frequence dechantillonnage.
netres sont : bartlett, blackman, boxcar (rectangu-
dun filtre analogique. Discretisation par transformation bilineaire : (approxi-
laire), chebwin (chebychev), Hamming, hanning, kaiser,
mation p T2e 1z
1
2.2 Systemes triang (triangulaire). 1+z 1 )
Voir laide en ligne pour plus de details. . . 3.3.1 Synthese de filtres analogiques passe-bas >> [bd, ad] = bilinear(b, a, fe) ;
La reponse en frequence dun systeme analogique est don-
nee par : Les fonctions suivantes renvoient les poles (p) zeros (z) et Attention, la transformation bilineaire provoque une de-
3.2.2 Echantillonnage de la Reponse en Fre- gain (k) des filtres analogiques passe-bas normalises (pul- formation des frequences (soit fa la frequence analogique
>> H=freqs(b,a,w);
quence sation de coupure unite) : et fn la frequence numerique) :
H est la reponse en frequence aux pulsations donnees dans
% Butterworth fe fa
le vecteur w (en radian par seconde). La fonction fir2 synthetise un filtre RIF par echantillon- fn = arctan( )
>> [z, p, k] = buttap(n) ; fe
La reponse en frequence dun systeme numerique est don- nage de la reponse en frequence du filtre analogique ideal
% Chebychev et fe fn
nee par : et fenetrage de la reponse impulsionnelle du filtre ainsi fa = tan( ).
% Oscillations inferieures a Rp dB fe
construit.
>> H=freqz(b,a,f,fe); % en bande passante
>> h = fir2(n,fn,m,window) ; Il est donc necessaire de pre-deformer le gabarit du filtre
H est la reponse du systeme aux frequences donnees dans le >> [z, p, k] = cheb1ap(n, Rp) ;
analogique pour obtenir le filtre numerique desire.
vecteur f (en Hertz) et fe la frequence dechantillonnage. n est lordre du filtre (longueur de la RI moins un). % Oscillations au deca de Rs dB
% en bande coupee
Voir laide en ligne pour plus de details. . . fn est le vecteur des frequences normalisees (0 fn 1) >> [z, p, k] = cheb2ap(n, Rs) ; 3.3.4 Synthese complete des filtres
Remarque : Matlab, travaille en pulsation pour les sys- definissant le filtre ideal comme lineaire par morceaux. % Elliptique : oscillations inferieures
temes analogiques et en frequence (et meme en frequence % a Rp dB en bande passante et au deca Matlab, propose des fonctions dans lesquelles la synthese
m est le vecteur des amplitudes, aux frequences donnees
normalisee) pour les systemes numeriques. % de Rs dB en bande coupee complete du filtre numerique est effectuee :
par fn, de la reponse en frequence du filtre ideal.
>> [z, p, k] = ellipap (n, Rp, Rs) ;
Voir laide en ligne pour plus de details. . . % Butterworth
3 Filtrage et synthese de filtres Pour obtenir une representation de ces filtres analogiques >> [b, a] = butter(n,Wn,type) ;
3.2.3 Moindres Carres en terme des numerateurs et denominateurs de leur fonc- % Chebychev
3.1 Filtrage tion de transfert (transformee de Laplace de leur reponse % Oscillations de Rp dB en bande
La fonction firls synthetise un filtre RIF approchant au impulsionnelle) : % passante
Le filtrage du vecteur x par le filtre numerique defini par >> [b, a] = cheby1(n,Rp,Wn,type) ;
mieux, au sens des moindres carres (norme L2 ), la reponse >> [b, a] = zp2tf(z,p,k) ;
a et b est effectue par : % Oscillations au deca de Rs dB
en frequence du filtre analogique ideal.
>> y = filter(b,a,x); % en bande coupee
>> h = firls(n,fn,m) ; 3.3.2 Transformation des frequences >> [b, a] = cheby2(n,Rs,Wn,type) ;
Remarque : Les conditions initiales de lequation de recu-
n est lordre du filtre (longueur de la RI moins un). % Elliptique : oscillations de Rp dB en
rence peuvent etre donnees en entree de la fonction filter. Pour transformer les filtres passe-bas en tout type de
% bande passante et au deca de Rs dB en
Elles se calculent par la fonction filtic. fn est le vecteur des frequences normalisees (0 fn 1) filtres :
% bande coupee
definissant le filtre ideal. % Lowpass -> Lowpass (p p0 )
>> [b, a] = ellip(n,Rp,Rs,Wn,type) ;
3.2 Synthese filtres RIF Attention, contrairement a fir2, ces frequences 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 differentes methodes de synthese de filtres RIF definir des bandes de frequences ou le filtre ideal nest >> [bt, at] = lp2hp(b,a,W0) ; du filtre numerique a partir de :
approchant un filtre ideal : pas precise (bandes de transition). n ordre du filtre.

Herve Carfantan [Link] Herve Carfantan [Link]

Vous aimerez peut-être aussi