Upload
vudan
View
219
Download
0
Embed Size (px)
Citation preview
1
Traitement des données. De l’acquisition des signaux et images jusqu’à leur
interprétation
Didier VRAY, Denis FRIBOULET MASTER et École Doctorale MEGA
2 BIBLIOGRAPHIE
Ouvrages généraux
• Bernard MULGREW, "Digital Signal Processing, concepts and applications", Palgrave MacMillan, 2003
• Alan OPPENHEIM, A. SCHAFER, "Discrete-time Signal Processing", PRENTICE HALL, 1999
• Alan OPPENHEIM, A. WILLSKY, "Signals and Systems", PRENTICE HALL, 1997
• J. Mc CLELLAN, "DSP First, A multimedia approach", PRENTICE HALL, 1999
• François de COULON, "Théorie et traitement des signaux", DUNOD, 1984
• Murat KUNT, "Traitement Numérique des signaux", 1981
Applications ou pour aller plus loin
• J. MARS, J.-L. LACOUME, "Traitement du signal pour géologues et géophysiciens", TECHNIP 2004, Tome 3 : Techniques avancées et Tome 2 : Techniques de base, Tome 1 : Prospection sismique
• M. BELLANGER, "Traitement numérique du signal : Théorie et pratique", 8ème édition, DUNOD, 2006
• S. MARPLE, "Digital spectral analysis", PRENTICE-HALL, 1987
4 SIGNAL ?
Domaines d’application : • communication, aéronautique, astronautique, acoustique, contrôle de processus
chimique, ingénierie biomédicale, traitement de la parole, économie, météorologie... • information représentée sous forme de signal
Signal :
• fonction de une ou plusieurs variables indépendantes : f(x,y,z) • représente / contient information sur un phénomène (physique)
Signaux continus: f(t), t ∈ R Signaux discrets: f[n], n ∈ Z Types de signaux
Dimension du signal : • 1D : f(t) f[n] • 2D :f(u,v) f[i,j] • 3D : f(u,v,w) f[i,j,k] • etc...
t
n
5 SIGNAL ?
Mesures • Capteur, statistiques.... • Développement des capteurs : microphone, céramiques piézoélectriques, antennes,
capteurs CCD, de pression
Acquisition numérique :
• Stockage • Traitement numérique par ordinateur • Perte d’information ? • Importance des techniques numériques
Capteur t
Capteur Echantillonnage t
6 EXEMPLES DE SIGNAUX
Signal de parole
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 -0.3 -0.2 -0.1
0 0.1 0.2 0.3 0.4
Temps (s)
ampl
itude
‘e’
b on j ou r 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
-0.4
-0.2
0
0.2
0.4
0.6
Temps (s)
ampl
itude
b on j ou r
7 EXEMPLES DE SIGNAUX
Évolution de la rente 5% sous le consulat et le 1er empire
0
10
20
30
40
50
60
70
80
90
100%
1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815
Coup d’état du 18 brumaire
Paix de Lunéville
L’Autriche attaque la Bavière
Victoire sur la Prusse à Iéna Victoire sur la Russie à Eylau
Victoire sur la Russie à Friedland Traité de Tilsit avec la Russie
Début de la campagne de Russie
Début de la retraite de Russie
Défaite de Vitoria. L'Autriche se joint à la Prusse et
à la Russie contre la France. Défaite de Leipzig.
Défaites en Espagne et au Portugal
Abdication de Napoléon
Waterloo
Napoléon débarque à Golfe Juan
Victoire sur l’Autriche à Ulm
L’Angleterre recherche la paix
et l’obtient à Amiens
© Le Monde 28/01/1997
8 EXEMPLES DE SIGNAUX
Évolution hebdomadaire du Dow Jones du 5 janvier 1929 au 4 janvier 1930
50
100
150
200
250
300
350
400
5 jan. 1929 4 jan. 1930
9 EXEMPLES DE SIGNAUX
Signaux ultrasonores
Signal réel
t
τ = 2d/c , c ≈ 1540 m/s (tissus biologiques)
Émission
Réception
d
t
Composante spéculaire Composante diffuse
16 TRAITEMENT DU SIGNAL ?
Buts : • Modélisation : représentation d’un phénomène (caractérisation, prédiction...) • Analyse : extraction d’information (mesure, compression, détection, reconnaissance...) • Filtrage, restauration : transformation du signal (minimisation du bruit, suppression de
parasite...) • Etc.
Notion de système de traitement :
Notion de domaine de représentation : • Transformée de Fourier • Modèles autorégressifs, transformée de Laplace, transformée de Wigner, transformée
en ondelettes, transformée cosinus....
Système de Traitement t t
18 EXEMPLES DE TRAITEMENT
Signaux acquis
Image Compressée
Détection d'enveloppe
Compression logarithmique
Enveloppe
19 EXEMPLES DE TRAITEMENT
Signal de parole : analyse ?
b on j ou r 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
-0.4
-0.2
0
0.2
0.4
0.6
Temps (s)
ampl
itude
b on j ou r
21 EXEMPLES DE TRAITEMENT
Détection de rupture
Cas idéal
0 5 10 15 20 -2
-1
0
1
2
0 50 100 150 200 250 -2
-1
0
1
2 Cas réel avec bruit gaussien (σ = 0.4)
0 50 100 150 200 250 -2
-1
0
1
2
Opérateur différentiel : [ 1 -1 ]
0 5 10 15 20 -2
-1
0
1
2
Opérateur différentiel : [ 1 -1 ]
22 EXEMPLES DE TRAITEMENT
Détection de rupture
Opérateur différentiel : [ 1 -1 ] Opérateur optimisé : Canny[86] – Deriche[87]
Cas réel avec bruit gaussien (σ = 0.4)
0 50 100 150 200 250 -2
-1
0
1
2
0 50 100 150 200 250 -2
-1
0
1
2
0 50 100 150 200 250 -1
0
1
2
3
4
23 EXEMPLES DE TRAITEMENT
Détection de rupture
0 50 100 150 200 250 -4
-2
0
2
4
0 50 100 150 200 250 -4
-2
0
2
4
6
Cas réel avec bruit gaussien (σ = 1.0) Cas réel avec bruit gaussien (σ = 1.2)
0 50 100 150 200 250 -4
-2
0
2
4
0 50 100 150 200 250 -4
-2
0
2
4
Opérateur optimisé :
24 EXEMPLES DE TRAITEMENT
Image : Détection de contours
Bords horizontaux
Bords verticaux
Norme du gradient Seuillage
||2
25 EXEMPLES DE TRAITEMENT
Détection de contour par ensemble de niveau basé sur les dérivées (gradient)
Ensemble de niveau: Principe d’évolution Evolution basée sur le
gradient d’une image IRM
26 EXEMPLES DE TRAITEMENT
Détection de contour par ensemble de niveau basé sur les statistiques
Histogramme
Sang
Histogramme
Muscle
29 EXEMPLES DE TRAITEMENT
Visualisation : Rendu de volume par lancer de rayon
Plan de visualisation
1. Intersection avec l’objet : Tracé incrémental d’un rayon dans le volume discret
2. Estimation de la normale à l’objet : opérateur différentiel discret dans les 3 directions
N
α
L
N
3. Calcul de la lumière émise au point d’intersection : modèle de diffusion
Id = Ip (N . L)
4. Application des étapes 1, 2 et 3 à l'ensemble des rayons partant du plan de visualisation
33 TRANSFORMATIONS DE LA VARIABLE INDEPENDANTE
Retournement
f(t) f(-t)
f[n] f[-n]
Opérations de base sur les signaux: • Retournement, décalage, changement d’échelle, etc. transformation de la variable indépendante
35 TRANSFORMATIONS DE LA VARIABLE INDEPENDANTE
Décalage temporel
f(t) f(t-t0)
Retard
f[n]
f(t+t0)
Avance
f[n-n0]
Retard
f[n+n0]
Avance
t 0
-t 0
-n 0
n 0
36 TRANSFORMATIONS DE LA VARIABLE INDEPENDANTE
Signaux pairs : invariance par retournement
f(-t) = f(t) f[-n] = f[n]
f[-n] = - f[n]
Signaux impairs : symétrie par retournement
f(-t) = - f(t)
37 SIGNAUX DE BASE CONTINUS
Signal sinusoïdal : 0( ) cos(2 )f t A f tπ φ= +
A AcosΦ
T 0 = 1 / f 0
A : amplitude φ : phase f0 : fréquence T0 : période
Variation de la fréquence f0 :
f1 f2 f3
f1 < f2 < f3
38 SIGNAUX DE BASE CONTINUS
Exponentielle complexe tfjtfe tfj00
2 2sin2cos0 πππ +=
Interprétation
Partie réelle
tfe tfj0
2 2cos)Re( 0 ππ =
tfe tfj0
2 2sin)Im( 0 ππ =
)(212cos 00 22
0tfjtfj eetf πππ −+=
)(212sin 00 22
0tfjtfj ee
jtf πππ −−=
Partie imaginaire
Exponentielles harmoniques Zketf tkfjk ∈= ,)( 02π
f0 : fréquence fondamentale
f0: vitesse de rotation
sin 2πf0t
t
Re
Im
cos 2πf0t
39 SIGNAUX DE BASE CONTINUS
Échelon unité
Impulsion unité (ou Dirac) : δ(t)
Représentation
u(t) = 0 si t < 0
1 si t > 0
1
( ) 1t dtδ+∞
−∞
=∫on veut avec
∆
1 u∆(t)
∆
1/∆ δ∆(t)
Aire = 1 δ(t) = lim δ∆(t) ∆ → 0
1
δ(t)
C
Cδ(t) δ(t-t0)
t0
dttdut )()( =δ
40 SIGNAUX DE BASE CONTINUS
Dirac : interprétation
δ(t)
t τ 0
Intervalle d’intégration
1
u(t)
0)( =∫∞−
tdττδ si t < 0
t τ 0
Intervalle d’intégration
δ(t)
1)( =∫∞−
tdττδ si t > 0
L’aire du Dirac est "concentrée" en un point
41 SIGNAUX DE BASE CONTINUS
Dirac : Propriété
Dirac : Propriété x(t) δ(t) = x(0) δ(t) Dirac de poids x(0)
x(t) δ(t)
x(0) δ(t)
( ) 1t dtδ+∞
−∞
=∫
Dirac : Propriété x(t) δ(t-t0) = x(t0) δ(t-t0)
x(t) δ(t-t0)
t0
x(t) x(t0)δ(t-t0)
t0
42 SIGNAUX DE BASE CONTINUS
0 0( ) ( ) ( )x t t t dt x tδ+∞
−∞
− =∫ Dirac : Propriété
Dirac : Propriété ( ) ( ) (0)x t t dt xδ+∞
−∞
=∫
43 SIGNAUX DE BASE CONTINUS
2
1
21 2( , ) ( )
t
st
E t t s t dt= ∫
Énergie et puissance moyennes d’un signal continu s(t)
• Énergie moyenne calculée sur l’intervalle [t1, t2] :
2
1
21 2
2 1
1( , ) ( )t
st
P t t s t dtt t
=− ∫
• Puissance moyenne calculée sur l’intervalle [t1, t2] :
Interprétation : énergie dissipée par unité de temps
44 SIGNAUX DE BASE DISCRETS
Échelon unité
Impulsion unité : on définit
Propriétés
u[n] = 0 si n < 0
1 si n ≥ 0
[ ] [ ]n
mu n mδ
=−∞= ∑ conséquences et [ ] [ ] [ 1]n u n u nδ = − −
x[n] δ[n] = x[0] δ[n]
x[n] δ[n-n0] = x[n0] δ[n-n0]
[ ] 1n
nδ+∞
=−∞=∑
0 0[ ] [ ] [ ]n
x n n n x nδ+∞
=−∞− =∑
[ ] [ ] [0]n
x n n xδ+∞
=−∞=∑
0
1
.......
δ[n] = 1 si n = 0
0 si n ≠ 0
0
1
45 SIGNAUX DE BASE DISCRETS
Sinusoïdes discrètes : cos 2πf0n
A la différence du cas continu, la rapidité des oscillations n’augmente pas continûment avec f0
0 10 20 300
0.5
1fréquence = 0
0 10 20 30-1
0
1fréquence = 1/16
0 10 20 30-1
0
1fréquence = 1/8
0 10 20 30-1
0
1fréquence = 1/4
0 10 20 30-1
0
1fréquence = 1/2
0 10 20 30-1
0
1fréquence = 3/4
0 10 20 30-1
0
1fréquence = 7/8
0 10 20 30-1
0
1fréquence = 15/16
0 10 20 300
0.5
1fréquence = 1
46 SIGNAUX DE BASE DISCRETS
Exponentielles discrètes
Mêmes propriétés que sinusoïdes (différence de comportement par rapport au cas continu et contraintes sur la périodicité)
nfjnfe nfj00
2 2sin2cos0 πππ +=
47 SIGNAUX DE BASE DISCRETS
Énergie et puissance d’un signal discret s[n]
2
1
2[ ]n
n ns n
=∑
2
1
2
2 1
1 [ ]n
n ns n
n n =− ∑
• Énergie moyenne :
• Puissance moyenne :
49 Notion de Système
Définition :
• Un système est un modèle mathématique d’un processus physique qui relie un signal d’entrée à un signal de sortie
• Un système est un dispositif de traitement du signal • En entrée : e(t) signal d’entrée • En sortie : s(t) signal de sortie
Exemples :
• Amplificateur, système audio, téléphone, système vidéo • Un système complexe peut être vu comme l’interconnexion de plusieurs systèmes dont
les fonctions sont plus simples
Questions • Quelles sont les propriétés intéressantes des systèmes ?
• Comment caractériser un système ? = Comment modéliser la relation entre entrée et sortie ?
50 Représentation des Systèmes
Représentation sous forme de schéma bloc
e(t) s(t) Scontinu
e[n] s[n] Sdiscret
s(t) = S{e(t)}
s[n] = S{e[n]}
Interconnections des systèmes • Série / Cascade
• Parallèle
• Série / Parallèle
• Feed-back
Système 1 Système 2 Input Output
Système 1
Système 2
+ Output Input
Système 1
Système 3
+ Output Input
Système 2
Système 4
51 PROPRIETES DES SYSTEMES
ETUDE DE 2 PROPRIETES FONDAMENTALES (système continu ou discret): LINEARITE INVARIANCE EN TEMPS LINEARITE (Propriété de superposition) Soit y1[n]=S{x1[n]} et y2(t)=S{x2[n]} ALORS a y1[n]+ b y2[n] = S{a x1[n]+b x2[n]} Conséquence : une entrée nulle produit une sortie nulle INVARIANCE EN TEMPS Soit y[n]=S{x[n]} ALORS y[n-n0]=S{x[n-n0]} La sortie du système ne dépend pas de l'origine des temps La sortie du système ne dépend pas de l’instant où est appliquée l’entrée On notera SLIT un système Linéaire et Invariant en Temps
52
x(t)
t
0 1 2
y(t)
t
0 1 2
EXEMPLES - linéarité et invariance en temps des systèmes suivants : y[n] = 2x[n], y(t) = x(t-2) -2x(t-19) y[n] = x[-n], y(t) = sin(6t) x(t) y[n] = 2x[n]+3, y(t) = a exp(x(t))
UTILISATION DES PROPRIETES : Soit un système LINEAIRE et INVARIANT EN TEMPS qui a en sortie y(t) lorsque l’entrée est x(t) : Quelle est la réponse du système lorsque l’entrée est x1(t)
x1(t)
t 0 1
4 3 2
LIT L IT
53 RAPPEL DE QUELQUES PROPRIETES DE L’IMPULSION UNITE
δ ( )t dt =−∞
+∞
∫ 1[ ] 1nδ+∞
−∞
=∑
x t t dt x( ) ( ) ( )δ =−∞
+∞
∫ 0[ ] [ ] [0]x n n xδ+∞
−∞
=∑
x t t t dt x t( ) ( ) ( )δ − =−∞
+∞
∫ 0 0x n n n x n[ ] [ ] [ ]δ − =
−∞
+∞
∑ 0 0
δ τ τ( ) ( )d u tt
=−∞∫δ[ ] [ ]k u n
k
n
==−∞∑
( ) ( ) (0) ( )x t t x tδ δ=[ ] [ ] [0] [ ]x n n x nδ δ=
0 0 0( ) ( ) ( ) ( )x t t t x t t tδ δ− = −0 0 0[ ] [ ] [ ] [ ]x n n n x n n nδ δ− = −
54 REPRESENTATION DES SIGNAUX EN SOMME D’IMPULSIONS
Exemple de la représentation d’un signal discret en terme d’impulsions retardées
Généralisation : • Tout signal discret peut être décrit comme une somme
d’impulsions de Dirac retardées et pondérées par l’amplitude de ce signal :
Décomposition équivalente pour les signaux continus :
x n x k n kk
[ ] [ ] [ ]= −=−∞
+∞
∑ δ
x t x t d( ) ( ) ( )= −−∞
+∞
∫ τ δ τ τ
[ ]x n
[ 2] [ 2]x nδ− +
[0] [ ]x nδ
-4 -3 -2 -1 0 1 2 3 4
-4 -1 2 3 -3 -2 0 1 4
2 -4 -3 -2 -1 0 1 3 4
-4 -3 -2 -1 0 1 2 3 4
-4 -3 -2 -1 0 1 2 3 4
-1
-4 -3 -2 0 1 2 3 4
[ 1] [ 1]x nδ− +
[1] [ 1]x nδ −
[2] [ 2]x nδ −
n
n
n
n
n
55 NOTION DE REPONSE IMPULSIONNELLE
La réponse impulsionnelle h[n] d’un système est la réponse du système lorsque le signal d’entrée est l’impulsion de Dirac δ[n] :
Dans le cas des systèmes linéaires et invariant en temps (SLIT), la réponse impulsionnelle h[n] permet de caractériser totalement le système.
La Transformée de Fourier ou la transformée en z de la réponse impulsionnelle permettent de déduire :
• La réponse en fréquence ou gain complexe H(f) • Le gain en fonction de fréquence |H(f)| ou la phase arg(H(f) • La fonction de transfert H(z)
δ[n] h[n] S
56 EQUATION DE CONVOLUTION
Considérons un système S linéaire et invariant en temps (LTI) de réponse impulsionnelle h[n]. Nous pouvons donc écrire :
entrée S sortie δ[n] h[n] δ[n-k] h[n-k] x[k] δ[n-k] x[k] h[n-k]
x[n] S y[n]
D’où l’équation de convolution discrète qui lie signal d’entrée, signal de sortie et réponse impulsionnelle d’un système LIT :
[ ] [ ]k
x k n kδ+∞
=−∞
−∑ [ ] [ ]k
x k h n k+∞
=−∞
−∑
[ ] [ ] [ ]k
y n x k h n k+∞
=−∞
= −∑
57 EQUATION DE CONVOLUTION
Un changement de variable permet de convertir l’équation de convolution sous une autre forme:
Notation de la convolution
L’équation de convolution permet de calculer la sortie du système pour n’importe quelle entrée x[n]
[ ] [ ] [ ] [ ] [ ]k k
y n x k h n k h k x n k+∞ +∞
=−∞ =−∞
= − = −∑ ∑
[ ] [ ] [ ] [ ] [ ]y n x n h n h n x n= ∗ = ∗
58 CALCUL PRATIQUE DE LA CONVOLUTION
y[n] ? x[n] h[n] S
y[n] = x[n] * h[n]
0 1 2 3 4 5 6 7 8 9 10
x[k]
0 4 k
k 0
k 0
k 0
k 0
k 0
h[n-k]
h[n-k]
h[n-k]
h[n-k]
h[n-k]
n n-6
n-6
n-6
n-6
n-6
n<0
n
n
n
n
0<n<4
4<n<6
6<n<10
n>10
x[n]
0 1 2 3 4 5
1
0 1 2 3 4 5 6 7
h[n]
1 2 4 8 16
32
64
59 CALCUL PRATIQUE DE LA CONVOLUTION
Cas usuel : • soit x de durée N, h de durée M, avec N≥M (signaux à durée finie) • x et h ont des amplitudes nulles pour les temps (indices) négatifs (signaux causaux)
alors l’équation de convolution se simplifie : On note que la durée de y[n] est N+M-1 : la convolution ‘allonge’ les signaux
[0] [0] [0][1] [0] [1] [1] [0][2] [0] [2] [1] [1] [2] [0]
.....[ ] [ 1] [ 1] .... [ ] [ ] ... [ ] [0]
.....[ 2] [ 1] [ 1]
y x hy x h x hy x h x h x h
y i x i M h M x i M j h M j x i h
y N M x N h M
== += + +
= − + − + + − + − + +
+ − = − −
1 1
0 020[ ] [ ] [ ] [ ] [ ]
N M
k kN Mày n x k h n k h k x n k pour n
− −
= =
+ −= − = − =∑ ∑
60 ILLUSTRATION DE LA CONVOLUTION DE SIGNAUX CONTINUS
( ) ( ) * ( )
( ) ( )
( ) ( )
y t x t h t
x h t d
h x t d
τ τ τ
τ τ τ
+∞
−∞
+∞
−∞
=
= −
= −
∫
∫
τ
h(τ)
τ
h(t0-τ)
t0>0
t0
0 0( ) ( ) ( )y t x h t dτ τ τ+∞
−∞
= −∫
τ
x(τ)h(t0-τ)
t
( )( ) * ( )y t
x t h t=
t0
τ
x(τ)
t0
y(t) ? x(t) S
h(t)
61 PROPRIETES DE LA CONVOLUTION
Commutativité
Mise en cascade
Distributivité
Élément neutre, définition de la réponse impulsionnelle d’un système LIT
Attention, ces propriétés ne sont valables que pour les systèmes LIT
[ ] [ ] [ ] [ ]x n h n h n x n∗ = ∗
1 2 1 2[ ] { [ ] [ ]} { [ ] [ ]} [ ]x n h n h n x n h n h n∗ ∗ = ∗ ∗
1 2 1 2[ ] { [ ] [ ]} { [ ] [ ]} { [ ] [ ]}x n h n h n x n h n x n h n∗ + = ∗ + ∗
[ ] [ ] [ ]n h n h nδ ∗ =
62 PROPRIETES DE LA CONVOLUTION
Fonction propre d’un système LIT
Soit un système LIT de réponse impulsionnelle h(t) Considérons le signal d’entrée x(t) exponentielle complexe (phaseur pur) : Calculons la sortie correspondante à ce système: H(f0) est une constante complexe dont la valeur ne dépend que de f0 et de la réponse
impulsionnelle du système
Résultat extrêmement important : La réponse d’un système LIT à un signal d’entrée de type exponentielle complexe (fonction sinusoïdale de fréquence fixée), est le même signal (pas de changement de fréquence) mais pondéré par un coefficient qui dépend uniquement de la réponse impulsionnelle du système.
On dit que l’exponentielle complexe est une fonction propre des systèmes SLIT
0
0
2( ) jf tfx t e π=
02 ( )( ) ( ) ( ) ( ) jf ty t x t h t h e dπ ττ τ+∞
−
−∞
= ∗ = ∫
0 0 02 2 20( ) ( )jf t jf jf te h e d e H fπ π τ πτ τ
+∞−
−∞
= =∫
63 EXEMPLES DE SYSTEMES LIT
RETARD PUR
On déduit que la réponse impulsionnelle de ce système est
x[n] y[n]=x(n-n0) retard n0
0 0[ ] [ ] [ ] [ ]y n x n n x n n nδ= − = ∗ −
h[n]
n 0 n0
1 h[n]=δ[n-n0]
64 EXEMPLES DE SYSTEMES LIT
MOYENNEUR TEMPOREL
On déduit que la réponse impulsionnelle de ce système est
x[n] y[n] Moyenneur sur M échantillons
1
0
[ ] [ ]k M
kh n n kδ
= −
=
= −∑0
1
M-1
h[n]
1 1 1
0 0 0
[ ] [ ] [ 1] [ 2] .... [ 1]
[ ] [ ] [ ] [ ]* [ ]k M k M k M
k k k
y n x n x n x n x n M
x n k x n n k x n n kδ δ= − = − = −
= = =
= + − + − + + − +
= − = ∗ − = −∑ ∑ ∑
65 PROPRIETES DES SYSTEMES
LINEARITE
INVARIANCE EN TEMPS
CAUSALITE Définition générale : La sortie d’un système causal ne dépend que des valeurs présentes ou
passées de l’entrée
STABILITE
Définition générale: Un système est stable si à toute entrée d’amplitude bornée correspond une sortie bornée
66 DESCRIPTION DES SYSTEMES EQUATIONS AUX DIFFERENCES
L’expression la plus générale reliant entrée x[n] et sortie y[n] d’un système LIT
est de la forme :
Si on considère un système causal d’ordre N, l’expression peut s’écrire :
Exemple d’un système du 1er ordre : y[n]=x[n] +Ky[n-1]
Exemple d’un système du 2ème ordre : y[n]=x[n] +a1y[n-1]+ a2y[n-2]
[ ] [ ]k kk k
b x n k a y n k+∞ +∞
=−∞ =−∞
− = −∑ ∑
0 1[ ] [ ] [ ]
M N
k kk k
y n b x n k a y n k= =
= − − −∑ ∑
68 TRANSFORMÉE DE FOURIER DES SIGNAUX CONTINUS
Principe : représenter un signal continu comme la combinaison linéaire de signaux de base (pour faciliter l'analyse des signaux et des systèmes)
Choix des signaux de base • Ils doivent pouvoir représenter une large classe de signaux • La réponse d'un système linéaire invariant à un signal de base doit être simple
Signaux de base : • Ensemble des exponentielles complexes de la forme: • Elle constituent les fonctions propres des systèmes linéaires invariants
ftje π2
x(t) y(t) h(t) 2 2 2( )j ft j f j fte h e d Heπ π τ πτ τ
+∞−
−∞
=∫
2 ( )( ) ( ) ( ) ( ) ( ) ( ) j f ty t x t h t h x t d h e dπ ττ τ τ τ τ+∞ +∞
−
−∞ −∞
= ∗ = − = =∫ ∫
Conséquence - interprétation : • un système linéaire invariant ne change pas la fréquence d'une sinusoïde
On a donc: y(t) = H x(t)
x(t) y(t) h(t)
69 SERIES DE FOURIER
Exemple • x(t) fréquence fondamentale f0, a0 = 1, A1=1/2, A2=1, A3=2/3 et Ak=0 pour k > 3 Θk = 0 ∀ k
Rappel sur les séries de Fourier : • x(t) : signal réel, périodique, de période T0 = 1/f0
(vérifiant les conditions de Dirichlet)
• x(t) peut s'écrire sous la forme :
)2cos()( 01
0 kk
k tkfAatx θπ ++= ∑∞
=
Interprétation: • Équivalence des représentations dans le domaine temporel et dans le domaine de Fourier
1 1
1/2 2/3
0 f 0 2 f 0 3 f 0
A k
f
= 0 20 40 60 80 100 120
-1
0
1
2
3
4
70 SERIES DE FOURIER
1
02 cos(6 )3
f tπ
0cos(4 )f tπ
-60 -40 -20 0 20 40 60 0
1
2
-60 -40 -20 0 20 40 60 -0.5
0
0.5
-60 -40 -20 0 20 40 60 -1
0
1
-60 -40 -20 0 20 40 60 -1
0
1
-60 -40 -20 0 20 40 60 -2
0
2
4
01 cos(2 )2
f tπ
= x(t)
+
+
+
1 1
1/2 2/3
0 f 0 2 f 0 3 f 0
A k
f
71 SERIES DE FOURIER
Equivalence des formulations
Ecriture des séries de Fourier sous forme d'exponentielles complexes harmoniques: • x(t) : signal réel, périodique, de période T0 = 1/f0
(vérifiant les conditions de Dirichlet)
• x(t) peut s'écrire sous la forme :
où les ak sont les coefficients complexes de la série
tkfj
kkeatx 02)( π∑
+∞
−∞==
tkfj
kk
tkfj
kk eaeatx 00 22)( ππ ∑∑
+∞
−∞=
∗−
−+∞
−∞=
∗∗ ==tkfj
kkeatx 02)( π∑
+∞
−∞==)()( txtx =∗a/ x(t) réel:
kk aa =∗− kk aa −
∗ =donc et (1)
][)( 000 22
10
2 tkfjk
tkfj
kk
tkfj
kk eaeaaeatx πππ −
−
+∞
=
+∞
−∞=++== ∑∑b/ Réécriture de x(t) (2)
)(2)( 02
10
tkfj
kkeaatx π∑
+∞
=ℜ+=c/ (1) dans (2):
kjkk eAa θ
21
= )2cos()( 01
0 kk
k tkfAatx θπ ++= ∑∞
=d/ en posant on retrouve:
72 SERIES DE FOURIER
Calcul des coefficients de la série :
Exemple
Parties réelles et imaginaire Re(ak)
ak
0 0
0 0
Module et Phase
a2 a1 a0 a-1 a-2
24
1( )− j 1 24
1( )+ jj211+ j
211−
1 421
πje4
21
πje
− πje 15.025 −πje 15.0
25
Im(ak)
Θ(ak) ||ak||
x(t)
tkfj
kkeatx 02)( π∑
+∞
−∞== dtetx
Ta tkfj
Tk 00
2
0)(1 π−∫=
73 SERIES DE FOURIER
Influence de la période :
20T
−20T1T− 1T 0T0T− 02T02T−
10 4TT =
10 8TT =
10 16TT =
-10 -8 -6 -4 -2 0 2 4 6 8 10 -1
0
1
2
-20 -15 -10 -5 0 5 10 15 20 -1
0
1
2
-40 -30 -20 -10 0 10 20 30 40 -1
0
1
2
ak
ak
ak
74 TRANSFORMÉE DE FOURIER DES SIGNAUX CONTINUS
Définitions
dtetxfX ftj∫+∞
∞−
−= π2)()( dfefXtx ftj∫+∞
∞−
= π2)()(
Transformée de Fourier Transformée de Fourier inverse
Représentation fréquentielle d’un signal x(t) par X(f), ou « spectre » du signal
Notations – conventions
X(f) = TF[x(t)] et x(t) = TF-1[X(f)] x(t) X(f) TF
Conditions de convergence = Conditions de Dirichlet:
1. x(t) est absolument intégrable
2. x(t) a un nombre fini de maxima et de minima dans tout intervalle fini
3. x(t) a un nombre fini de discontinuités dans tout intervalle fini. De plus, chacune de
ces discontinuités doit être finie.
∞<∫+∞
∞−
dttx )(
75 TRANSFORMÉE DE FOURIER DES SIGNAUX CONTINUS
Exemple : e-at u(t)
Transformée de Fourier:
1
fjafX
π21)(
+=
Im(X(f)) Re(X(f))
f
f
Θ(X(f)) ||X(f)||
f
π / 2
− π / 2
f
1/a
1/a
76 TRANSFORMÉE DE FOURIER DES SIGNAUX CONTINUS
Contenu fréquentiel
Cas 2
TF
||X(f)||
-50 0 50 0
2
4
6
8
10
12
||X(f)||
-100 -50 0 50 100 -0.2
0
0.2
0.4
0.6
0.8
1
1.2
x(t)
Cas 1
TF
-20 -10 0 10 20 0
1
2
3
4
5
6
-100 -50 0 50 100 -0.2
0
0.2
0.4
0.6
0.8
1
1.2
x(t) ||X(f)||
77 TRANSFORMÉE DE FOURIER : PROPRIETES
Symétries : • Si x(t) est un signal réel, on a X(-f) = X*(f), d’où les propriété suivantes
Re[X(-f)] = Re[X(f)] Paire
Im[X(-f)] = - Im[X(f)] Impaire Θ[X(-f)] = -Θ[X(f)] Impaire
||X(-f)|| = ||X(f)|| Paire
• Si de plus x(t) est un signal pair, alors X(f) est purement réelle
Exemple: e-at u(t)
Exemple: e-a|t|
Décalage temporel : 0ft-j2e π
Conséquence : un décalage temporel n'affecte pas le module de la T.F.
Exemples: δ(t) et δ(t-t0) x(t-t0) X(f) TF
Linéarité
x(t) X(f) TF
y(t) Y(f) TF ax(t)+by(t) aX(f)+bY(f)
TF Si et on a :
Changement d’échelle :
afX
a1TF x(at)
78 TRANSFORMÉE DE FOURIER : PROPRIETES
• La TF de x(t) est alors donnée par : ∑+∞
−∞=−=
kk kffafX )()( 0δ
Exemples: tfje 02π )2cos( 0tfπ )2sin( 0tfπ0 0( ) ( )T
kt t kTδ δ
+∞
=−∞= −∑Peigne de Dirac:
Signaux périodiques :
• Si x(t) périodique, de fréquence f0, on a :
tkfj
kkeatx 02)( π∑
+∞
−∞== (Série de Fourier)
x(t)
TF
t
T0 f0
-f0 0 2f0 -2f0 … …
X(f) a0 a1 a-1
a2 a-2
79 TRANSFORMÉE DE FOURIER : PROPRIETES
Dualité :
x(t) X(f) TF
X(t) x(-f) TF
Si alors
)(2 ffXj π Dérivation :
TF dt
tdx )(
1 1( ) (0) ( )2 2
X f X fj f
δπ
+ Intégration :
TF ∫∞−
tdx ττ )( Exemple: u(t)
Conservation de l'énergie (signaux à énergie finie) : Égalité de Parseval
2 2[ ( )] ( ) [ ( ))] ( )E x t x t dt E X f X f df+∞ +∞
−∞ −∞
= = =∫ ∫
222 t4a2ax(t)π+
=
Exemples: TF de
1=x(t)
80 TRANSFORMÉE DE FOURIER ET CONVOLUTION
Conséquence pour un système linéaire invariant :
Exemple: définition de la réponse impulsionnelle
Propriété fondamentale
Exemple: retrouver x(t-t0)
x(t) X(f) TF
h(t) H(f) TF x(t) ∗ h(t) X(f) H(f)
TF Si et on a :
Description temporelle :
x(t) y(t) h(t) X(f) Y(f) H(f)
Description fréquentielle :
y(t) = x(t) ∗ h(t) Y(f) = X(f) H(f)
H(f) : Réponse du système en fréquence
81 TRANSFORMÉE DE FOURIER ET CONVOLUTION
Association de systèmes
H1(f) H2(f) H2(f) H1(f) H1(f) H2(f)
Propriété duale (modulation)
x(t) X(f) TF
h(t) H(f) TF x(t) h(t) X(f) ∗ H(f) TF
Si et on a :
Exemple: filtrage
||X(f)||
-50 0 50 0
2
4
6
8
10
12 x(t)
-100 -50 0 50 100 -0.2
0
0.2
0.4
0.6
0.8
1
1.2 x(t) ||X(f)||
85 Notations - Définitions
• L’amplitude et la variable temporel peuvent être continues ou discrètes • On définit les différents types de signaux
Signal analogique x(t) Signal échantillonné xe(t) Signal quantifié Signal numérique x[k]
xe(t)
x(t)
x[k]
86 Notations - Définitions
Echantillonnage des signaux : une nécessité
Questions : • De l’information est-elle perdue lors de l’échantillonnage des signaux ? • Peut-on restituer totalement le signal analogique à partir de ses
échantillons ?
t
Echantillonnage Traitement numérique Reconstruction
87 Opération d’échantillonnage
Fe=1/T est la fréquence d’échantillonnage On suppose un échantillonnage régulier
t
x(t)
t
xe(t)
> < T
88 Opérateur d’échantillonnage
Modèle d’une fonction d’échantillonnage périodique à la période T
Par TF de l’égalité précédente, on déduit les propriétés spectrales du signal échantillonné
Conclusion : l’échantillonnage de x(t) a pour conséquence la périodisation de son spectre
Rappel : δT(t) est le peigne de Dirac TF du peigne de Dirac
x(t) xe(t)
δT(t)
X
( ) ( ) ( ) [ ] ( )e Tk
x t x t t x kT t kTδ δ+∞
=−∞
= = −∑
( ) ( )Tk
t t kTδ δ+∞
=−∞
= −∑
11{ ( )} ( )T
T
TF t fT
δ δ=
11 1( ) ( )* ( ) ( )e
kT
kX f X f f X fT T T
δ+∞
=−∞
= = −∑
89 Echantillonnage et périodisation du spectre
Modèle d’une fonction d’échantillonnage périodique à la période
Avec une fréquence d’échantillonnage plus faible : recouvrement spectral
0
X(f) X(f)
f Fmax
0
Xe(f)
f Fmax Fe=1/Te -1/Te
0
Xe(f)
f Fmax Fe 2Fe -Fe -2Fe
eT
D’où le théorème d’échantillonnage de Shannon : Pour pouvoir reconstruire un signal analogique de bande fréquentielle limitée à Fmax à partir de ses échantillons il faut que la fréquence d'échantillonnage Fe soit supérieure à 2 fois la fréquence maximale :
Fe > 2Fmax
90 Restitution d’un signal correctement échantillonné
Raisonnons dans le domaine fréquentiel : comment obtenir le spectre du signal original à partir du spectre du signal échantillonné ? En filtrant le signal échantillonné avec un filtre passe-bas idéal HL(f)
( ) ( ). ( )R e LX f X f H f=
0
X(f) X(f)
f Fmax
0
Xe(f)
f Fmax Fe
0
HL(f)
f fc -fc
0
XR(f)
f Fmax
-Fe
91 Théorème d’échantillonnage de Shannon
On comprend que la restitution du signal analogique n’est pas possible dans le cas suivant. Aucun filtre ne peut permettre de revenir au motif spectral original.
0
Xe(f)
f Fmax Fe 2Fe -Fe -2Fe
92 Echantillonnage réel
0
X(f) X(f)
f
0
Xe(f)
f Fmax Fe -Fe
0
Xe(f)xHG(f)
f
0
Xeg(f)
f Fe/2 Fe -Fe
Fe/2
Avec repliement (aliasing)
Sans repliement
HG(f)
Filtre analogique antirepliement
Avant échantillonnage, on annule le spectre pour les fréquences supérieures à Fe/2
93 Echantillonnage réel
Tout signal physique est par définition à durée finie Td On peut le modéliser par x(t)=x(t) . rect(t/Td) Sa transformée de Fourier montre que ce type de signal ne peut être
simultanément à bande limitée Le spectre de ce type de signal ne présente pas de fréquence maximale.
Il y aura donc toujours plus ou moins de repliement de spectre.
Solution : utilisation, avant échantillonnage d'un filtre analogique antirepliement (HG(f), hG(t)) dont la fonction est de rendre le spectre nulle pour les fréquences supérieures à Fe/2
94 Choix pratique de la fréquence d’échantillonnage
Il est indispensable d’avoir une bonne idée de la gamme de fréquence que contient le signal
Suréchantillonner le signal de 10 à 100 fois Fmax pour visualiser le signal Choisir ensuite une fréquence d'échantillonnage adaptée: visualisation Fe=5..20 Fmax optimisation du nombre d’échantillons Fe>=2 Fmax traitement numérique Fe=3..10 Fmax Dans tous les cas, Fmax doit être significatif. Choisir explicitement un seuil d’amplitude sur le spectre (exemple -40dB
de l’amplitude maximale) Garder toujours à l’esprit que l’échantillonnage en dessous de la
fréquence limite de Shannon provoque du recouvrement qu’aucun traitement ne pourra effacer.
Cas particulier des signaux à bande étroite
95 Quantification
Il est nécessaire de quantifier les valeurs de l’amplitude du signal lors de la phase de création du signal numérique (suite de nombres )
Chaque valeur d'amplitude est choisie parmi un ensemble fini de valeurs possibles
Le mode de quantification uniforme est le plus répandu. On subdivise la plage totale de conversion en n intervalles d'égale amplitude.
97 RAPPELS PRELIMINAIRES
( ) ( ) ( ) ( )e e
TFT e e f e e
n nt t nT f f f f nfδ δ δ δ
+∞ +∞
=−∞ =−∞= − ←→ ⋅ = −∑ ∑
Echantillonnage d'un signal continu s(t) à la période Te = 1/fe se(t)
( )eT tδ : Peigne de Dirac de période Te
On a :
( ) ( ) ( )ee e fS f f S f fδ⋅= ∗ Périodisation de la
TF à fe
Donc
( )ef fδ : Peigne de Dirac de période fe = 1/Te
( ) ( ) ( )ee Ts t s t tδ=
TF←→
f
0 f e - f e 2f e - 2f e
. . . . . .
0 - T e 2T e t
. . . . . .
T e
98 RAPPELS PRELIMINAIRES
Echantillonnage d'un signal continu s(t) TF périodique
0 T t
se(t)
0 f e
e S ( f )
. . . . . .
f
TF←→
f
S( f )
0
t
s(t)
99 RAPPELS PRELIMINAIRES
Propriété duale : échantillonnage de la TF S(f) à la fréquence fe Sef(f)
avec
: Peigne de Dirac de période fe
Périodisation du signal à Te = 1/fe
TF←→
0 f
S( f )
f fe
Sechf(f)
0
t
s(t)
( ) ( ) ( )eef fS f S f fδ= ( )
ef fδ
( ) ( ) ( ) ( ) ( )e e
TFef e T fs t T s t f S f fδ δ= ⋅ ∗ ←→
s e f (t)
T e t
100 TRANSFORMÉE DE FOURIER DE SIGNAUX DISCRETS
Définition de la transformée de Fourier d’un signal discret
s[n]
0 1 n 2 …… i ……
TF←→
Propriétés fondamentales • La transformée de Fourier d'un signal discret est continue et périodique, de période 1 • Le signal discret est décomposé en une intégrale finie d'exponentielles discrètes
2( ) [ ] j fn
nS f s n e π
+∞−
=−∞= ∑
Transformée de Fourier inverse
Transformée de Fourier
2
1[ ] ( ) j fns n S f e dfπ= ∫
Transformée de Fourier d’un signal à temps discrets (TFTD)
1
S ( f )
. . . . . .
f 0
101 PRINCIPALES PROPRIÉTÉS DE LA TRANSFORMÉE DE FOURIER D’UN
SIGNAL À TEMPS DISCRETS
Propriétés très proches de celles de la transformée de Fourier continue Différences liées à la périodicité de la transformée de Fourier à temps discrets
104 TRANSFORMEE DE FOURIER DISCRETE
Echantillonnage d'une période de la TF sur N points périodisation du signal
TF←→
La DFT peut donc toujours être vue comme l’échantillonnage sur N points de la TF périodique et continue d'un signal discret défini sur N points.
S(k /N)
1
N points
0 f
1 période
Transformée de Fourier discrète (DFT) • on ne garde qu'une période (N points) du signal et de la TF • L’axe des fréquences de la TF est normalisé de 0 à N-1
/[ ] ( ) f k NS k S f == pour k = 0, N-1
S[k]
k 0 1 N-1
n
s[n]
0 N - 1
N points
n
sP[n]
0 N-1
105 TRANSFORMEE DE FOURIER DISCRETE
21
0[ ] [ ]
N j knN
nS k s n e
π− −
== ∑
DFT inverse
DFT
21
0
1[ ] [ ]N j kn
N
ks n S k e
N
π−
== ∑
Transformée de Fourier discrète (DFT)
Propriétés fondamentales • La DFT (et son inverse) sont discrètes et périodique, de période N • La DFT (et son inverse) correspondent à une somme finie d'exponentielles discrètes:
la DFT (et son inverse) peuvent donc se calculer numériquement en machine Implantation efficace de la DFT si N est une puissance de 2 : algorithme de FFT
S[k]
k 0 1 N-1
DFT
Ne pas oublier
n
s[n]
0 N-1
106 PROPRIÉTÉS DE LA TRANSFORMÉE DE FOURIER DISCRETE
Propriétés particulières liées à la périodicité implicite du signal et de la transformée
n
sP[n]
0 N-1
S[k]
k 0 1 N-1
n
sP[n-n0]
0 N-1
Exemple: décalage temporel d’un signal s[n] défini sur N points
Décalage du signal s[n] associé à la DFT S[k] Décalage circulaire sur N points
Décalage de n0
Décalage de n0
DFT
s[n-n0] n 0 n0
s[n] n 0
Notation: décalage circulaire de n0 sur N points
0[( ) ]Nx n n−
108 TRANSFORMEE DE FOURIER DISCRETE
Exemple : DFT sous Matlab
my_signal = [1 0.9 0.7 0.4 0];
my_DFT = fft(my_signal);
stem( abs(my_DFT) );
stem( angle(my_DFT) );
DFT←→
-5 0 5 10
0
0.2
0.4
0.6
0.8
1 s[n]
-1 0 1 2 3 4 5
0
0.5
1
1.5
2
2.5
3 Module de la DFT
-1 0 1 2 3 4 5 -3
-2
-1
0
1
2
3 Phase de la DFT
109 DFT : ZERO-PADDING (AJOUT DE ZEROS)
S(k /N)
1
N points
0 f
1 période
S(k / M )
f 1
M points
0
TFTD←→
DFT←→
DFT←→
s[n] : signal discret de N points
DFT directe: application de la DFT à un tableau de N points ⇔ échantillonnage de S(f) sur N points
Echantillonnage de S(f) sur M > N points
Intérêt pratique : en rajoutant les zéros au signal discret on peut donc choisir d’effectuer une DFT sur un nombre M de points quelconque et donc choisir l’échantillonnage de la TF continue
du signal discret s[n]
0
S ( f )
. . .
f
. . .
1
s[n]
n 0
n
s[n]
0 N-1
n
s[n]
0 N-1
110 TRANSFORMEE DE FOURIER DISCRETE
Zero-padding et DFT sous Matlab my_first_signal = [1 0.9 0.7 0.4 0]; wanted_length = N; % N = 5, 10 or 50 nb_zeros_to_add = wanted_length - length(my_first_signal); my_signal = [ my_first_signal zeros(1, nb_zeros_to_add) ]; module_DFT = abs( fft(my_signal) );
-1 0 1 2 3 4 5
0
0.5
1
1.5
2
2.5
3S[k]
0 10 20 30 40 50
0
0.5
1
1.5
2
2.5
3DFT
0 2 4 6 8 10
0
0.5
1
1.5
2
2.5
3DFT
-5 0 5 10
0
0.2
0.4
0.6
0.8
1s[n]
0 10 20 30 40 50
0
0.2
0.4
0.6
0.8
1s[n]
-5 0 5 10
0
0.2
0.4
0.6
0.8
1s[n]
N=5 N=10 N=50
111 TRANSFORMEE DE FOURIER DISCRETE
Zero-padding et DFT sous Matlab
my_signal = [1 0.9 0.7 0.4 0]; module_DFT = abs( fft(my_signal) ); module_DFT = abs( fft(my_signal, 10) ); module_DFT = abs( fft(my_signal, 50) );
-1 0 1 2 3 4 5
0
0.5
1
1.5
2
2.5
3 S[k]
0 2 4 6 8 10
0
0.5
1
1.5
2
2.5
3 DFT sur 10 points
0 10 20 30 40 50
0
0.5
1
1.5
2
2.5
3 DFT sur 50 points
-5 0 5 10
0
0.2
0.4
0.6
0.8
1 s[n]
112
RESUME DES TRANSFORMEES
←→
←→
←→
←→
S ( f )
S(k /N)
1 0 f
N points 1 période
f
S( f )
e S ( f )
0
0 f
. . .
f
. . .
e
. . . . . .
f 0 1
S[k]
k 0 1 N-1
←→
DFT
s(t)
t
s[n]
n 0 1 …… i ……
se(t)
t 0 Te
n
s[n]
0 N-1
N points
n
s[n]
0 N-1
113 Exemple pratique d’application
On désire étudier le spectre d’un signal continu en l'échantillonnant et en utilisant un circuit spécialisé permettant d'effectuer une FFT. On sait que:
• La fréquence maximum contenue dans ce signal est inférieure à 2,5 kHz. • On désire étudier son spectre avec une résolution maximum de 5 Hz.
Quelles conditions d’acquisition faut-il utiliser ? • Fréquence d'échantillonnage minimum fe min ? On choisit finalement d’échantillonner à 10 fois la fréquence d'échantillonnage minimum.
• Quelle sera la durée D de l'acquisition ?
• Quel est le nombre N de points d’échantillonnage du signal ? Quel est le nombre de points de la TFD si on veut optimiser les performances de la FFT?
119 Filtrage - Exemples
Filtrage du son réalisé par un « bouchon d’oreille »
Le filtrage réalisé par le « bouchon d’oreille » dépend de son positionnement
120 Filtrage- Exemples
Filtre analogique : réponse du filtre d’entrée d’un récepteur VHF 144MHz
Récepteur d’ondes radio VHF 144MHz
Zoom sur le filtre d’entrée
Réponse en fréquence du filtre passe-bande d’entrée, centré sur 144MHz
Antenne de réception (bande des « 2 mètres »)
144MHz
121 Filtrage- Exemples
Filtre de réjection (coupe bande) autour de 144MHz
Objectif : améliorer la réception des signaux de provenant de satellites météorologiques (137-138MHz) qui sont perturbés par les radios amateurs VHF à 144MHz.
Filtre analogique LC
Réponse en fréquence du filtre coupe-bande centré sur 144MHz
122 Filtrage- Exemples
Filtre 3 voies pour enceintes audio HIFI
Objectif : filtrer le signal sonore pour l’adapter à chacun des 3 haut-parleurs : aigu (HF, filtre passe-haut), médium (MF, filtre passe-bande) et grave (LF, filtre passe-bas)
Filtre 3 voies 24 dB/octave
Enceintes HIFI 3 voies
123 Définitions
L’opération de filtrage permet de modifier les amplitudes des composantes fréquentielles d’un signal
• Un filtre linéaire est défini comme un système linéaire et invariant en temps • Le filtre est défini par sa réponse impulsionnelle h(t) ou son gain complexe H(f) • La réponse fréquentielle H(f) est la transformée de Fourier de réponse impulsionnelle h(t) • Le signal filtré est le résultat de la convolution entre le signal et la réponse impulsionnelle h(t)
Exemple du module de la réponse fréquentielle d’un filtre passe-bas. Fréquence de coupure à 10kHz.
Exemple du module de la réponse fréquentielle d’un filtre passe-bande. Fréquence de coupure à 8 et 11kHz.
124 Filtre passe-bas idéal
Domaine temporel ou domaine fréquentiel ? L’utilisation des filtres se fait plutôt dans le domaine temporel (convolution) La synthèse se fait plutôt dans le domaine fréquentiel (gain en fréquence, gabarit du filtre)
{ }1( ) ( ) 2 sin (2 )c ch t TF H f f c f t−= =( ) ( )2 c
fH f rectf
=
Filtre passe-bas idéal :
f
1
-fc fc t
2fc
1/2fc
Gain en fréquence Réponse impulsionnelle
125 Filtres numériques
Synthèse d’un filtre numérique à Réponse Impulsionnelle Finie (RIF) Exemple de la synthèse d’un filtre passe bas par la méthode des fenêtres
Filtre passe-bas idéal de fréquence de coupure fc
Mais le filtre numérique est de longueur infinie…..
( ) ( )2 c
fH f rectf
=
Réponse impulsionnelle
sin(2 )h[n] cnfnπ
π=
• Il faut tronquer la réponse impulsionnelle en ne conservant que M échantillons • Cela revient à la multiplier par une fenêtre rectangulaire • Cela revient donc à convoluer la réponse fréquentielle du filtre idéal par un sinus cardinal
fc -fc
TFTD inverse
126 Synthèse des filtres RIF réalisables en pratique : méthode des fenêtres
La troncature de la réponse impulsionnelle introduit des ondulations sur le gain en fréquence. Le filtre passe bas n’est plus idéal
Réponse fréquentielle d’un filtre de longueur 101, 21, et 7 échantillons pour un filtre de fréquence de coupure fc=0.23
128 Filtrage numérique. Classification des filtres
Classification des filtres : • Filtres à Réponse Impulsionnelle Finie (RIF)
Forme générale RIF : • Filtres à Réponse Impulsionnelle Infinie (RII) Forme générale RII :
Classification des réalisations:
• Réalisation transversale ou non récursive • Réalisation récursive • Réalisation par TF discrète
[ ] [ ]0
M
kk
y n b x n k=
= −∑
[ ] [ ] [ ]∑∑==
−+−=M
kk
N
kk knxbknyany
01
La transformée en z est un outil mathématique très utile pour la synthèse des filtres numériques
129 Filtres numériques réalisables en pratique
Etudes des filtres à Réponse Impulsionnelle Finie (RIF)
Réponse impulsionnelle entièrement définie par une un nombre fini d’échantillons Principales propriétés des filtres RIF : - ces filtres sont toujours stables - leur réponse fréquentielle peut présenter une phase linéaire - la durée du régime transitoire est limitée à la durée de la réponse impulsionnelle - pas de propagation des erreurs de calcul (programmation non récursive)
- faiblesse : pour améliorer les performances du filtre on peut être amené à augmenter le nombre d’échantillons
3 principales méthodes de synthèse de filtres RIF : Méthode des fenêtres (FIR1 en Matlab) Méthode de l'échantillonnage en fréquence (FIR2 en Matlab) Méthode de synthèse de filtre optimal (REMEZ en Matlab)
130 Filtrage numérique
Utilisation des filtres RIF dans le domaine temporel : convolution numérique
Soit le filtrage du signal numérique x[n] par le filtre de réponse impulsionnelle h[n] Soit x[n] : x[0]=10, x[1]=7, x[2]=5, x[3]=12, x[4]=3, et x vaut 0 ailleurs Et h[n] : h[-1]=1/3, h[0]=1/3, h[1]=1/3, et h vaut 0 ailleurs (filtre non causal)
Soit y le signal résultant du filtrage de x par h. y est obtenu par la convolution de x par h Calcul de y[n] [ ] [ ] [ ]
ky n x k h n k
∞
=−∞
= ⋅ −∑
131 Filtrage numérique
Résultat du filtrage de x par h pour notre cas : [ ] [ ] [ ]4
0ky n x k h n k
=
= ⋅ −∑ pour n de -1 à 5
Analyse fréquentielle :
y : 1/3(10 17 22 24 20 15 3) X
132 Etude du filtre moyenneur
Moyenneur : filtre numérique simple, moyenne glissante sur M points
[ ] [ ]1
0
1 M
ky n x n k
M
−
=
= −∑
Réponse fréquentielle, TF de la réponse impulsionnelle :
Relation entrée-sortie (filtre causal)
Cas du moyenneur temporel sur 3 points : Réponse impulsionnelle correspondante : h[n]= 1/3 pour n de 0 à 2, h[n]=0 ailleurs
1( ) (1 2cos 2 )3
H f fπ= +
H(f)
[ ] [ ]1
0
1 M
kh n n k
Mδ
−
=
= −∑
133 Etude du filtre moyenneur, moyenne glissante, running average filter
Filtrage du signal constitué de la somme d’une « rampe continue » et d’un signal sinusoidal à la fréquence 1/8
Comparaison du signal filtré avec un moyenneur sur 3 points et un moyenneur sur 7 points
134 Etude du filtre moyenneur, moyenne glissante, running average filter
Exemple du filtrage d’une image. Le filtre sera appliqué successivement sur chaque ligne de l’image
Exemple de la ligne n° 40. C’est un signal
135 Etude du filtre moyenneur, moyenne glissante, running average filter
Exemple du filtrage de la ligne n° 40 par un filtre moyenneur causal sur 11 points
Exemple du filtrage de la ligne n° 40 par un filtre moyenneur non causal sur 11 points
Noter le décalage spatial et l’amplitude du résultat
136 Etude du filtre moyenneur, moyenne glissante, running average filter
Résultat sur l’image complète du filtrage par un filtre moyenneur non causal sur 11 points • Le filtre a été appliqué d’abord sur les lignes puis sur les colonnes • L’amplitude du résultat a été recalculée pour occuper toute l’échelle des niveaux de gris
137 Etude du filtre moyenneur, moyenne glissante, running average filter
Comment éliminer une composante sinusoïdale de fréquence 1/11 superposée à l’image • On applique un filtre moyenneur de 11 points sur les lignes
Image avant et après filtrage. Noter la suppression de la composante sinus mais aussi l’élargissement des motifs
Détail d’une ligne
138 Filtres numériques réalisables en pratique
Etudes des filtres à Réponse Impulsionnelle Infinie (RII)
Le problème est de trouver les coefficients du filtre ak et bk pour que le filtre soit causal et stable et respecte au plus près le gabarit fréquentiel. Spécificités des filtres RII - peuvent être obtenus par transposition d'un filtre continu - peuvent être obtenus avec un petit nombre de coefficients - mise en œuvre récursive - peuvent être instables - la réponse fréquentielle peut présenter une phase non linéaire - une bonne précision de calcul est nécessaire pour éviter la propagation des erreurs Principales méthodes de synthèse de filtre IIR: Transposition du filtre analogique en filtre numérique Méthode de l'invariance impulsionnelle Equivalence à la dérivation Equivalence à l'intégration : transformation bilinéaire
Forme générale : [ ] [ ] [ ]∑∑==
−+−=M
kk
N
kk knxbknyany
01
139 Filtres numériques réalisables en pratique. Filtres RII
Calcul de la réponse impulsionnelle : calcul de la sortie lorsque l’entrée est un dirac δ[n] on suppose que l’entrée est nulle avant l’instant de départ on suppose que la sortie est nulle avant l’instant de départ
Exemple du filtre RII défini par son équation entrée-sortie : [ ] [ ]0.8 1 5 [ ]y n y n x n= − +
Résultat du calcul :
[ ] 5 (0.8) [ ]nh n u n= ⋅ ⋅
Avec u[n], l’échelon unité
La transformée en Z est très utile pour ce calcul dans le cas général
140 Filtres numériques réalisables en pratique. Filtres RII
Exemple du filtre RII défini par son équation entrée-sortie : [ ] [ ]0.8 1 5 [ ]y n y n x n= − +
Noter la possible propagation des erreurs de calcul Noter le petit nombre de coefficients pour définir le filtre (2)
Calcul de la réponse du filtre pour le signal d’entrée x[n] x[n] = 2δ[n] - 3 δ[n-1] +2 δ[n-3]
y[0] = 0.8y[-1]+5x[0] = 0.8(0) + 5(2) = 10 y[1] = 0.8y[0]+5x[1] = 0.8(10) + 5(-3) = -7 y[2] = 0.8y[1]+5x[2] = 0.8(-7) + 5(0) = -5,6 y[3] = 0.8y[2]+5x[3] = 0.8(5,6) + 5(2) = 5,52 y[4] = 0.8y[3]+5x[4] = 0.8(5,52) + 5(0) = 4,416 ………. Ensuite la sortie est proportionnelle à (0,8)n
141 Filtres numériques réalisables. Exemple du filtre passe-bas du 1er ordre
Filtre numérique équivalent au filtre RC analogique passe bas :
Calcul de la réponse fréquentielle TFTD ou propriétés de la TZ
Relation entrée-sortie de ce filtre linéaire caractérisé par l’équation aux différences suivante :
On déduit la réponse impulsionnelle par calcul de la réponse à δ[n] ou avec la transformée en Z
[ ] [ ]1 [ ] 1y n ay n x n avec a− − = <
[ ] [ ] [ ] 'nh n a u n avec u n l échelon unité=
2
1( )1 j fH f
ae π−=−
143 Fenêtres de pondération
Modélisation
Pour traiter ou analyser un signal, on est amené à limiter sa durée. La transformée de Fourier du signal 'tronqué' n'est alors qu'une approximation de la transformée de Fourier du signal de départ. Il est important de faire un choix raisonné de la fenêtre de pondération w(t) qui est utilisée pour limiter la durée du signal.
Dans le domaine temporel :
La fenêtre qu’on utilise intuitivement est la fenêtre rectangulaire qui permet simplement de garder les échantillons du signal sur une durée fixée sans modifier leur amplitude. Le spectre du signal tronqué est donc convolué (en fréquence) par la TF du rectangle c’est à dire un sinus cardinal
Devient dans le domaine fréquentiel :
( ) )()( twtxtxw =
( ) )(*)( fWfXfX w =
144 Fenêtres de pondération
Analyse d’un signal sinus de fréquence 100Hz, échantillonné à 1000Hz et limité à L=64 échantillons
0[ ] exp( 2 ) ( / )x n j f n rect n Lπ= ⋅ 0sin( )( ) ( ) *sin( )
LfX f f ff
πδπ
= −
En échelle log ::
Élargissement du pic théorique à cause de la convolution par le sinus cardinal
145 Fenêtres de pondération
Paramètres fréquentiels caractéristiques des fenêtres de pondération: - Largeur du lobe principal résolution fréquentiel - Amplitude du 1er lobe secondaire résolution dynamique - Pente de décroissance des lobes secondaires résolution dynamique
146 Fenêtres de pondération
Diverses fenêtres ont été inventées dans le but de limiter les oscillations dans les lobes secondaires et réduire la largeur du lobe principal
Fenêtres de Hamming généralisées: Avec α=1 fenêtre rectangulaire α=0,54 fenêtre de Hamming α=0,5 fenêtre de hanning Fenêtres triangulaire ou Bartlett Fenêtre parabolique Fenêtre cosinusoïdale Fenêtre de Blackmann Fenêtre de Kaiser
( )
−+= )2cos()1()(
Tt
TtrecttwH
πααα
( ) [ ])1(sinc)1(sinc2
)1()(sinc −++−
+= TfTfTTfTfWHααα
147 Comparaison des fenêtres de pondération
Comparaison des différentes fenêtres de pondération dans le domaine temporel et le domaine fréquentiel
148 Comparaison des fenêtres de pondération
Analyse d’un signal constitué de la somme de 2 sinus échantillonnés à 4000Hz sur 200 points
Rectangle
Hamming
150
Introduction
Espace de représentation
Evolution temporelle
Regarder sous un autre angle
Choix de l'espace de représentation décision la détection l'estimation la classification la reconnaissance
151
Exemple introductif
• Signal 1 : somme de deux sinus f1=0,1 et f2=0,2 • Signal 2 : sinus avec rupture de fréquence f1=0,1 et
f2=0,2
TEMPS FREQUENCE
SIGNAL 1
SIGNAL 2
152
Le plan temps-fréquence
• Domaine temporel ------------ domaine fréquentiel • Dans le spectre : information délocalisée en temps • Signal à durée limitée et signal à bande limitée
• Inégalité d'Heisenberg-Gabor :
• Pour une gaussienne
∆ ∆t f. ≥1
4π2/1≥BT
153
Grandeurs locales : amplitude et fréquence instantanées
• Notion de « spectre instantané » ou de fréquence localisée dans le temps
• Exemple de la portée en musique
– Le temps est indiqué horizontalement
– La fréquence est indiquée verticalement
• Toutefois, l’axe des temps et des fréquences ont une résolution fixée
154
Représentation temps-fréquence • Vers une représentation temps-fréquence (RTF)
• Représentation schématique de ce qui est souhaitable
T t fx ( , )
t
f
f0 exp(j2πf0t)
t
f
δ(t-t0)
t0
t
f
exp(-αt²)
t
f
α
Exp(j2πt²α/2)
155
Transformée de Fourier à Court Terme (TFCT)
• TFCT du signal x(t) définie par :
• Interprétation :
TF locale au voisinage de t.
• Autre définition :
TFCT obtenue en filtrant x(t) par un filtre passe-bande de réponse fréquentielle H*(ξ-f) centré sur f
∫ τ−ττ=+∞
∞−
τπ− de)t(*h)(x)h;f,t(TFCT f2jx
)t(*h)(x)(xt −ττ=τ ∫ ττ==+∞
∞−
τπ− de)(x)f(X)h;f,t(TFCT f2jttx
ξ−ξ∫ ξ=−⊗= −ξπ+∞
∞−
π− de)f(*H)(Xe)f(*H)f(X)f(X t)f(2jft2jt
∫ ξ−ξξ=+∞
∞−
π− πξ de)f(*H)(Xe)h;f,t(TFCT t2jtf2jx
156
Transformée de Fourier à Court Terme (TFCT)
• Résolution en temps et en fréquence
)tt()t(x 01 −δ=
)tt(*hede)t(*h)t()h;f,t(TFCT 0ft2jf2j
0x0
1 −=∫ τ−τ−τδ= π−+∞
∞−
τπ−
t
f
t0
h(t)
157
Transformée de Fourier à Court Terme (TFCT)
Compromis entre résolution en temps et en fréquence exprimé par l’inégalité d'Heisenberg-Gabor.
e)t(x t0f2j2
π=
)ff(*Hede)f(*H)f()h;f,t(TFCT 0t)ff(2jt)f(2j
0x0
2 −=ξ−ξ∫ −ξδ= −π−ξπ+∞
∞−
t
f
f0 H(f)
158
Transformée en ondelettes
Représentation temps-échelle continue :
Représentation Temps-Fréquence pour
Pavage dyadique
Interprétation : filtres à Q-constant (Q = f0 / B)
)ats(h
a1)s(h avec ds)s(h)s(x)a,t(T ta**tax −∫ ==
+∞
∞−
a f f= / 0
t
f
159
Représentations temps-fréquence bilinéaires
Distribution d’énergie
• Energie de x(t) :
et : densités d’énergie respectivement temporelle et spectrale.
Rechercher une grandeur mixte qui sera une densité conjointe telle que :
Le « spectre instantané » est censé « déployer » l’énergie du signal
Deux contraintes naturelles :
∫=∫=+∞
−∞
+∞
−∞df)f(Xdt)t(xE 22
x
x t( ) 2X f( ) 2
T t fx ( , )
∫ ∫=+∞
∞−
+∞
∞−dtdf)f,t(TE xx
T t fx ( , )
)t(p=)t(xdf)f,t(Tet )f(P=)f(Xdt)f,t(T x2
xx2
x =∫=∫+∞
∞−
+∞
∞−
160
Spectrogramme
Le Sonagraphe
Le principe peut être modélisé ainsi :
Spectrogramme ou sonagramme donc aussi :
non négatif et à valeur réelle
Choix de la fenêtre d’analyse
Le spectrogramme est le module carré de la TFCT
2
*x de)f(H)(X)h;f,t(S t2j∫ ξ−ξξ=∞+
∞−
πξ
2f2j
*x de)t(h)(x)h;f,t(S ∫ τ−ττ=∞+
∞−
τπ−
162
Distribution de Wigner-Ville (DWV)
Définition Propriétés Structure des interférences Soit : Les termes d’interférences sont localisées autour
du temps et de la fréquence
∫+∞
∞−
τπ− ττ
−τ
+= de)2
t(y)2
t(x)f,t(W f2j*y,x
tf2j10121
1e)tt(x)t(x avec )t(x)t(x)t(x π−=+=tf2j
2022e)tt(x)t(x π−=et
2ttt 21
12+
=2
fff 2112
+=
163
Distribution de Wigner-Ville (DWV)
La fréquence des oscillations est dans la direction du temps et la fréquence des oscillations est dans la direction de la fréquence
21 ff −
21 tt −
t
f
Wx1(t,f)
(t1,f1)
Wx2(t,f)
(t2,f2)
direction des oscillations
1/(t1-t2)
1/(f1-f2)
Ix1,x2(t,f)
167 Overview of the MATLAB Environment
The Matlab system consists of these main parts :
• MATLAB is an interactive system whose basic data element is an array that does not require dimensioning
• It allows you to solve many technical computing problems, especially those with matrix and vector formulations
• The name MATLAB stands for matrix laboratory
• MATLAB features a family of add-on application-specific solutions called toolboxes. • Toolboxes are comprehensive collections of MATLAB functions (M-files) that extend the
MATLAB environment to solve particular classes of problems • For example : signal processing, image processing, DSP, Optimization, control systems,
neural networks, fuzzy logic, wavelets, simulation, and many other areas.
168 Overview of the MATLAB Environment
Overview of Matlab environment :
• Desktop Tools and Development Environment Many of these tools are graphical user interfaces. It includes:
the MATLAB desktop command Window, an editor and debugger, a code analyzer, browsers for viewing help, the workspace, and files, and other tools.
• Mathematical Function Library A vast collection of computational algorithms ranging from elementary functions, like sum,
sine, cosine, and complex arithmetic, to more sophisticated functions like matrix inverse, matrix eigenvalues, Bessel functions, and fast Fourier transforms
• The Language The MATLAB language is a high-level matrix/array language with control flow statements,
functions, data structures, input/output, and object-oriented programming features.
169 Overview of the MATLAB Environment
Overview of Matlab environment :
• Graphics MATLAB has extensive facilities for displaying vectors and matrices as graphs, as well as
annotating and printing these graphs. It includes high-level functions for two-dimensional and three-dimensional data visualization, image processing, animation, and presentation graphics
• External interface The external interfaces library allows you to write C and Fortran programs that interact
with MATLAB. It includes facilities for calling routines from MATLAB (dynamic linking), for calling MATLAB as a computational engine, and for reading and writing MAT-files
170 Matlab Documentation
To view the online documentation, select Help menu then Product Help in Matlab.
The Help command provides information about any Matlab function Example >> help filter
A useful command for getting started is >> intro
There are many demonstration programs that illustrate the capabilities of Matlab.
These can be started with the command >> demo
You can also download from the Matlab website the pdf version of the documentation: getstartwithMatlab.pdf which is the main source of this lesson
On the Matlab website you will find several forum of discussion and the possibility of exchanging .m files with Matlab users.
171 Starting a Matlab session
The desktop • When you start MATLAB, the desktop appears, containing tools (graphical user interfaces)
for managing files, variables, and applications associated with MATLAB
172 Matrix and arrays
About matrix
• In the MATLAB environment, a matrix is a rectangular array of numbers. Special meaning is attached to 1-by-1 matrices, which are scalars, and to matrices with only one row or column, which are vectors.
“think of everything as a matrix”
Where other programming languages work with numbers one at a time, MATLAB allows you to work with entire matrices quickly and easily
Albrecht Durer magical square matrix :
173 Matrix and arrays Entering matrix
• To enter Dürer’s matrix, simply type in the Command Window • A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
• Separate the elements of a row with blanks or commas. • Use a semicolon ; to indicate the end of each row. • Surround the entire list of elements with square brackets [ ]
• MATLAB displays the matrix you just entered: A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
• Once you have entered the matrix, it is automatically remembered in the MATLAB
workspace. You can refer to it simply as A. >> A • Note that semicolon ; at the end of a Matlab command does not display its result >> A; %does not display the matrix • Text placed after % in a command line is not interpreted
174 Matrix and arrays
special properties of a magic square : summing its elements. If you take the sum along any row or column, or along either of the two main diagonals,
you will always get the same number. Let us verify that using MATLAB.
>> sum(A) MATLAB replies with ans = 34 34 34 34
• It is the sum along each column : Matlab has a preference for working with the columns of a matrix
• Note that when an output variable is not specified, MATLAB uses the variable ans, short for answer
One way to get the row sums is to transpose the matrix
>> sum(A')' MATLAB replies with ans = 34 34 34 34
175 Matrix and arrays
The apostrophe operator (e.g., A') performs a complex conjugate transposition
• It flips a matrix about its main diagonal, and also changes the sign of the imaginary component of any complex elements of the matrix
The dot-apostrophe operator (e.g., A.'), transposes without affecting the sign of complex elements.
>> sum(diag(A)) MATLAB replies with ans = 34 For the antidiagonal : >> sum(diag(fliplr(A))) MATLAB replies with ans = 34 fliplr stands for flip a matrix from left to right
176 Matrix and arrays
Subscripts : The element in row i and column j of A is denoted by A(i,j) >> A(1,4) + A(2,4) + A(3,4) + A(4,4) MATLAB replies with
ans = 34 To use the value of an element outside of the matrix, it is an error: >> t = A(4,5) Index exceeds matrix dimensions Conversely, if you store a value in an element outside of the matrix, the size increases
to accommodate the newcomer: >> X = A; X(4,5) = 17 MATLAB replies with X = 16 3 2 13 0 5 10 11 8 0 9 6 7 12 0 4 15 14 1 17
177 Matrix and arrays
It is also possible to refer to the elements of a matrix with a single subscript, A(k) In which case the array is regarded as one long column vector formed from the
columns of the original matrix. A(8) is another way of referring to the value stored in A(4,2). Matlab replies with 15 The Colon Operator
1:10 is a row vector containing the integers from 1 to 10: 1 2 3 4 5 6 7 8 9 10 To obtain non unit spacing, specify an increment. For example, 100:-7:50 is 100 93 86 79 72 65 58 51 0:pi/4:pi is 0 0.7854 1.5708 2.3562 3.1416
178 Matrix and arrays
The Colon Operator Subscript expressions involving colons refer to portions of a matrix: >> sum(A(1:4,4)) computes the sum of the fourth column Tricks : The colon by itself refers to all the elements in a row or column of a matrix sum(A(:,4 )) computes the sum of the fourth column end refers to the last row or column, so sum(A(:,end )) computes also the sum of the fourth column B = magic(4) produces (magic is a Matlab built-in function): B = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 To produce the same matrix as Dürer painting, column 2 and 3 have to be exchanged : >> A = B(:,[1 3 2 4])
179 Expressions
Variables Matlab does not require any type declarations or dimension statements.
When Matlab encounters a new variable name, it automatically creates the variable and
allocates the appropriate amount of storage. If the variable already exists, Matlab changes its contents and, if necessary, allocates
new storage. MATLAB is case sensitive
Tricks : Choose long variable name
180 Expressions
Numbers Some examples of numbers are : 3 -99 0.0001 9.6397238 1.60210e-20 6.02252e23 1i -3.14159j 3e5i All numbers are stored internally using the long format specified by the IEEE® floating-
point standard. Floating-point numbers have a finite precision of roughly 16 significant decimal digits and a finite range of roughly 10-308 to 10+308
Tricks : The section “Avoiding Common Problems with Floating-Point Arithmetic” gives a few of
the examples showing how IEEE floating-point arithmetic affects computations in Matlab
181 Expressions
Operators Expressions use familiar arithmetic operators and precedence rules. + Addition - Subtraction * Multiplication / Division \ Left division (described in “Linear Algebra” in the MATLAB documentation) ^ Power ' Complex conjugate transpose ( ) Specify evaluation order Several special functions provide values of useful constants : pi 3.14159265... i Imaginary unit, j Same as i eps Floating-point relative precision, realmin Smallest floating-point number, realmax Largest floating-point number, Inf Infinity NaN Not-a-number
182 Working with matrix
MATLAB software provides four functions that generate basic matrices. zeros All zeros ones All ones rand Uniformly distributed random elements randn Normally distributed random elements
Examples : >> Z = zeros(2,4) Z = 0 0 0 0 0 0 0 0 >> F = 5*ones(3,3) F = 5 5 5 5 5 5 5 5 5 >> N = fix(10*rand(1,10)) N = 9 2 6 4 8 7 4 0 8 4 >> R = randn(4,4) R = 0.6353 0.0860 -0.3210 -1.2316 -0.6014 -2.0046 1.2366 1.0556 0.5512 -0.4931 -0.6313 -0.1132 -1.0998 0.4620 -2.3252 0.3792
183 Expressions
The load function The load function reads binary files containing matrices generated by earlier Matlab
sessions, or reads text files containing numeric data. The text file should be organized as a rectangular table of numbers, separated by
blanks, with one row per line, and an equal number of elements in each row.
The save function The workspace does not persist after you end the MATLAB session. To save the
workspace to a file that can be read during a later MATLAB session, use the save function which craetes a binary file called a MAT-file, which has a .mat extension.
>> save FILENAME X saves only X >> save FILENAME X Y Z saves X, Y, and Z. The wildcard '*' can be used to save only those variables that match a pattern
184 Expressions
M-files You can create your own matrices using M-files, which are text files containing
Matlab code. Use the Matlab Editor or another text editor to create a file containing the same statements you would type at the Matlab command line. Save the file under name that ends in .m.
To execute the successive commands of the M-file, you have just to type the name
of the file after the Matlab prompt.
185 Arrays
Operators The list of operators includes + Addition - Subtraction .* Element-by-element multiplication ./ Element-by-element division .\ Element-by-element left division .^ Element-by-element power .' Unconjugated array transpose Array operations are useful for building tables. Suppose n is the column vector >> n = (0:9)'; >> pows = [n n.^2 2.^n] builds a table of squares and powers of 2: pows = 0 0 1 1 1 2 2 4 4 3 9 8 4 16 16 5 25 32 6 36 64 7 49 128 8 64 256 9 81 512
186 Graphics
Creating a new Matlab figure The command >> figure creates a new Matlab figure The command >> figure (N) creates a new Matlab figure numbered N
Creating a Plot
The plot function has different forms, depending on the input arguments. If y is a vector, plot(y) produces a piecewise linear graph of the elements of y versus the index of the elements of y. If you specify two vectors as arguments, plot(x,y) produces a graph of y versus x.
Example x = 0:pi/100:2*pi; y = sin(x); plot(x,y) xlabel('x = 0:2\pi') % The characters \pi create the symbol π ylabel('Sine of x') title('Plot of the Sine Function','FontSize',12)
187 Graphics
Plotting Multiple Data Sets in One Graph Multiple x-y pair arguments create multiple graphs with a single call to plot (colours
automatically cycle) Example
x = 0:pi/100:2*pi; y = sin(x); y2 = sin(x-.25); y3 = sin(x-.5); plot(x,y,x,y2,x,y3) legend('sin(x)','sin(x-.25)','sin(x-.5)')
The command >> figure creates a new Matlab figure The command >> figure (N) creates a new Matlab figure numbered N
188 Graphics
Creating a Plot
The plot function has different forms, depending on the input arguments. If y is a vector, plot(y) produces a piecewise linear graph of the elements of y versus the index of the elements of y. If you specify two vectors as arguments, plot(x,y) produces a graph of y versus x.
Example x = 0:pi/100:2*pi; y = sin(x); plot(x,y) xlabel('x = 0:2\pi') % The characters pi create the symbol π ylabel('Sine of x') title('Plot of the Sine Function','FontSize',12)
189 Graphics
Specifying Line Styles and Colors It is possible to specify color, line styles, and markers (such as plus signs or circles)
when you plot your data using the plot command:
190 Graphics
Placing Markers at Every Tenth Data Point Example x1 = 0:pi/100:2*pi; x2 = 0:pi/10:2*pi; plot(x1,sin(x1),'r:',x2,sin(x2),'r+')
Graphing Imaginary and Complex Data When the arguments to plot are complex, the imaginary part is ignored except when you
pass plot a single complex argument. plot(Z) where Z is a complex vector or matrix, is equivalent to plot(real(Z),imag(Z)) Example t = 0:pi/10:2*pi; plot(exp(i*t),'-o') axis equal
191 Graphics
Displaying Multiple Plots in One Figure The subplot command enables you to display multiple plots in the same window or
print them on the same piece of paper. Typing subplot(m,n,p) partitions the figure window into an m-by-n matrix of small subplots
and selects the pth subplot for the current plot. The plots are numbered along the first row of the figure window, then the second row, and so on.
Example t = 0:pi/10:2*pi; [X,Y,Z] = cylinder(4*cos(t)); subplot(2,2,1); mesh(X) subplot(2,2,2); mesh(Y) subplot(2,2,3); mesh(Z) subplot(2,2,4); mesh(X,Y,Z)
192 Programming Avoid For loops For loops are inefficient in Matlab because overhead of interpreting the code The process to convert For loop could be refferd to as vectorizing : convert in a matrix-
vector operation It is often necessary to form a matrix by repeating one or more values throughout. Example x=[1 3 4 6 8 9 2 ] % x is a length-7 row vector X=ones(10,1)*x % X is a 10x7 matrix
Conditional Control – if, else, switch
Loop Control – for, while, continue, break
Creating functions
Exercise Explain the following lines of Matlab code
A=randn(6,3) B=A>0; A=A.*(A>0)
Write a new function which replace the negative element of the matrix A by -2 Test the following commands : A=randn(6,3) xy=find(A>0.5) find function returns the list of indices where a condition is true