Académique Documents
Professionnel Documents
Culture Documents
Rappels :
1-Les fonctions usuelles de Matlab
1-1- Commandes générales
Lancement et arrˆet de Matlab
matlab.rc fichier M de d´emarrage principal
quit permet de quitter Matlab
startup.m fichier M de d´emarrage secondaire
Gestion de l’environnement
addpath ajoute un r´epertoire `a la liste des chemins de recherche de
Matlab
doc charge la documention hypertexte
help lance l’aide en ligne
lasterr fournit le dernier message d’erreur
lookfor lance une recherche par mot-cl´e
path affiche la liste des chemins de recherche
profile mesure le temps d’ex´ecution d’un fichier M
rmpath enl`eve un r´epertoire de la liste des chemins de recherche Mat-
lab
type liste le contenu d’un fichier
version affiche la version de Matlab en cours d’ex´ecution
what donne la liste des fichiers M, MEX et MAT pr´esents dans le r´eper-
toire courant
whatsnew affiche les fichiers readme pour Matlab et ses boˆıtes `a outils
which permet de localiser les fichiers et les fonctions
Fonctions logiques
Niveau : 3ISE Matière : traitement de signal analogique
Prof : Mr Nabil ARSALANE
Fonctions binaires
bitand ET logique bit `a bit
bitcmd compl´ement bit `a bit
bitor OU logique bit `a bit
bitmax plus grand entier non sign´e repr´esentable sur la machine
bitset mise `a 1 d’un bit `a un emplacement donn´e
bitshift d´ecalage (`a droite ou `a gauche)
bitget valeur d’un bit `a une position donn´ee
bitxor OU EXCLUSIF bit `a bit
Programmation
break interrompt l’ex´ecution de la structure de contrˆole courante
case s´el´ection multiple (se pr´esente apr`es un switch; voir aussi
otherwise)
else aiguillage (se pr´esente apr`es un if)
elseif aiguillage multiple (se pr´esente apr`es un if)
end sert `a d´elimiter la fin d’une instruction for, if, switch ou
while
error provoque l’affichage du message d’erreur pass´e en argument
et l’interruption du programme
for boucle inconditionnelle
if branchement conditionnel (voir aussi else et elseif)
Niveau : 3ISE Matière : traitement de signal analogique
Prof : Mr Nabil ARSALANE
Saisie interactive
input interrompt l’ex´ecution en attente d’une saisie de l’utilisateur
keyboard interrompt l’ex´ecution et donne le controˆle au clavier
menu g´en`ere un menu de choix `a destination de l’utilisateur
pause interrompt temporairement l’ex´ecution
Date et Heure
calendar retourne une matrice repr´esentatn le calendrier du mois sp´e-
cifi´e
clock retourne la date et l’heure courantes sous forme d’un vecteur
[ann´ee mois jour heures minutes secondes]
cputime calcule le temps ´ecoul´e entre deux dates
date retourne la date courante
datenum convertit la date sous forme de chaˆıne en un nombre
datestr convertit la date sous forme d’un nombre en une chaˆıne
datevec s´epare les composantes d’une date, donn´ee sous forme d’une
chaˆıne ou d’un nombre, en un vecteur [ann´ee mois jour
heures minutes secondes]
eomday d´etermine le jour de fin d’un mois
etime calcule le temps (en secondes) ´ecoul´e entre deux dates donn´ees
sous forme de vecteur [ann´ee mois jour heures minutes
secondes]
now retourne la date et l’heure courantes sous forme d’un nombre
tic d´eclenche la fonction de chronom´etrage
toc arrˆete la fonction de chronom´etrage
weekday retourne le jour de la semaine, sous forme d’un nombre ou
d’une chaˆıne, d’une date donn´ee
Matrices sp´ecialis´ee
compan matrice compagnon
gallery matrice de tests
hadamard matrice de Hadamard
hankel matrice de Hankel
hilb matrice de Hilbert
invhilb inverse d’une matrice de Hilbert
magic carr´e magique
pascal matrice de Pascal
toeplitz matrice de Toeplitz
wilkinson matrice de Wilkinson
rank rang
rcond estimation de l’inverse du conditionnement
rref, rrefmovie r´eduite ´echelonn´ee par ligne
subspace angle entre deux sous espaces vectoriels
trace trace (some des ´el´ements diagonaux
Syst`emes lin´eaires
chol factorisation de choleski
inv inversion matricielles
lscov r´esolution au sens des moindres carr´es (la covariance ´etant
connue)
lu factorisation LU
nnls m´ethodes des moindres carr´es
pinv pseudo-inverse de Moore-Penrose
qr factorisation QR
Fonctions matricielles
expm exponentielle matricielle
funm ´evaluation de fonctions matricielles
logm logarithme matriciel
sqrtm racine carr´ee matricielle
Fonctions vectorielles
cross produit vectoriel
intersect d´etermine les ´el´ements communs `a deux vecteurs
ismember d´etermine si un nombre apparaˆıt dans un vecteur
setdiff effectue la diff´erence ensembliste entre les ´el´ements de deux
vecteurs
Niveau : 3ISE Matière : traitement de signal analogique
Prof : Mr Nabil ARSALANE
Fonctions ´el´ementaires
convhull enveloppe convexe
cumprod produit cumul´e
cumsum somme cumul´ee
cumtrapz somme partielles au cours d’une int´egration num´erique par la
m´ethode des trap`ezes
delaunay Triangulation de Delaunay
dsearch recherche du point le plus proche
factor d´ecomposition en produit de facteurs premiers
max ´el´ement maximal d’un tableau
mean moyenne des valeurs d’un tableau
median valeur m´ediane d’un tableau
min ´el´ement minimal d’un tableau
perms liste toutes les permutations possibles
polyarea Aire d’un polygone
primes g´en`ere la liste des nombres premiers
prod effectue le produit des ´el´ements d’un tableau
sort trie les ´el´ements d’un tableau
sortrows trie les lignes d’une matrice par ordre croissant
std ecart type
sum effectue la somme des ´el´ements d’un tableau
trapz int´egration num´erique selon la m´ethode des trap`ezes
tsearch recherche d’un triangle de Delaunay englobant le point consi-
d´er´e
voronoi Diagramme de Voronoi
2-
Diff´erences finies
del2 Laplacien discret
diff d´erivation discr`ete (diff´erences finies)
gradient gradiant num´erique
3-
Corr´elation
corrcoef coefficient de corr´elation
cov matrice de covariance
4-
Filtrage et convolution
conv convolution et produit de polynˆomes
conv2 convolution bidimensionnelle
deconv d´econvolution et division de polynoˆme
filter filtrage num´erique avec filtre de type RIF (r´eponse impulsion-
nelle finie) et avec filtres de type RII (r´eponse impulsionnelle
infinie)
filter2 filtrage num´erique bidimensionnel
Niveau : 3ISE Matière : traitement de signal analogique
Prof : Mr Nabil ARSALANE
Transformation de Fourier
abs module d’un nombre complexe
angle argument d’un nombre complexe
cplxpair associe des nombres complexes par paires de nombres deux `a
deux conjugu´es
fft transform´ee de Fourier rapide monodimensionnelle
fft2 transform´ee de Fourier rapide bidimensionnelle
fftshift permet le centrage du spectre d’une transform´ee de Fourier
rapide
ifft transform´ee de Fourier inverse monodimensionnelle
ifft2 transform´ee de Fourier inverse bidimensionnelle
nextpow2 d´etermine la puisance de 2 imm´ediatement sup´erieure au
nombre pass´e en argument
unwrap corrige les angles des phases
Interpolation
interp1 interpolation de donn´ees monodimensionnelles
interp2 interpolation de donn´ees bidimensionnelles
interp3 interpolation de donn´ees tridimensionnelles
interpft interpolation de donn´ees dans le domaine fr´equentiel fond´ee
sur une transform´ee de Fourier rapide
interpn interpolation de donn´ees multidimensionnelles
meshgrid g´en`ere des matrices pour l’´etablissements d’un graphique en
3 dimensions
ndgrid g´en`ere les tableaux pour une interpolation multidimension-
nelle
spline interpolation par des splines cubiques
Niveau : 3ISE Matière : traitement de signal analogique
Prof : Mr Nabil ARSALANE
1-10- Int´egration num´erique
Inr´egartion num´erique
dblquad int´egration num´erique d’une int´egrale double
fmin minimisation d’une fonction d’une variable
fmins minimisation d’une fonction de plusieurs variables
fzero recherche num´erique des z´eros d’une fonction d’une variable
ode45, ode23, ode113, solveurs (sch´emas d’int´egration num´erique de Runge-Kutta,
ode15s, ode23s Adams-Bashforth-Moulton, ...) d’´equation diff´erentielle
odefile permet de d´efinir une ´equation diff´erentielle en vue d’un r´eso-
lution num´erique
odeget permet de connaˆıtre les param`etres d’une r´esolution num´e-
rique d’´equation diff´erentielles
odeset permet de modifier les param`etres d’une r´esolution num´erique
d’´equation diff´erentielles
quad, quad8 int´egration num´erique d’une int´egrale
vectorize vectorisation d’une expression
Impression
print impression ou copie dans un fichier M d’un graphique
printopt options d’impression
orient orientation du papier
Entr´ees/sortie format´ees
fgetl retourne la prochaine ligne du fichier lu sous forme d’une
chaˆıne de caract`eres, le caract`ere de retour `a la ligne n’´etant
pas inclus dans la chaˆıne
fgets retourne la prochaine ligne du fichier lu sous forme d’une
chaˆıne de caract`eres, le caract`ere de retour `a la ligne ´etant
inclus dans la chaˆıne
fprintf permet l’´ecriture format´ee dans un fichier
fscanf permet la lecture format´ee dans un fichier
feof permet la d´etection de la fin d’un fichier
ferror retourne le message et le num´ero d’erreur de la derni`ere op´e-
ration d’entr´ees/sorties
frewind positionne le pointeur du fichier donn´e sur le premier octet
fseek deplace le pointeur du fichier donn´e pour le positionner `a l’en-
droit indiqu´e
ftell indique la position du pointeur du fichier donn´e
Conversion de chaˆınes
sscanf permet l’extraction d’informations (sous un format particu-
lier) d’une chaˆıne de caract`eres
sprintf permet l’envoi de sorties format´ees dans une chaˆıne de carac-
t`eres
Niveau : 3ISE Matière : traitement de signal analogique
Prof : Mr Nabil ARSALANE
Conversion de chaˆınes
double convertit en un nombre flottant double pr´ecision
sparse cr´ee une matrice creuse
char cr´ee un tableau de caract`eres (chaˆıne)
cell cr´ee un tableau de cellules
struct cr´ee (ou convertit) en tableau de structures
uint8 convertit en un entier non sign´e cod´e sur 8 bits
Objectifs :
Ce TP est destiné à se familiariser avec les notions de la représentation spectrale de quelques
signaux analogiques, ainsi que certaines opérations relativement avancées vues en cours. Nous
aborderons les signaux élémentaires dont vous devez connaître parfaitement les propriétés et
représentations aussi bien dans l'espace des temps que celui des fréquences.
Travail demandé :
Un compte-rendu est à remettre à la fin des séances de TP. Dans ce compte-rendu, vous devez :
Développer succinctement votre réflexion.
Commenter votre code Matlab.
Interpréter les résultats obtenus.
Traiter les exercices non réalisés à la salle du TP.
Un signal numérique est défini par un nombre d'échantillons N relevés à une fréquence
d'échantillonnage Fe. Les signaux sont toujours captés de manière temporelle, mais on
s'intéresse souvent à leur allure fréquentielle. On a affaire, donc, à deux représentations :
temporelle et fréquentielle nécessitant deux axes qui seront définis comme suit :
L'axe temporel est un vecteur de N points espacés de 1 Fe . Sous Matlab, la syntaxe est :
axe_temps = (1:N)/Fe.
L'axe fréquentiel est un vecteur de N points compris entre 0 et Fe. La syntaxe est :
axe_freq = (0:N-1)*Fe/N.
A noter que :
𝐹𝑒 étant la fréquence d’échantillonnage en [Hz] qui doit respecter la condition 𝐹𝑒 ≥ 2𝐹𝑚𝑎𝑥.
𝐹𝑚𝑎𝑥 est la fréquence maximale du signal à représenter.
1. Impulsion unitaire :
Soit le script Matlab suivant :
t = -1:0.00001:1 ;
x = rectpuls(t,0.05) ;
plot(t,x) ; axis([-0.1 0.1 -0.2 1.2]);
grid ;
xlabel('Temps(sec)');
ylabel('Amplitude');
title('Impulsion Rectangulaire ') ;
Programme 1 Programme 2
fs = 10000 ; t = -1:0.00001:1 ;
t = 0:1/fs:1.5 ; x2 = tripuls(t,0.04) ;
y = square(2*pi*50*t) ; plot(t,x2),
plot(t,y), axis([-0.1 0.1 -0.2 1.2])
axis([0 0.1 -1.2 1.2]) grid ;
grid
Programme 3 Programme 4
fs = 10000 ; x=0:0.001:4*pi ;
t = 0:1/fs:1.5 ; y=sin(x) ;
y = sawtooth(2*pi*50*t) ; plot(x, y) ;
plot(t,y); axis([0 4*pi -1.2 1.2]) ;
axis([0 0.1 -1.2 1.2]); grid; grid ;
Exécuter les programmes suivants, déterminer le type de chaque signal ainsi que sa forme
générale et terminer ce qui manque dans les programmes (commentaires, titre, label des axes,
…)
Niveau : 3ISE Matière : traitement de signal analogique
Prof : Mr Nabil ARSALANE
Une fonction périodique f(t) de période T peut, sous certaines conditions mathématiques qui
seront toujours réalisées dans la pratique en physique, se décomposer en une somme de
fonctions sinusoïdales de la forme : (décomposition en séries de Fourier)
Les coefficients a0, an et bn sont indépendants du temps et sont donnés par les intégrales
suivantes.
On remarque que a0 est la valeur moyenne de la fonction f (t) : a0 est donc nul si la fonction f(t)
est alternative. Deux cas particuliers :
*** Si la courbe représentative de la fonction f(t) admet un centre de symétrie situé sur l’axe Ox,
alors, en choisissant ce point comme origine des temps:
f(-t)=-f(t)
La fonction f(t) est une fonction impaire ; son développement en séries de Fourier ne comportera
que des termes en sinus (les coefficients an sont nuls).
*** Si la courbe représentative de la fonction f(t) admet l’axe des ordonnées comme axe de
symétrie, alors f(-t)=f(t) (fonction paire). Le développement en séries de Fourier ne contient
alors que des termes en cosinus ((les coefficients bn sont nuls).
Etape1 : Ecrire une commande qui permet de prendre le nombre des coefficients n comme
paramètre d’entré (utiliser la commande ‘input’).
Etape2 : Créer une incrémentation temporel dt=1./(50*n*f0) ;
Etape3 : Créer un vecteur temps sur deux périodes du signal par incrément dt.
Niveau : 3ISE Matière : traitement de signal analogique
Prof : Mr Nabil ARSALANE
Etape4 : Ecrire un programme permettant le calcul de la décomposition en série de Fourrier
à partir de l’équation ci-dessus. Sachant que le signal créneau est un signal pair, alors b n=0 ; et
on suppose que la valeur d’amplitude a=1, et a0=a/2.
Connaissant l’équation des coefficients Cn et sachant que le signal est impair donc les an =0,
alors nous pouvons en déduire l’expression de bn :
Fe = 1000;
T = 1/Fe;
N = 1000;
t = (0:N-1)*T;
y=sin(2*pi*50*t);
figure(1),plot(1000*t(1:50),y(1:50))
xlabel('temps en (s)'),
ylabel('Amplitude y(t)'),
title('Representation Temporelle') ;
S = fft(y);
Y = 2*abs(S(1:N/2+1)/N);
f = Fe*(0:(N/2))/N;
figure(2),plot(f,Y),
xlabel('Frequence en (Hz)');
ylabel('Amplitude Y(f)');
title('Representation Frequentielle') ;
- Analyse temporelle :
- Analyse fréquentielle :
Avec
f1 = 40 Hz; 1= π/4,
f2 = 105 Hz;
f3 = 125 Hz; 3= π/3.
1. Produit de convolution
La réponse y(t) d’un système linéaire, ayant pour réponse impulsionnelle h(t) à une entrée x(t)
est une superposition de réponses impulsionnelle amplifiées par des valeurs instantanées de x(t),
cette opération est appelée : convolution de x(t) par h(t).
Le produit de convolution est utilisé dans le traitement du signal, lorsqu’on utilise des filtres
(passe-bas, passe haut, passe-bande). Si on a un signal entrant x(t) et un élément filtrant ayant
une fonction de transfert h(t) alors le signal de sortie y(t) sera la convolution de ces deux
fonctions.
On définit le produit de convolution par l’expression :
2. Inter-corrélation et Autocorrélation :