0% ont trouvé ce document utile (0 vote)
142 vues58 pages

Introduction à MATLAB et ses fonctionnalités

Transféré par

sony sony
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)
142 vues58 pages

Introduction à MATLAB et ses fonctionnalités

Transféré par

sony sony
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

Matlab

Prise en main

1
Généralités
 MATLAB: contraction de MATRIX LABORATORY
 Première version crée en 1970 par Cleve Moler
 500 000 utilisateurs répartis dans l'industrie, les
administrations et les établissements scolaires
 utilisé dans de nombreux domaines d’application:
 Traitement du signal,
 Traitement d' images,
 Conception de systèmes de contrôle,
 Instrumentation
 Sciences de la terre et de la vie,
 Finances, économie
 architecture ouverte facilitant l'utilisation de MATLAB et
de ses produits compagnons pour explorer des données
et créer des outils personnalisés fournissant des aperçus
rapides
2
Généralités
 Environnement de programmation pour le calcul
scientifique
 Outil pour le calcul numérique, la visualisation de
graphiques
 Permet d’élaborer rapidement des schémas de solution
numérique.
 Langage interprété

 Outils inclus dans MATLAB


 acquisition de données
 analyse et exploration de données
 visualisation et traitement d'images
 prototypage et développement d'algorithmes
 modélisation et simulation
 programmation et développement d'applications
3
L’environnement MATLAB
Entièrement configurable
Menus
Fenêtres graphiques
Barre Command Window
d’outils
Current directory
Command history
Workspace
Help

Workspace Barres de menus


File
Edit
View
Go
Favorites
Debug
Desktop
Window
Help

barres d’outils
Icônes : fichiers,
copier/coller, Simulink,
Help…
Current directory
Command history 4
Help Command Window
Prise en main de MATLAB
Utilisation de MATLAB en calculette
 Dans la fenêtre de commande (command window)
 exemples
» 4/5
» 4/5;
» [1,8]
» [1 3;2 9]
» pi
» sin(pi)
» sin pi
» [Link]
» 7:-2:-6
» pi
» format short
» pi

5
Prise en main de Matlab
Utilisation en ligne de commande (variables)
 exemples
» a=2/3
» b=2/3
» c=[1 3;2 5.2]
» d=a*c
» e=[Link]
» who
» whos

Utilisation des aides


 exemples
 helpwin
 help sin
 lookfor sin

6
Éléments de langage
Variables
 Nom : débute par une lettre (différence entre Majuscules et minuscules)
 Pas de noms de variables réservés  prudence !
 PAS de déclaration de type ou de taille des variables utilisées : le type
est établi automatiquement à partir des valeurs affectées à la variable
 4 types de données
 Réels
 Complexes
 Caractères
 Logiques
 Exemple
>> clear;
>> a=5.1;b=1+i;voyelles= ‘aeiouy’;
>> whos ;
Name Size Bytes Class
a 1x1 8 double array
b 1x1 16 double array(complex)
voyelles 1x6 12 char array
Grand total is 8 elements using 36 bytes
7
Éléments de langage
Les types de données (help datatypes)
 Les réels
 Représentés par des nombres flottants ;
 Pas de différence entre entier, « entiers longs », réels, « réels longs »
 Notation décimale (+1234.5678, -1234.5678) ou scientifique (±1234e±5678)
 les complexes (complex)
 Constante désignant l’imaginaire i (i2 =-1) : i ou j (Attention aux noms des
indices de boucles) ;
 Ecriture : a+ib , a+i*b , r*exp(iT) , r*exp(i*T) …
 Fonctions utiles : imag , real , abs , angle ;
 les chaînes de caractères (char)
 Suites de caractères, encadrées par des apostrophes (') ;
 Interprétées comme des tableaux de caractères (de composantes, chaque
caractère de la chaîne) ;
 Fonctions utiles : voir manipulation de tableaux
 Le type Logique (logical)
 0 pour FAUX / 1 pour VRAI ;

8
Eléments de langage
Vecteurs et matrices
 Définition : liste des éléments entre crochets ([…] )
 Séparation des éléments d’une même ligne par , ou espace
 Séparation des lignes par ; ou retour chariot
 Extraction de sous-matrices :
 A(i,j) : élément de la iiéme ligne et jième colonne de A
 A(:,j) : jième colonne de A
 A(i,:) : iiéme ligne
 A(idébut:ifin,j) : éléments des lignes idébut à ifin de la jième colonne
 diag(A) : éléments de la diagonale de A
 Création de matrices particulières
 eye(n ) : matrice identité de taille n
 ones(n,m ) : matrice de taille (n,m), de composantes 1
 zeros(n,m ) : matrice de taille (n,m), de composantes 0
 rand(n,m ) : matrice de taille (n,m), de composantes aléatoires (entre 0 et 1)
 diag(v ) : matrice diagonale, de diagonale égale au vecteur v

9
Éléments de langage
 Extraction de sous-vecteurs
 v(k) : kième élément du vecteur v
 Création de vecteurs particuliers
 linspace(a,b,N) : crée un vecteur de taille N, de composantes
a+(k-1)(b-a)/(N-1)
 a:h:b : vecteur de composantes a, a+h, a+2h, …,a+Kh avec a+Kh≤b

10
Eléments de langage
Polynômes
 Définition :
un polynôme de degré n, p(x) = anxn+ an-1xn-1+…+ a1x + a0 est défini par le
vecteur p = [an,an-1,…,a1,a0 ] ;
 Fonctions utiles
 polyval : évaluation du polynôme p en des points donnés
 poly : représentation canonique d ’un polynôme à partir de ses racines
 roots : racines d’un polynôme
Variables spéciales et constantes (help elmat)
 ans : résultat le plus récent
 pi=3.1415926535897
 i (ou j ) : unité imaginaire
 eps : précision numérique relative
 realmin : plus petit nombre flottant
 realmax : plus grand nombre flottant
 inf : infini, obtenu pour les expressions excédant realmax
 NaN : Not A Number, obtenu dans les opérations d ’indétermination

 Attention !
le nom des constantes n ’est pas réservé
11
Éléments de langage
Opérateurs (help ops)
 Opérations matricielles : + , - , * , / , ^
\ ( division à gauche (x=a\b est la solution de ax=b)
 Opérations terme à terme sur les tableaux : .* , ./ , .^
 Opérateurs relationnels : == , ~= , < , > , <= , >=
 Opérateurs logiques : & , | , ~ , xor

Fonctions opérant sur des Scalaires (help elfun ) :


 entiers
 rem : division entière
 lcm : plus petit multiple commun
 gcd :plus grand multiple commun
 factor :décomposition en facteurs premiers
 complexes
 conj :conjugué
 abs : module
 angle : phase
 real : partie réelle
 imag : partie imaginaire
12
Éléments de langage
Fonctions mathématiques
log, log10, exp, sqrt, abs, sign, cos, acos, cosh, acosh, …
Fonctions d ’arrondi
 round : arrondi à l’entier le plus proche
 floor : arrondi par défaut
 ceil : arrondi par excès
 fix : arrondi par défaut (resp. excès) pour un réel positif (resp. négatif)

Fonctions opérant sur des vecteurs


 cross : produit vectoriel
 dot : produit scalaire
 sum , prod , max , min , mean : somme, produit, maximum, minimum
et moyenne des éléments
 sort : tri par ordre croissant
 any : 1 si au moins un des éléments du vecteur est non nul, et 0 sinon
 all : 1 si tous les éléments du vecteur sont non nuls, et 0 sinon

13
Éléments de langage
Fonction opérant sur des matrices (help matfun )
 A’ : transposée de la matrice A
 inv : inverse de la matrice
 det : déterminant de la matrice
 rank : rang de la matrice
 norm : norme euclidienne de la matrice
 eig : valeurs propres et vecteurs propres de la matrice
 size : taille de la matrice A
 poly : polynôme caractéristique d ’une matrice
 trace : trace
 expm : exponentielle de matrice
 any / all : même fonctionnement que pour les vecteurs, mais travail par
colonnes (par défaut) ou par lignes

14
Les structures d’enchaînement
boucle FOR
Répétition d’une action un nombre déterminé de fois

 Syntaxe
for variable = expression
instruction
...
instruction
End

 Exemple
m=5;n=3;
for i = 1:m
for j = 1:n
H(i,j) = 1/(i+j);
end
end

15
Les structures d’enchaînement
boucle WHILE
 Exécution “a priori” un nombre de fois inconnu.
Peut boucler de manière infinie
Incrémentation à la charge de l'utilisateur.
Initialisation nécessaire
Permet des conditions de test booléennes de bouclage complexes

 Syntaxe
while test
instruction
...
instruction
end;

Le booléen test est la négation de la condition d'arrêt

16
Les structures d’enchaînement
Test
 Réalisation d’une action sous condition

 Syntaxe
if expression1
instructions1
elseif expression2
instructions2
else
instructions3
end

 Exemple
if a<b
min=a
else
min=b
end

17
Les structures d’enchaînement
Branchement à choix multiples

 Syntaxe

switch expression
case valeur_1
instructions1;
case valeur_2
instructions2;
case {valeur_3,valeur_4,...,valeur_n}
instructions3;
otherwise
instruction4;
end;

18
Matlab
Fichiers de commandes

19
Fichiers de commandes
Matlab permet d’exécuter facilement une séquence de commandes (script)
enregistrées dans un fichier
 langage de programmation

 Avantages évidents pour :


• la sauvegarde du travail
• sa mise au point
• la rapidité d’exécution

 Les fichiers qui contiennent les instructions Matlab sont appelés « M-


files » et comportent une extension .m (ou .mex)

 Ils consistent en une succession de commandes telles qu’elles seraient


entrées sous l’interpréteur Matlab

 On peut les créer, à l’aide de l’éditeur de Matalab ou de n’importe quel


éditeur de texte, puis les utiliser de la même manière que toutes les
autres commandes de Matlab

20
L’éditeur de texte de Matlab
Lancement
 À partir du menu File/New/M-file
 Au clavier : CTRL + N
 En cliquant sur l’icône

21
La fenêtre d’édition
Barres d’outils
Barre de menus

Exécution
Point d’arrêt Suppression des
points d’arrêt

Numéros des lignes


Onglet de sélection

22
La fenêtre d’édition
Fonctionnalités de l’éditeur
 Création et modification de fichiers textes
 Indentation
 Reconnaissance des éléments syntaxiques et mise en couleur
 Contrôle des parenthèses, crochets, accolades…
 Possibilité d’atteindre rapidement une ligne donnée (Edit/Go to line ou
CTRL+G)
 Marque-pages pour atteindre rapidement un endroit donné (Edit/Set/clear
bookmark, previous bookmark, next bookmark)
 Recherche et remplacement de texte (Edit/Find and replace ou CTRL + F)
 Sauvegarde et impression
 Exécution et mise au point
 Lancement (icône exécution ou Debug/Run ou F5)
 Points d’arrêt (menu Breakpoints)
 Exécution en pas à pas (Debug/Step, Step in, Step out)

23
Exemple de programme
Fichier de script exemple.m Exécution
% programme d'exemple : calcul  dans la fenêtre de commande
% matriciel
% >> exemple
v1=[2 -1 4]
v2=[1:4]  dans l’éditeur
v3=v2'
A1=[1 2;3 4] cliquer sur le bouton
A1(1,:) d’exécution ou F5 …
A1(:,2)
A2=[2 -1 0;3 4 3]
A2(1:2,1:2)
eye(4)
zeros(5,2)
M1=diag(2:4)
M2=diag(1:2,1)
M3=diag([-1 -2],-1)
M4=M1+M3-diag(3:4,1)

% indique une ligne de commentaire

24
Fichiers de fonctions
Script
 Suite de commandes MATLAB (les mêmes que celles de la ligne
commande)
 Pas d'arguments d'entrée et de sortie
 Variables utilisées : celles de l'espace de travail
Fichier de fonction
 Fichier permettant de programmer des fonctions avec des
arguments d'entrée et de sortie
 Passage des arguments par valeur

 Syntaxe

function [ret1,…,retN] = nom_fonction (arg1,…,argP)


Bloc d'instructions impliquant les arguments (d'entrée), et au
moins une assignation aux arguments de retour

arg1, arg2,..., argP : valeurs fournies à la fonction comme données


d'entrée (appelées arguments d'entrée)
ret1, ret2,..., retN : arguments de retour (ou de sortie) des
résultats des opérations effectuées à l'intérieur de la fonction,
et pouvant être assignés à une variable ou à plusieurs variables
à l'extérieur de la fonction
25
Exemple
Calcul de la surface d’un cylindre :
 Arguments d’entrée : le rayon et la hauteur du cylindre ;
 Variable de sortie : la surface, égale à 2 fois le rayon par la hauteur.

 Fichier aire.m

 Appel
>> R = 1.2
R =
1.2000
>> H = 12.14
H =
12.1400
>> S = aire(R,H)
S =
91.5334
>> aire(3,10)
ans =
188.4956
26
Matlab
Graphiques

27
Fenêtre graphique
L’ouverture d’une fenêtre graphique se fait à l’aide de la commande figure
figure  ouvre une nouvelle fenêtre
figure(2)  ouvre la figure N°2 ou l'active si elle existe déjà
Les menus et boutons permettent de modifier interactivement tous les
attributs du graphique (style, couleurs, rendu, point de vue…). Ils peuvent
aussi être définis par le programme.

Modification Ajout d’éléments


de tous les graphiques:
attributs de la Sélection des légendes, titre, flèches…
figure barres d’outil
Sauvegarde, (couleurs,…) Zoom, rotation,…
impression …

rotation
zoom
Outils texte, flèche,
ligne

28
Tracé de graphes multiples
 La fenêtre graphique peut être subdivisée en plusieurs zones de tracé
par :
subplot(m,n,p) m:lignes
n: colonnes
p:graphe courant, p [1,nxm]
Exemple
figure(1)
subplot(3,1,1);
fplot('sin(x)',[0,2*pi])
subplot(3,1,2);
fplot('cos(x)',[0,2*pi])
subplot(3,1,3);
fplot('sin(x)*cos(x)',[0,2*pi])

29
Tracé de graphes multiples
 Plusieurs graphes peuvent être superposés dans la même zone de tracé
par :
hold on

 Pour effacer le graphe précédent lors d’un nouveau tracé, on emploie :


hold off

Exemple
figure(1)
subplot(2,1,1);
fplot('sin(x)',[0,2*pi])
hold on;
fplot('cos(x)',[0,2*pi],'r');
hold off;
subplot(2,1,2);
fplot('sin(x)*cos(x)',[0,2*pi])

30
Les types de graphiques
Matlab permet une grande variété de représentations 2D ou 3D

 Courbes 2D
plot(X,Y) X,Y: vecteurs de coordonnées
et aussi
stem, stairs, semilogx, semilogy,
loglog, plotyy, errorbar,polar,…

exemples
figure figure
x=0:0.01:2 a=-6:0.3:6
y=x.^0.5 b=sinc(a)
plot(x,y) stem(a,b)

31
Les types de graphiques
 Courbes 3D
plot3(X,Y,Z) X,Y,Z: vecteurs de coordonnées

exemple
figure
tetha=0:pi/50:20*pi
y=sin(tetha).*tetha
x=cos(tetha).*tetha
z=tetha
plot3(x,y,z)
grid

32
Les types de graphiques
 Tracé de fonctions
fplot('fonction', bornes)
et aussi
ezplot('fonction')
ezpolar('fonction')
ezplot3(‘fonction’)

exemples:
ezplot('atan(x^2)')

ezplot('y^2-cos(x^2+y)')

33
Les types de graphiques
 Histogrammes
 bar, bar3, area

voir aussi :
rose

 Rubans
ribbon

 Nuages de points 2D
scatter, scatter3

34
Les types de graphiques
 Champs de vecteurs 2D
 quiver,compass,feather

 Champs de vecteurs 3D
 coneplot

 Maillages et surfaces
 mesh,surf,…

Pour des fonctions :


ezmesh,ezsurf,…

35
Les types de graphiques
 isocontours (courbes de niveau)
 contour, contourf, ezcontour,…
et ezcontourf

 isocontours 3D
 contour3

 Images
imagesc, imshow

 Données volumiques

36
Propriétés du graphique
axes titres et légendes
 Modification des bornes du  Titre
tracé title('chaîne de caractères')
axis([xmin xmax ymin ymax])  Légende d'axe
axis([xmin xmax ymin ymax xlabel('chaîne de caractères')
zmin zmax])
ylabel('chaîne de caractères')
axis auto
 Texte n'importe où dans la
 Suppression des axes fenêtre
axis off text(x,y,'chaîne de
axis on caractères')
 Rapport x/y  Légende
axis square legend('chaîne de caractères',
axis equal 'chaîne de caractères',…)
axis normal
 Ajout d’un quadrillage
grid on
grid off

37
Propriétés du graphique
Couleurs, styles de lignes et marqueurs
Certains attributs du graphique peuvent être spécifiés dans les tracés 2D.
 syntaxe
plot(x,y,'couleur_style_marqueur')

couleurs
'c' 'm' 'y' 'r' 'g' 'b' 'w' 'k'
cyan magenta yellow red green blue white black
styles de lignes
marqueurs

38
Matlab
Entrées-sorties

39
Entrées-sorties
Le transit de données (‘entrées’ ou ‘sorties’) avec Matlab peut se faire
de 3 façons différentes:
 Opérations interactives à travers l’utilisation du clavier (entrées) et de l’écran
(sorties)
 Lecture ou écriture d’un fichier de données
 Sauvegarde de variables par l'utilisation des fonctions save et load

40
Entrées-sorties interactives
 Lecture en mode interactif (clavier)
n=input(‘Entrez la valeur de l’entier: ’)
Affiche au clavier la chaîne de caractères :
‘Entrez la valeur de l’entier: ’
et attend que l’utilisateur entre la valeur. Ensuite, la donnée est stockée dans
la variable n

 Ecriture à l'écran avec fprintf


exemple : fprintf(‘Le volume est: %12.5f.\n',vol)
Chaîne de format
Chaîne de format :
• \n spécifie un passage à la ligne suivante Code de format Descriptif Exemple
• % spécifie l’endroit dans la chaîne de c Caractère a
sortie où doit être écrit la variable d ou i entier décimal, signé -392
e Notation scientifique, avec e 3.9265e2
• 12.5 écriture avec 5 chiffres après la E Notation scientifique, avec E 3.9265E2
virgule. Réserve 12 espaces pour f réel sans exposant 392.65
écrire, et met des blancs si pas g le plus court de %e ou %f 392.65
utilisés. G le plus court de %E ou %f 392.65
• f spécifie le format d’affichage. o Octal signé 610
y a d’autres codes d’affichage s Chaîne de caractères pipoule
u Entier décimal non signé 7235
x Entier hexadécimal non signé 7fa
X Entier hexadécimal non signé (capitales) 7FA
p adresse B800:0000
41
Fichiers formatés
 Ouverture du fichier
fid=fopen(nom,mode)
fid,Message]=fopen(nom,mode)
fid : entier constituant un identifiant "poignée", qui permettra l’utilisation du
fichier après ouverture (entier positif si succès, -1 sinon)
Message : message d ’erreur renvoyé si l ’ouverture n ’a pas pu se faire
nom : nom sur disque du fichier
Mode : chaîne pouvant prendre les valeurs suivantes :
‘ r ’ : pour la lecture
‘ w ’ : pour l’écriture (création si nécessaire)
‘ a ’ : pour l’ajout (création si nécessaire)

 Fermeture du fichier
val = fclose(fid)
fid : identifiant correspondant au fichier à fermer
val : égal à 0 en cas de succès ou -1 en cas d ’échec

42
Lecture et écriture formatée dans un fichier
 Ecriture
fprintf(fid,chaîne_de_format,arg1,arg2,…)
 même fonctionnement que pour un affichage à l’écran
 Lecture
[a,compteur]= fscanf(fid,chaîne_de_format,taille)
fid : identificateur du fichier à lire (qui doit avoir été ouvert par fopen)
a : matrice dans laquelle se trouve le résultat de la lecture
compteur (optionnel) : retourne le nombre d ’éléments lus avec succès
taille (optionnel) :
 si taille n ’est pas précisé, le fichier est lu entièrement
 si taille = n, n éléments sont lus et mis dans un vecteur colonne a
 si taille = [m,n], les mxn premiers éléments sont mis dans une matrice a
de taille mxn, avec remplissage colonne par colonne.
 chaîne_de_format: chaîne de caractères permettant de préciser le mode de
conversion utilise le caractère % suivi de caractères de conversion :
 d : décimal ;
 f : flottant fixe [-][Link] ;
 e, : flottant scientifique [-][Link][+/-]xxxx ;
 c : caractère ;
 s : chaîne de caractères. 43
Lecture et écriture binaire
Ecriture
compteur = fwrite(fid,a)
fid : identificateur du fichier à lire (qui doit avoir été ouvert par fopen)
a : matrice à écrire dans le fichier
compteur (optionnel) : retourne le nombre d ’éléments écrits avec succès

 Lecture
[a,compteur]= fread(fid,taille)
fid : identificateur du fichier à lire (qui doit avoir été ouvert par fopen)
a : matrice dans laquelle se trouve le résultat de la lecture
compteur (optionnel) : retourne le nombre d ’éléments lus avec succès
taille (optionnel) :
 si taille n ’est pas précisé, le fichier est lu entièrement
 si taille = n, n éléments sont lus et mis dans un vecteur colonne a
 si taille = [m,n], les mxn premiers éléments sont mis dans une matrice a
de taille mxn, avec remplissage colonne par colonne.

44
Lecture et écriture de variables
 Ecriture
save fich_sauv a b c
save fich_sauv.txt a b c -ascii

fich_sauv : nom du fichier (fich_sauv.mat pour des fichiers binaires)


a, b, c : variables à sauvegarder
- ascii : option pour créer un fichier ascii lisible par d’autres applications

 Lecture
load fich_sauv
load fich_sauv a c
load fich_sauv.txt

45
Matlab
Fonctions utiles en traitement du signal

46
Signaux utiles
Porte
 rectpuls
1.5
 Exemple 1

Te=0.01 0.5
t=-2:Te:2 0
x = rectpuls(t)
-0.5
y = 1.25*rectpuls(t,3) -2 -1.5 -1 -0.5 0 0.5 1 1.5 2

plot(t,x,t,y)

Impulsion triangulaire
 tripuls 1.5

1
 Exemple
0.5
t=-10:Te:10 0
x = tripuls(t,12)
-0.5
plot(t,x) -10 -5 0 5 10

47
Signaux utiles
Sinus cardinal
 sinc
 Exemple 1

Te=0.01
0.5
t=-10:Te:10
x = sinc(t) 0

plot(t,x)
-0.5
-10 -5 0 5 10

Signaux périodiques
 sin, cos - signaux sinusoidaux
 Exemple
1

0.5
x = sin(2*pi*t)
0
y = cos(pi*t)
-0.5
plot(t,x,t,y)
-1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
48
Signaux utiles
Signaux périodiques
 square - signal carré
 Exemple 1.5
1
x=square(2*pi*t) 0.5

y=1.25*square(2*pi*t, 30) 0
-0.5
plot(t,x,t,y,':') -1
-1.5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

 sawtooth -signal en dents de scie


 Exemple 1.5
1
x = sawtooth(2*pi*t) 0.5

y = 1.25*sawtooth(2*pi*t,30) 0
-0.5
plot(t,x,t,y,':') -1
-1.5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

49
Représentation fréquentielle
Transformations
 fft - transformée de Fourier discrète
 fftshift - permutation des hautes fréquences vers les
fréquences négatives
 ifft - transformée de Fourier discrète inverse

 Exemple
S=fft(s);
S2=fftshift(S);
subplot(211)
plot(f,abs(S))
subplot(212)
plot(f2,abs(S2))

50
Représentation fréquentielle
Fenêtres de pondération

 boxcar - fenêtre rectangulaire


 triang - fenêtre triangulaire
 hamming - fenêtre de Hamming
 hann - fenêtre de Hanning
 kaiser - fenêtre de Kaiser
 bartlett - fenêtre de Bartlett
 blackman - fenêtre de Blackman

51
Représentation fréquentielle
 Exemple
>> N=25;
>> k=-(N-1)/2:(N-1)/2;
>> s=hamming(N);
>> stem(k,s)

52
Filtrage numérique
Filtres à réponse impulsionnelle infinie
 Synthèse des filtres
 butter - filtre de Butterworth
 cheby1 - filtre de Tchebycheff de type I
(ondulation dans la bande passante)
 ellip - filtre elliptique

 calcul de l’ordre
 buttord - ordre pour un filtre de Butterworth
 cheb1ord - ordre pour un filtre Tchebycheff de type I
 ellipord - ordre pour un filtre elliptique

53
Filtrage numérique
 Exemple
Wp=0.5; % fréquences normalisée
Ws=0.8;
Rp=3;
Rs=40;
[N, Wn] = buttord(Wp, Ws, Rp, Rs) %ordre et fréquence de
coupure
[b,a]=butter(N,Wn) % coefficients

 Résultats

N=5
Wn = 0.5642
b = 0.0849 0.4247 0.8494 0.8494 0.4247 0.0849
a = 1.0000 0.6325 0.7735 0.2281 0.0776 0.0063
54
Filtrage numérique
Filtrage

 filter
filtrage d’un signal. Le filtre est défini par les coefficients
an et bm de la fonction de transfert en z, en supposant
a0=1

N M
y(k )   an .y(k  n)   bm .x(k  m)
n 1 m 0

y(k )  b0 x(k )  b1x(k  1)    bM x(k  M)

a1y(k  1)    aN y(k  N)

55
Filtrage numérique
 exemple : filtrage d’un signal aléatoire large bande

Wp=0.3; Ws=0.5;Rp=3;Rs=40;N=1024;
t=(0:N-1);f=(0:N-1)/N;f=(-N/2:(N-1)/2)/N;

[n, Wn] = buttord(Wp, Ws, Rp, Rs)


[b,a]=butter(n,Wn)

s=randn(N,1)
v=filter(b,a,s);

S=fftshift(fft(s));
V=fftshift(fft(v));
subplot(211)
plot(f,abs(S))
subplot(212)
plot(f,abs(V))

56
Filtrage numérique
Calcul de la réponse impulsionnelle

 impz
Renvoie la réponse impulsionnelle du filtre. Le filtre est
défini par les coefficients an et bm de la fonction de
transfert en z, en supposant a0=1

Remarque
>>h=impz(b,a,N)
est équivalent à :
>>imp=[1, zeros(1,N-1)];
>>h=filter(b,a,imp)

57
Filtrage numérique
Calcul de la réponse en fréquence

 freqz
Renvoie la réponse fréquentielle du filtre. Le filtre est défini par
les coefficients an et bm de la fonction de transfert en z, en
supposant a0=1

Remarque
>>[S,f]=freqz(b,a,N,Fe);
est équivalent à :

>>f=(0:N-1)*Fe/N;
>>v=impz(b,a,2*N)
>>S=fftshift(fft(v));
>>S=S(N+1:2*N)

58

Vous aimerez peut-être aussi