Escolar Documentos
Profissional Documentos
Cultura Documentos
Traitement du Signal
Maîtrise E.E.A.
1) But de TP
Il s’agit de se familiariser avec le logiciel MATLAB qui intègre l’analyse numérique et le calcul
matriciel. MATLAB (MATrix LABoratory) est un logiciel puissant de calcul matriciel. En effet, toute
variable est introduite sous forme de matrice.
Exemple: un nombre (réel, complexe ou entier) correspond à une matrice 1 x 1,
un vecteur de n nombres correspond à une matrice 1 x n.
Ce TP doit permettre à tout étudiant de maîtriser l’environnement du logiciel de manière à pouvoir
travailler de manière autonome.
Après avoir cliqué sur l’icône MATLAB dans WINDOWS, vous vous trouvez dans la feuille de calcul de
MATLAB que l’on appellera fenêtre MATLAB. Le curseur se situe derrière 'l'invite' représenté par ce
symbole: >>
A cet endroit vous pouvez utiliser MATLAB aussi simplement qu’une machine à calculer.
Taper par exemple 2+3 puis Entrée, le résultat apparaît directement à la suite.
Bien entendu MATLAB est beaucoup plus puissant que votre calculatrice puisque vous pouvez réaliser
des programmes structurés, travailler sur des matrices de grande dimension, faire des calculs sur des
nombres complexes, afficher ou imprimer des graphes de qualité en 2D ou 3D. Enfin le grand avantage de
MATLAB est d’offrir à l’utilisateur un grand nombre de fonctions dédiées soit au calcul numérique, soit
au traitement du signal, soit à l’automatique ou encore aux réseaux de neurones.
Nous n’utiliserons qu’une infime partie des immenses possibilités de calcul de MATLAB, nous allons bien
sûr commencer par les plus élémentaires d’entre elles.
Assignation d’une variable : taper a=2 puis ‘Entrée’ (pour valider votre opération) et la variable a vaudra
2.
Attention MATLAB fait la différence entre les majuscules et les minuscules.
Taper par exemple a et le contenu de la variable a sera affiché, c’est à dire 2. Si vous tapez A aucune
valeur ne sera affichée puisque la variable A n’est pas allouée.
Vous pouvez fort bien réallouer une autre valeur à la variable a. Taper par exemple:
3
a=[1 2; 3 4] et le résultat suivant sera affiché :
a=
1 2
3 4
La variable a est ainsi devenue une matrice 2 x 2. Nous verrons dans le paragraphe suivant comment l'on
peut définir des matrices sans nécessairement donner tous les éléments de celles-ci. Dans la définition de
la matrice a donnée ci dessus, les crochets servent à englober tous les éléments et le point virgule
permet de séparer chaque ligne. A noter que les indices partent obligatoirement de 1, ils ne sont pas
paramétrables comme dans d’autres langages. Ainsi si vous tapez a(1,1), le résultat affiché sera 1. Le
chiffre 1 sera donc l’élément (1,1) de la matrice a; on ne pourra pas changer cela pour qu’il devienne
l’élément (0,0).
Pour extraire une ligne ou une colonne d’une matrice, il existe les instructions a(n, :) et a( :,n) où n
représente le numéro de la ligne. Tester ces instructions en tapant a(1, :) et a( :,1).
Pour transposer la matrice, il suffit de taper a’. Les transpositions peuvent être utiles pour transformer un
vecteur ligne en vecteur colonne, ou inversement.
Pour créer une matrice, nous avons vu qu’il était possible de la définir à partir de l’ensemble de ses
éléments mis entre crochets en séparant les lignes par des points virgules. Dans le cas de matrices
élémentaires, Matlab permet de définir celles-ci de manière simple, pour définir une matrice x ne
contenant que des 0 par exemple, il suffit de taper : x=zeros(m,n) où m et n représentent respectivement
le nombre de lignes et le nombre de colonnes. Les instructions ones et eye permettent de définir
respectivement des matrices de 1 et des matrices identité. Il existe d’autres matrices élémentaires qu’il
est possible de créer de cette manière, reportez vous à l’aide de Matlab pour en prendre connaissance en
cliquant sur Help puis Help Window et matlab\elmat. Vous trouverez également sous cette rubrique :
- des instructions donnant des informations sur les matrices comme la taille par exemple : size et
length.
- des instructions permettant de manipuler les matrices comme la rotation avec rot90, flipud, fliplr.
Passons à présent aux opérations matricielles:
- Addition: taper: b=2+a et vérifier l’opération réalisée.
taper: c=a+b et vérifier le résultat.
- Soustraction: taper: b=b-2 et vérifier que b vaut à présent a.
taper: b=b-a et vérifier que les éléments de b sont nuls.
- Multiplication: taper: b=2*a et noter ce que vaut b
taper: c=a.*b et relever les valeurs de c pour comprendre
comment les éléments de a et b sont multipliés entre eux.
taper: d=a*b et donner la différence par rapport à l’opération
précédente.
4
Attention cette dernière opération n’est pas commutative contrairement au .*. Le produit b*a est donc
différent de d (sauf cas particulier comme ici).
- Division: taper: c./a et comparer le résultat avec b.
taper: c./b et comparer le résultat avec a.
taper: a\d et vérifier que le résultat correspond à l’inverse de a
multiplié par d (c’est à dire b).
taper: d/b et vérifier que le résultat correspond au produit de d
par l’inverse de b (c’est à dire a).
- Puissance: taper: a.^2 et expliquer le type d’opération effectuée.
taper: a^2 et comparer ce résultat avec le précédent.
Nous venons de créer un certain nombre de variables. Contrairement aux langages de programmation les
plus courants, il n'y a pas besoin de déclarer les variables ainsi que leur type (entier, réel ou autre).
Tapez la commande who pour connaître les différentes variables utilisées. Pour effacer les variables,
tapez clear. Attention, de nombreuses erreurs de programmations pourront être commises à cause de
noms de variables utilisés plusieurs fois et devant désigner des choses différentes.
2.2) Génération de matrices ou de vecteurs et calculs sur les nombres complexes en traitement
du signal
En traitement du signal, nous travaillerons surtout avec des vecteurs qui correspondent à des matrices à
une seule ligne ou une seule colonne. Ces vecteurs permettent de simuler un signal échantillonné.
5
y=exp(i*2*pi*t) que l’on rencontre dans les définitions des transformées de Fourier. Les variables i et j
sont prédéfinies dans Matlab pour les nombres complexes. Parmi les opérations les plus fréquemment
utilisées en traitement du signal, vous avez :
- abs : valeur absolue d’un réel ou norme d’un complexe.
- angle : phase correspondant au nombre complexe.
- conj : conjugué d'un nombre complexe.
- real: partie réelle d'un nombre complexe.
- imag: partie imaginaire d'un nombre complexe.
D'autres instructions permettent l'analyse des données contenues dans des matrices sont également très
utiles. C'est le cas des fonctions :
- max: qui donne la valeur maximale d'une matrice.
- min: qui donne la valeur minimale d'une matrice.
- mean: qui donne la valeur moyenne d'une matrice.
- hist: qui donne l'histogramme des valeurs contenues dans la matrice.
- sum: qui calcule la somme des éléments d'une matrice
Pour plus de renseignements sur ce type de fonctions, reportez vous à l'aide dans la rubrique
matlab\datafun où figure un grand nombre d'instructions utiles au traitement de données.
Si vous voulez avoir de l'aide sur une fonction dont vous connaissez le nom, il suffit de taper help suivi du
nom de l'instruction dans la fenêtre de travail pour avoir des renseignements sur la syntaxe et le rôle de
cette instruction.
2.3) Graphisme
Pour obtenir l’aide sur les instructions propres au graphisme, sélectionner la rubrique matlab\graphics.
Afin de vous guider nous présenterons en premier lieu la fonction graphique élémentaire: plot
6
t2=0 :0.001 :1 ;y2=cos(2*pi*t2) ;
plot(t2,y2)
hold on
stem(t,real(y))
Déduire d’après les observations du graphe obtenu à la suite de chacune des 3 dernières instructions ce
que réalisent les fonctions hold on et stem.
Vous pouvez fort bien spécifier la couleur et le style de tracé en rajoutant une chaîne de caractères S
dans l’instruction: plot(X,Y,S). Par exemple, si vous tapez: plot(t,real(y),’b+’), vous tracerez des + de
couleur bleue. Pour connaître les différentes possibilités de tracé, tapez help plot.
7
t=0:T/N:T-T/N;
y=t.^2+5;
plot(t,y);
Pour sauvegarder ce script, il faut au préalable créer un répertoire de travail sur le disque dur, nommez
le par exemple mst2 sur la disquette. Cliquez ensuite sur File puis Save as et donnez le nom suivant:
courbe1 ainsi que le répertoire que vous venez de créer. Pour exécuter ce script, donnez le nom du
répertoire ou plus précisément le chemin (path) en cliquant sur File puis Set Path. Revenez dans la fenêtre
de Matlab et tapez: courbe1. Vous devrez donner une durée du signal et un nombre de points avant de
visualiser le tracé de la fonction.
8
Les boucles et instructions conditionnelles :
La syntaxe de ce type d’instructions (for, while, if) est décrite dans l’aide (option Help, puis Help
Window et la rubrique matlab\lang).
A titre d’exercice utiliser les instructions if et for pour créer une matrice X de dimension
5 x 5 où les éléments de la diagonale sont égaux à 5 et les autres à 7.
Il est souhaitable de ne pas utiliser i et j comme des variables (ex: for i=1:1:n) car i et j sont utilisées pour
définir des nombres complexes.
La ponctuation :
Les virgules, points virgules, et trois points (...) sont utilisés dans les scripts et les fonctions dans
les cas suivants:
- Pour séparer deux instructions sur une même ligne, on utilise la virgule.
Exemple: taper subplot(1,2,1),plot(t,real(y)),subplot(1,2,2),plot(t,imag(y))
L’ensemble de ces instructions sera réalisé en une fois.
- Pour que le résultat de l’opération n’apparaisse pas dans la fenêtre MATLAB, utiliser le point virgule.
Exemple: taper a=[1 2; 3 4];
La matrice a n’est pas retranscrite à l’écran.
- Si vous avez une instruction qui est trop longue, vous pouvez l’écrire sur deux lignes grâce au trois
points.
Exemple: taper a=[1 2 3 4 5 6 7 8 9;...
11 22 33 44 55 66 77 88 99]
Cette dernière instruction est intéressante à utiliser pour la mise en page de vos programmes.
Pour voir de manière plus générale à quoi peuvent servir les signes de ponctuation, choisissez la rubrique
matlab\general et cliquez au bas de la page sur See also PUNCT.
3) Exercices
9
t f − t0
tf
te ⎡ N −1
⎤
∫ f (t ) dt =
2 ⎢
⎣
f ( 0 ) + f ( N ) + 2 ∑
k =1
f (k )⎥ avec f(k) = f(kt e ) et N =
⎦ te
t0
Pour réaliser votre programme, vous devrez utiliser des instructions spécifiques au traitement de chaînes
de caractères comme par exemple eval et strcat. L'aide concernant l'ensemble des fonctions de
traitement des chaînes de caractères se trouve sous la rubrique matlab\strfun.
+∞
- A titre d'application estimez l'intégrale suivante ∫−∞
sin c(t )dt . Calculer la valeur théorique de cette
intégrale et vérifier que le résultat obtenu numériquement en prenant des bornes de –100 à +100 s'y
approche.
10
que l’instruction pause(0.1) dans cette boucle pour avoir le temps de voir l’évolution des graphes. Pour ne
pas être trop original, vous nommerez votre script lissajou.m
- Observez par exemple ce qui se passe pour f1=f2=1Hz et un déphasage qui varie de 0 à 2π par pas
de 0.1radian ; fixer le vecteur temps ainsi : t=0 :0.01 :1 .
- Par la suite prenez par exemple f2=2, 3 ou 4 ; c’est plus joli.
4) Conclusion
Vous serez vite convaincus que ce logiciel a de nombreux avantages pour tout type de calcul. Parmi les
points forts de MATLAB:
- important nombre de fonctions prédéfinies, ce qui permet de réaliser des programmes de calculs
complexes en très peu de lignes de programmation.
- graphisme de très haute qualité.
- simplicité du langage de programmation.
- les paramètres n’ont pas à être déclarés; ceci est un avantage et un inconvénient car vous
pouvez commettre des erreurs en utilisant deux fois le même nom de variable dans un programme.
11
12
TP 2 : ANALYSE ET SYNTHÈSE DE SIGNAUX PÉRIODIQUES
1) INTRODUCTION
1 ⎛ t ⎞
xn = ∫
T0 [T0 ]
x(t ) exp⎜⎜ − i 2πn ⎟⎟dt
⎝ T0 ⎠
(2)
1/T0 : représente une fréquence appelée fondamentale, et de manière plus générale on nomme nième
harmonique la fréquence correspondant à n/T0.
Prenons une fonction cosinus comme exemple pour calculer le spectre d’un signal périodique à partir des
séries de Fourier :
⎛ t ⎞
x(t ) = A cos⎜⎜ 2π ⎟⎟ (3)
⎝ T0 ⎠
T0 : période
A : amplitude
En utilisant l’équation (2) pour calculer les coefficients de Fourier, nous obtenons :
xn=A/2 pour n=±1 et xn=0 pour n différent de ± 1
Le spectre en amplitude est donné par la norme de xn et peut être tracé de la façon suivante :
13
On remarque que ce signal périodique n’est constitué que d’une fondamentale, il est monochromatique.
Le domaine des fréquences négatives n’a aucune signification physique, il est dû aux fonctions
exponentielles complexes introduites dans la définition des séries de Fourier. Pour les signaux réels,
le spectre en amplitude sera toujours une fonction paire. Les analyseurs de spectre délivrent plus
généralement le spectre en puissance qui est représenté ci-dessous dans le cas de la fonction cosinus
Cette représentation permet de faire un calcul très simple de la puissance moyenne totale par le
théorème de Parseval :
+∞
1
∑
T0
P=
T0 ∫
0
x 2 (t )dt =
n = −∞
xn2 (4)
14
Relations entre la série de Fourier et la décomposition en série trigonométrique.
Pour obtenir la relation entre les coefficients xn et les coefficients en cosinus (an) et les
coefficients en sinus (bn), on remplace la fonction exponentielle complexe dans la formule (1) par cosinus
+ i sinus. Ensuite, on identifie le résultat obtenu avec le développement en série trigonométrique donné
ci-dessous :
+∞
⎛ t ⎞ +∞ ⎛ t ⎞
x(t ) = a0 + ∑ a n cos⎜⎜ 2πn ⎟⎟ + ∑ bn sin⎜⎜ 2πn ⎟⎟ (5)
n =1 ⎝ T0 ⎠ n=1 ⎝ T0 ⎠
On obtient alors la relation suivante entre les coefficients xn et les valeurs de an et bn :
an − ibn
xn = pour n différent de 0. (6)
2
1
x0 = a0 =
T0 ∫[ T0 ]
x (t )dt
Les relations donnant les valeurs de an et bn sont obtenues à partir des équations (6) et (2) :
2 ⎛ t ⎞
T0 [ T∫0 ]
an = x ( t ) cos⎜ 2 πn ⎟⎟dt (7)
⎜
⎝ T 0 ⎠
2 ⎛ t ⎞
bn = ∫
T0 [ T0 ]
x ( t ) sin ⎜⎜ 2πn ⎟⎟dt
⎝ T0 ⎠
(8)
Les coefficients an et bn ne sont définis que pour des valeurs de n positives. Dans le cas des signaux réels
(à partie imaginaire nulle) une relation simple provenant de la propriété de symétrie hermitienne permet
de calculer les coefficients xn pour des indices n négatifs à partir des valeurs de xn pour n positif :
x − n = x n*
En appliquant ces relations à notre signal sinusoïdal, le seul coefficient différent de 0 est a1=A. Ce
résultat s’obtient également de façon très simple dans ce cas particulier en identifiant les équations (3) et
(5).
Relation entre la transformée de Fourier et les coefficients de Fourier pour les signaux périodiques.
Il est également possible de calculer la transformée de Fourier pour un signal périodique de période T0, le
résultat obtenu donne en réalité les mêmes informations que les coefficients de Fourier, ceci va être
démontré à présent :
15
+∞
X ( f ) = ∫ x(t ) exp(− i 2πft )dt
−∞
+∞ +∞ ⎛ n ⎞
=∫ ∑x exp⎜⎜ i 2π
n t ⎟⎟ exp(− i 2πft )dt
−∞
n = −∞ ⎝ T 0 ⎠
⎛ (9)
+∞ +∞ ⎛ n⎞ ⎞
= ∑ x n ∫ exp⎜⎜ − i 2π ⎜⎜ f − ⎟⎟t ⎟⎟dt
−∞
n = −∞ ⎝ ⎝ T0 ⎠ ⎠
+∞
⎛ n⎞
= ∑ x δ ⎜⎜ f − T
n
⎟⎟
n = −∞ ⎝ 0 ⎠
Les valeurs de a0 ne suivent pas les conditions précédentes, a0 représente la valeur moyenne du signal.
Travail demandé
40 20
an = , a0 =
( )
Montrer que : et bn=0 pour tout n.
π 1 − (2n ) 2
π
16
b) Rampe
cos(πn )
Montrer que: bn = −10 et an=0 pour tout n.
πn
c) Signal modulé en amplitude
17
ce signal, il n'est pas nécessaire d'utiliser les formules 7 et 8 pour calculer les coefficients an et bn, il
suffit de développer le produit des fonctions cosinus apparaissant dans l'équation précédente. Le signal
y(t) peut alors s'exprimer comme la somme de fonctions cosinus, on réalise donc aussi la décomposition
de ce signal en somme de plusieurs sinusoïdes que l'on peut appeler série trigonométrique.
- Déterminer la période du signal modulé ainsi que les coefficients de Fourier.
d) Peigne de Dirac
Le peigne de Dirac a été étudié en cours et nous avons déterminé la transformée de Fourier de ce signal
et donc ses différents coefficients de Fourier.
- Calculer les coefficients de Fourier d’un peigne de Dirac de période égale à 1 seconde.
- En déduire les valeurs des coefficients a0, an et bn.
Réalisez des fonctions que vous nommerez sinred.m, rampe.m, modam.m et dirac.m pour réaliser la
synthèse par série trigonométrique des fonctions sinus redressée, rampe, cosinus modulé en amplitude
par un cosinus, et peigne de Dirac. Les arguments d’entrée de ces fonctions seront :
- N : le nombre de sinusoïdes à sommer
- T0 : la période de la fonction.
Il n’y a pas d’argument de sortie, il faut simplement tracer les représentations temporelles et
fréquentielles : x(t) et |X(f)|
Pour cela, les signaux seront donc générés à partir d’un vecteur temps t de 1000points répartis sur
l’intervalle [0, 2T0] grâce à la formule suivante :
N
⎛ t ⎞ N ⎛ t ⎞
x(t ) = a0 + ∑ an cos ⎜ 2π n ⎟ + ∑ bn sin ⎜ 2π n ⎟
n =1 ⎝ T0 ⎠ n =1 ⎝ T0 ⎠
Pour chaque fonction il faudra calculer les valeurs pour an, bn et a0. C'est ainsi que l'on pourra synthétiser
de façon exacte ou de manière approchée les signaux a),b),c),d) à partir de leurs décompositions en série
trigonométrique.
- Pour les signaux a) et b), relevez et commentez l'évolution des ondulations présentes sur les
signaux synthétisés x(t) au fur et à mesure que vous augmentez le nombre N de sinusoïdes. En déduire
l'origine de ces ondulations qui constituent ce qu'on appelle l'effet Gibbs. Comment expliquez vous que
ces ondulations soient plus importantes sur la rampe que sur le sinus redressé. Pour vos explications,
basez-vous sur les spectres des signaux générés.
18
- Pour le signal c), vérifiez que le signal que vous obtenez par synthèse de plusieurs sinusoïdes
correspond exactement à celui représenté dans l'énoncé.
- Pour bien visualiser l’effet Gibbs et son évolution avec le nombre N de sinusoïdes ajoutées,
créer dans la fonction Dirac une animation obtenue en ré initialisant dans une boucle while le graphe
obtenu pour le tracer de x(t) au fur et à mesure que N augmente. Expliquer en conclusion pour quelles
raisons il est impossible de générer un peigne de Dirac ou une impulsion de Dirac.
19
20
TP 3 : UTILISATION DE LA TFD
POUR L’ANALYSE SPECTRALE DE SIGNAUX
1) Introduction
Le but de ce TP est d’interpréter correctement les résultats obtenus par le calcul d’une transformée
de Fourier discrète dans le cas de signaux périodiques. Il faudra pouvoir lier ces résultats aux
coefficients de Fourier et à la transformée de Fourier du signal échantillonné. A titre d’illustration on
traitera des cas simples de signaux périodiques et on verra tout l’intérêt de l’analyse spectrale sur des
signaux périodiques bruités. Nous verrons comment le choix de la fréquence d’échantillonnage et du
nombre d’échantillons influe sur les spectres obtenus. Pour des rappels sur l’analyse de Fourier de
signaux périodiques, reportez vous à l’introduction du TP 2. On peut facilement exprimer la transformée
de Fourier X(f) à partir des coefficients de Fourier xn pour un signal périodique x(t) :
+∞
⎛ n⎞
X( f ) = ∑ x δ ⎜⎜ f − T
n
⎟⎟ (1)
n = −∞ ⎝ 0 ⎠
La transformée de Fourier de xs(t) (Xs(f)) s’écrira alors comme le produit de convolution de X(f) avec la
transformée de Fourier du peigne de Dirac qui est également un peigne de Dirac :
X s ( f ) = X ( f ) ∗ f eδ fe ( f )
+∞ (3)
= fe ∑ X ( f − nf )
n = −∞
e
La simplification opérée pour passer de la première à la deuxième ligne de l’équation (3) est due à la
propriété d’élément neutre de l’impulsion de Dirac pour la convolution. La figure suivante illustre la
relation existant entre X(f) et Xs(f). Attention la fonction Xs(f) étant périodique de période fe, il est
impossible de la représenter dans son intégralité (de -∞ à +∞).
21
Cette figure montre bien qu’il est nécessaire d’échantillonner le signal à une fréquence fe supérieure ou
égale à 2 fois la bande limitée du signal B de manière à éviter un recouvrement de spectre (théorème de
Shannon). On comprend dès lors l’intérêt d’un filtre anti-repliement à placer avant l’échantillonneur pour
limiter le spectre du signal. On conçoit également qu’une simple opération de filtrage passe-bas puisse
permettre de reconstruire le signal initial à partir de ces échantillons. La figure précédente montre
également une propriété importante de Xs(f) : la périodicité.
La transformée de Fourier discrète (X[n]) de x(t) est directement liée à la transformée de Fourier du
signal échantillonné (Xs(f)) par la relation suivante :
⎛ n ⎞ N −1 ⎛ mn ⎞
X [n] = X s ⎜ f = ⎟⎟ = ∑ x(t m )exp⎜ − i 2π
⎜ ⎟ (4)
⎝ T0 ⎠ m=0 ⎝ N ⎠
Cette équation s’obtient en simplifiant l’expression de la transformée de Fourier de xs(t) calculée en
f=n/T0. T0 désigne ici le temps de mesure du signal, N représente le nombre de points échantillonnés sur
cette durée, et tm=mte où te est la période d’échantillonnage qui correspond à T0/N. La majeure partie des
problèmes d’analyse spectrale par calcul de transformée de Fourier discrète proviennent de cette
limitation de durée du signal qui est évidemment indispensable. En effet limiter la durée de x(t) revient à
multiplier x(t) par une fonction porte de largeur égale à T0. X(f) sera alors convolué par la transformée de
Fourier de cette fonction porte qui est un sinus cardinal. Au lieu d’avoir un spectre de raies pour un
signal périodique on aura des fonctions sinus cardinales présentant différents lobes (un lobe principal ou
central et des lobes secondaires) qui donnent lieu à l’effet Gibbs. Les problèmes de résolution spectrale
en analyse par transformée de Fourier discrète sont liés au recouvrement possible de ces lobes.
A titre d’exemple, prenons le cas d’une fonction cosinus de fréquence et d’amplitude unité :
X(f ) =
1
2
(δ ( f − f1 ) + δ ( f + f1 ) )
22
Le spectre en amplitude de ce signal périodique est donc formé d’une impulsion de Dirac dans les
fréquences positives située en f1=1Hz. Pour calculer une TFD sur ce signal, on est amené à limiter le
nombre d’échantillons du signal, donc la durée de celui-ci. On note alors x`(t) le signal x(t) limitée à un
intervalle de temps allant de 0 à T0:
⎛ T ⎞
x '(t ) = x(t )rT 0 ⎜ t − 0 ⎟ avec T0 = 1s
⎝ 2⎠
Après échantillonnage de ce signal limité à l’intervalle [0,T0[, le spectre du signal devient périodique de
période fe. Ce spectre est déterminé à partir de la transformée de Fourier du signal échantillonné donné
par :
+∞
X s ( f ) = fe ∑ X ' ( f − kf )
k = −∞
e
La TFD correspond à une ensemble d’échantillons prélevés sur la transformée de Fourier du signal
échantillonné calculés par :
⎛ n ⎞ N −1 ⎛ mn ⎞
X [n] = X s ⎜⎜ f = ⎟⎟ = ∑ x(t m )exp⎜ − i 2π ⎟
⎝ T0 ⎠ m=0 ⎝ N ⎠
23
N correspond aux nombres d’échantillons prélevés sur x(t) sur [0, T0[ avec une période d’échantillonnage
T0
te = . N correspond aussi au nombre d’échantillons prélevés sur Xs(f) sur [0, fe[ avec un pas appelé
N
1
résolution spectrale qui vaut : ∆f = . Ce dernier résultat découle directement de l’expression de X[n]
T0
donnée précédemment, on vérifie bien qu’en prenant N échantillons distants de 1/T0, on couvre bien une
N
gamme de fréquence égale à fe : f e = .
T0
Dans notre exemple, nous avons choisi N=8 et fe=8Hz. Voici ce que nous obtenons dans ce cas au niveau
des spectres.
Dans l’exemple que nous venons de traiter, nous avons particulièrement bien choisi la fréquence
d’échantillonnage fe et la durée de mesure T0.
En effet, fe respecte le théorème de Shannon fe>2f1 et T0 est un multiple de la période du signal ce qui
nous permet d’avoir la fréquence du signal f1 multiple entier de la résolution spectrale ∆f. Lorsque ces
deux conditions sur fe et T0 sont satisfaites, il est possible d’établir la relation suivante entre les
coefficients de Fourier du signal périodique et la transformée de Fourier discrète :
X [ n]
xn = sur l'intervalle [0, f e / 2[ . En toute rigueur xn désigne ici les coefficients de Fourier de la
N
répétition périodique de x`(t), il faut donc nécessairement que T0 soit égale à la période de x(t) ou alors
un multiple entier de celle-ci. Dans le cas contraire, il est impossible d’établir un lien entre les résultats
de la TFD et les coefficients de Fourier ou la transformée de Fourier du signal périodique. C’est ce que
24
nous pouvons observer au travers de l'exemple suivant dans lequel pour le même signal périodique, nous
avons choisi une durée de mesure T0 différente d’un multiple entier de la période.
Pour ces spectres, la durée de mesure a été choisie égale à T0=1.3s. La fréquence de la fonction cosinus
est toujours de 1Hz et 8 échantillons sont prélevés sur la durée T0.
Dans ce cas, on voit bien que la troncature du signal et le repliement dû à l’échantillonnage modifie
fortement les résultats obtenus par TFD et on n’a plus de relation directe entre les coefficients de
Fourier et la TFD.
25
2) Travail demandé
Créer une fonction similaire au script tfd que vous avez fait au TP1 qui aura pour but de tracer la
représentation temporelle x(t) ainsi que le spectre sous 3 représentations complémentaires :
1) partie réelle du spectre obtenu par calcul de la transformée de Fourier discrète en fonction
des fréquences
2) partie imaginaire
3) module
Pour tracer ces 4 graphes, il faut bien sur définir la fonction à étudier et les conditions d’échantillonnage.
On choisit d’analyser une fonction cosinus, il faudra fournir son amplitude et sa fréquence ainsi que la
fréquence d’échantillonnage fe et la durée de mesure T0 comme paramètres d’entrées de votre
programme. Si vous voulez par exemple étudier un signal de fréquence 3kHz et d’amplitude 0.2 avec une
fréquence d’échantillonnage 30kHz et une durée de mesure 1ms, il faudra taper tfd(3000,0.2,30000,0.001)
pour obtenir les 4 graphes donnant les représentations temporelles et spectrales du signal.
NB : - pour calculer la transformée de Fourier discrète vous pouvez utiliser l’instruction fft.
- utiliser toujours de préférence l’instruction stem plutôt que plot.
- Expliquer comment vous allez calculer le vecteur temps nécessaire à la représentation temporelle du
signal.
- Expliquer comment vous allez calculer le vecteur des fréquences nécessaire pour pouvoir représenter
le spectre.
- En reprenant l’exemple donné précédemment expliquez comment vous pouvez exploiter le spectre
pour retrouver l’amplitude et la fréquence du signal.
- Déterminer les valeurs minimales de fe et T0 qui permettent d’obtenir un spectre ‘exploitable‘ pour
l’étude d’un signal défini par x(t ) = 5 cos(100πt ) , j’entends par spectre exploitable un spectre à partir
duquel il est possible de déterminer l’amplitude et la fréquence du signal sans aucune ambiguïté. Il est
bien sûr souhaitable de donner les graphes obtenus pour les valeurs de fe et T0 choisies.
- Expliquer pourquoi lorsque vous tapez tfd(1000,1,1050,0.04) vous observez une représentation
temporelle du signal qui laisse à penser que le signal a une période de 0.02s. Commenter et
interpréter également le spectre obtenu.
26
2.2) Analyse d’une fonction cosinus bruitée
Reprenez la fonction tfd précédente en rajoutant cette fois à la fonction cosinus du bruit obtenu grâce à
l’instruction randn qui permet de générer des nombres aléatoires qui suivent une loi gaussienne. Pour
réaliser cette addition, il faudra par exemple sommer à la fonction cosinus un vecteur
ab*randn(1,length(t)) où ab désigne l’amplitude du bruit et length(t) la longueur du vecteur temps noté t.
La variable ab devra être fournie comme paramètre d’entrée de la fonction tfd. Au niveau des graphes à
tracer, contentez vous à présent de représenter le signal en fonction du temps et le spectre en amplitude
(reporter uniquement le module et pas les parties réelles et imaginaires).
Si vous voulez par exemple étudier un signal sinusoïdal de fréquence 3kHz et d’amplitude 0.1 bruité par la
fonction randn d’amplitude 0.1 et échantillonné à une fréquence d’échantillonnage 100kHz sur une durée
de mesure 1ms, il faudra taper tfd(3000,0.1,0.1,100000,0.001) pour obtenir les 2 graphes donnant les
représentations temporelles et spectrales du signal.
- Observer et commenter les graphes obtenus pour le signal pris comme exemple auparavant en
choisissant pour ab différentes valeurs : 0.01, 0.05 et 0.1. Essayer dans chaque cas d’exploiter les
deux représentations (temporelles et fréquentielles) pour en extraire l’amplitude et la fréquence de la
sinusoïde, quelles conclusions peut-on en tirer quant à l’intérêt de l’étude fréquentielle d’un signal.
Reprenez la fonction tfd précédente en remplaçant cette fois le bruit par une deuxième fonction cosinus.
Pour réaliser cette addition, il faudra par exemple sommer à la fonction cosinus de départ un vecteur
a2*cos(2*pi*f2*t) où a2 et f2 désignent l’amplitude et la fréquence de la deuxième sinusoïde. Les variables
a2 et f2 devront être fournis comme paramètres d’entrée de la fonction tfd.
Si vous voulez par exemple étudier une somme d’un signal sinusoïdal de fréquence 3kHz et d’amplitude
0.1 et d’une fonction cosinus de fréquence 3.3kHz et d’amplitude 0.05 échantillonnée à une fréquence
d’échantillonnage 100kHz sur une durée de mesure 1ms, il faudra taper
tfd(3000,0.1,3300,0.05,100000,0.001) pour obtenir les 2 graphes donnant les représentations temporelles
et spectrales du signal.
- Observer et commenter les graphes obtenus dans l’exemple précédent. Essayer d’extraire de ces
graphes les amplitudes et fréquences des deux sinusoïdes.
- Quel est le paramètre d’échantillonnage à modifier pour pouvoir extraire correctement les
amplitudes et fréquences des deux sinusoïdes. Représenter et exploiter les graphes alors obtenus.
- En guise de conclusion générale à ce TP donner les points forts de l’analyse fréquentielle de signaux
périodiques par transformée de Fourier discrète.
27
28
TP 4 : UTILISATION DE LA TFD
POUR L’ESTIMATION D’UNE FONCTION DE CORRÉLATION
1) Introduction
Un signal aléatoire X(t,ω) est défini à chaque instant t1,t2,t3,… par sa loi de probabilité temporelle:
p(x1,x2,x3,…,t1,t2,t3,…). Il existe un grand nombre de lois de probabilité dont la loi gaussienne et la loi
uniforme:
1 ⎛ ( x − mx ) 2 ⎞
loi gaussienne : p ( x) = exp ⎜ − ⎟
σ 2π ⎜ 2σ 2
⎟
⎝ ⎠
⎧ 1
⎪x − x sur un intervalle ⎡⎣ xinf , xsup ⎤⎦
loi uniforme : p( x) = ⎨ sup inf
⎪ 0
⎩ ailleurs
Il est possible de générer les signaux aléatoires à partir de variables aléatoires qui suivent ces lois de
probabilité. On peut ainsi générer des bruits en prenant comme modèle:
Y (t ,ω ) = Y (t , X ) = aX + b
avec X une variable aléatoire gaussienne ou uniforme, et a et b des constantes qui permettent de
paramétrer la puissance moyenne totale, la variance ou encore la valeur moyenne du signal Y.
Un signal aléatoire est dit stationnaire au sens strict si ses propriétés statistiques sont indépendantes de
l'origine des temps. Il est stationnaire au second ordre si son moment d'ordre 1 (valeur moyenne
statistique) ne dépend pas de l'instant choisi et si le moment mixte d'ordre 2 (l'autocorrélation statistique)
ne dépend que de τ: l'écart entre les instants t1 et t2 choisis pour relever les ensembles statistiques.
Ces moments sont calculés à partir d'ensembles statistiques formés par des observations du signal en
différents instants (t1, t2, …). Pour obtenir des résultats significatifs, il est donc nécessaire de constituer
des ensembles importants, et pour cela un grand nombre de relevés doit être entrepris. Il est souvent
plus facile de travailler sur un seul relevé du signal en fonction du temps et de calculer alors des
moments temporels. C'est ce qui est fait habituellement pour des signaux déterministes, pour les signaux
aléatoires, ces moments temporels ne donnent des résultats significatifs que si on fait l'hypothèse
d'ergodicité, c'est à dire que les moments ou moyennes temporelles correspondent aux moments
statistiques. Nous allons présenter les deux principales manières d'estimer numériquement la fonction
d'autocorrélation.
29
• Estimation numérique de l'autocorrélation
La fonction d'autocorrélation Rx(τ) est calculée en prenant la valeur moyenne de X(t,ω) multiplié par X(t-
τ,ω). Pour simplifier les écritures, les signaux numérisés sont le plus souvent exprimés en fonction
d'indices prenant des valeurs entières. Par exemple, au lieu d'écrire x(tm) avec tm=mte (te: période
d'échantillonnage), on préfère écrire x(m). Ainsi, pour estimer numériquement la fonction
d'autocorrélation, on pose simplement le calcul d'une valeur moyenne sur l’ensemble de N échantillons
qui constituent x(m):
1
∑
N −1
r1 ( p ) = m= p
x(m)x* ( m − p ) pour 0 ≤ p ≤ N − 1 (4.1)
N
Lorsque p tend vers N-1, peu de termes interviennent dans le calcul de la moyenne alors que le terme de
normalisation reste constant à 1/N. Cela a pour conséquence d'introduire un biais dans l'estimation:
l'autocorrélation est pondérée par une fenêtre triangulaire.
Pour éliminer le biais, un second estimateur peut être défini de la façon suivante:
1
∑
N −1
r2 ( p) = x(m)x * (m − p) pour 0 ≤ p ≤ N − 1 (4.2)
N−p m= p
L'avantage de cet estimateur est son absence de biais, mais sa variance devient importante lorsque p
tend vers N-1. Les fonctions de corrélation qui vont être calculées par la suite permettront de saisir les
notions de biais et de variance d’un estimateur.
Si on applique cette dernière relation au cas d’un signal numérique sur lequel on essaie de calculer
l’estimateur biaisé de l’autocorrélation, on obtient :
r1 ( p ) =
1
N
∑
N −1
m= p
x (m)x* (m − p ) =
1
N
( x ( p ) * x* ( − p ) )
30
N −1
x( p ) * y ( p ) = ∑ x( m) y ( p − m) en imposant une périodicité N pour les signaux x et y
m=0 La
de manière à pouvoir calculer les valeurs de y (m - p ) lorsque m - p < 0 ( y (m - p ) = y (m - p + N )
convolution cyclique présente la propriété suivante :
x( p) * y ( p) = TFD −1 (X 'Y ' ) avec X' et Y' correspondant à : X ' = TFD( x + N 0) Y ' = TFD( y + N 0) Les deux
estimées de l’autocorrélation peuvent donc être calculées de la manière suivante :
r1 ( p) =
1
N
((
TFD −1 X ' X '* ( p) ) )
(4.3)
r2 ( p) =
1
N−p
((
TFD −1 X ' X '* ( p) ) )
Ces deux estimées sont obtenus directement sous Matlab grâce à la fonction xcorr :
2) Travail demandé
31
obtenez les mêmes résultats par ces trois méthodes pour les deux estimations. Ne passer pas plus
d’une heure sur cette partie car l’essentiel du TP n’est pas là. Par la suite, on se contentera de
calculer et tracer uniquement les deux estimées obtenues avec l’instruction xcorr.
- Tracer et comparer les estimations biaisées et non biaisée de l’autocorrélation du signal pris
comme exemple auparavant.
- Exploiter ces tracés pour retrouver les caractéristiques du signal, à savoir la puissance moyenne
totale et la fréquence.
- Sachant que la puissance moyenne totale est donnée par la fonction d'autocorrélation en zéro,
donnez l'expression de l'estimée numérique de la puissance moyenne totale à partir des
estimateurs biaisé et non biaisé de l'autocorrélation. Calculer l'estimée la puissance moyenne
totale du signal et confronter votre résultat à la théorie.
32
c) Autocorrélation d'un sinus bruité
Rajoutez à présent dans la fonction autocor.m des instructions pour générer et tracer un sinus bruité par
un bruit blanc gaussien centré. On prendra comme exemple un sinus d’amplitude 1 et de fréquence 0.1Hz
constitué de 500 échantillons relevés à une fréquence de 1Hz.
- Sachant que l'on désire un rapport signal sur bruit de 0dB, en déduire la variance du bruit blanc.
- Commenter le tracé du signal bruité, peut-on déterminer l’amplitude et la fréquence de la fonction
sinus ?
- Tracer et commenter les estimations biaisées et non biaisées de son autocorrélation
- Exploiter ces tracés afin de retrouver la puissance moyenne totale du bruit, du sinus et la
fréquence du sinus.
33
34
TP 5 : FILTRAGE ANALOGIQUE
But du TP : Il s'agit de voir comment utiliser Matlab pour concevoir et simuler un filtre analogique, ceci
se fera au travers d'une application particulière concernant la modulation à bande latérale unique (BLU).
La modulation BLU est utilisée par les cibistes, certain radio amateurs, en communication militaire
ainsi qu’en téléphonie pour concentrer plusieurs voies de manières analogique. Les principaux avantages
de ce mode de transmission sont le faible encombrement spectral et par voie de conséquence la faible
puissance nécessaire à l'émission.
Rappelons ci-dessous le spectre d'un signal modulé en amplitude sans porteuse dans le cas d'un
message sinusoïdal m ( t ) de fréquence f m . Il est possible de montrer que ce signal peut être obtenu par
(
le produit simple de la porteuse Ap cos 2π f p t ) par le signal modulant A
m cos ( 2π f mt ) .
Les informations qui caractérisent le message modulant que l'on veut transmettre sont sa fréquence f m
et son amplitude Am . Après modulation ces informations sont contenues dans les raies situées en f p + f m
et f p − f m . En réalité, les raies f p + f m et f p − f m contiennent les mêmes informations. Ceci veut donc
dire qu'il est inutile de transmettre simultanément les deux raies situées en f p + f m et f p − f m ; ces deux
raies constituent dans ce cas particulier ce qu'on appelle plus généralement les bandes latérales
supérieure et inférieure.
La modulation BLU consiste à filtrer le signal modulé en amplitude de manière à ne transmettre qu'une
seule bande latérale (BLI ou BLS suivant la bande sélectionnée: Inférieure ou Supérieure respectivement).
Un avantage essentiel est que la bande à transmettre est réduite de moitié par rapport aux modulations
AM (avec ou sans porteuse) pour un message donné. On gagne donc un demi bande qui peut servir à
transmettre un autre signal. Par contre le signal est plus difficile à démoduler en raison de l'absence de
porteuse.
35
Le schéma de principe qui peut s'appliquer à la modulation BLU est donc le suivant:
Le travail qui vous est demandé est de simuler les signaux modulés, et de concevoir et vérifier le bon
fonctionnement du filtre passe-bande. Nous vous donnerons donc dans un premier temps les principaux
types de filtres analogiques qu'il est possible de concevoir avec Matlab.
Nous donnerons dans un premier temps les caractéristiques des fonctions de transfert des
différents types de filtre pour des passe-bas.
Un filtre de Butterworth d'ordre n de type passe-bas sera défini par une fonction de transfert H(ω) qui
vérifie l'équation suivante:
1
H (ω ) =
2
2n
ω0
⎛ω ⎞
1 + ⎜⎜ ⎟⎟
⎝ω0 ⎠
ω0 représentant la pulsation de coupure à –3dB.
Ces filtres ne présentent pas d'ondulations en bande passante ni en bande atténuée.
1
H( f ) =
2
(
1 + ε Tn2 ( f )
2
)
⎧⎪cos(n arccos( x)) pour x < 1
avec Tn( x) = ⎨
⎪⎩cosh(n arg cosh( x)) pour x > 1
Pour le type deux, la fonction de transfert est donnée par :
1
H( f ) =
2
(
1 + ε T ( f a ) / Tn2 ( f )
2
n
2
)
où f a représente la fréquence de début de bande atténuée.
36
Les filtres de Tchebycheff présentent :
- soit une ondulation en bande passante mais pas en bande atténuée (filtre de type 1)
- soit une ondulation en bande atténuée mais pas en bande passante (filtre de type 2)
L’ondulation en bande passante vaut 1 / 1 + ε . Les caractéristiques des filtres de Tchebycheff sont
2
1
H( f ) =
2
(
1 + ε R n2 ( f , L)
2
)
où Rn est une fonction rationnelle de Tchebycheff et où L caractérise l’atténuation. Les filtres de Cauer
présentent des ondulations en bande passante et en bande atténuée. La valeur de l’ondulation en bande
atténuée vaut 1/ 1 + ε 2 .
3) Travail demandé
Créez un script que vous nommerez filtanal.m dans lequel vous allez générer le signal YAM ( t )
correspondant au produit du signal modulant m(t ) = cos(2πf m t ) avec la porteuse p (t ) = cos(2πf p t ). On
choisit les fréquences suivantes: fm=1kHz et fp=100kHz, et le calcul du signal YAM ( t ) se fera sur un
vecteur temps défini par:
t=0:te:(N-1)te avec te=4/fm/N et N=5000.
On fixe le gabarit suivant pour le filtre passe-bande devant sélectionner la bande latérale inférieure et
éliminer la bande latérale supérieure.
37
Rp=3dB
Rs=30dB
fP1=95kHz fP2=100kHz
fS2=100.6kHz
fS1=94.4kHz
Utilisez les instructions cheb1ord et cheby1 pour trouver la fonction de transfert du filtre correspondant
au gabarit précédent. Attention les anglophones appellent frequency ce que nous appelons pulsation et qui
correspond à ω = 2πf .
Ne créez pas une nouvelle fonction *.m, rajoutez les instructions nécessaires à l'obtention de la fonction
de transfert du filtre dans le fichier filtanal.m. Vérifiez que ce que vous avez obtenu pour le filtre passe
bande répond bien au gabarit demandé en traçant le module du gain du filtre (en dB) en fonction de la
fréquence en utilisant les instructions freqs et tf.
Pour vérifier à présent le bon fonctionnement du filtre passe-bande, nous allons rajouter certaines
instructions dans le fichier filtanal.m pour tracer dans la même figure sur 4 axes différents les
représentations temporelles et fréquentielles des signaux YAM et YBLI .(nous garderons le signal YAM ( t )
simulé précédemment.
Pour générer le signal YBLI , utilisez l'instruction lsim.
- Même question lorsque vous remplacez le signal modulant m ( t ) par la somme de 2 fonctions
cosinus de fréquences 1 et 2 kHz.
- Interprétez l'évolution des résultats lorsque vous diminuez progressivement le nombre N de valeurs
utilisées pour la simulation. Prenez successivement les valeurs N=2000, N=1000 et N=500.
38
39
40
41
42
43
TP 6 : FILTRAGE NUMÉRIQUE
1) Introduction
La transformée en z est utilisée pour modéliser les opérations effectuées dans le domaine des signaux
échantillonnés. Le filtrage numérique peut ainsi se formuler par :
Y ( z) = H ( z) X ( z) (1)
avec H(z) la fonction de transfert en z du filtre numérique qui peut s’écrire sous la forme :
N −1
∑b
k =0
k z −k
H ( z) = M
(2)
1 + ∑ al z −l
l =1
La formule (1) peut ainsi se ramener à une équation aux différences :
N −1 M
y ( n) = ∑ bk x ( n − k ) − ∑ a l y ( n − l ) (3)
k =0 l =1
Ces filtres n’ont aucun pôle, ce qui signifie que tous les coefficients al pour l supérieur à 1 sont nuls. Le
calcul du signal en sortie du filtre y se ramène à l’expression :
N −1
y (n) = ∑ bk x(n − k ) (4)
k =0
y correspond donc au produit de convolution de b par x . x correspond alors à la réponse
impulsionnelle du filtre notée plus généralement h . Le nombre de coefficients étant limité, on dit que la
réponse impulsionnelle est finie, d’où le nom de ce type de filtre.
Les avantages de ces filtres sont :
- la stabilité toujours assurée car il n’y a pas de pôles.
- la phase qui varie linéairement avec la fréquence, ce qui introduit un retard constant entre le
signal de sortie et le signal d’entrée du filtre.
Nous allons présenter deux manières de calculer les coefficients d’un filtre RIF.
On désire réaliser un filtre passe-bas idéal de fréquence de coupure fc. Etant donné que l’on travaille sur
des signaux échantillonnés (y(n),h(n),x(n)), les spectres obtenus par transformée de Fourier de ces
signaux seront périodiques de période égale à la fréquence d’échantillonnage f e . Ce qui explique la forme
donnée à H(f ) :
44
Etant donné que H ( f ) est périodique, on peut calculer son développement en série de Fourier par :
1 fe / 2 ⎛ n ⎞
h( n ) =
fe ∫
− fe / 2
H ( f ) exp⎜⎜ i 2πf
⎝
⎟df
f e ⎟⎠
(5)
N.B. : on notera la présence d’un signe + à la place d’un – dans la fonction exponentielle car on passe du
domaine spectral au domaine temporel.
On se limitera au calcul de N coefficients h ( n ) (ou b ( n ) ) pris symétriquement autour de 0, et pour
rendre le filtre causal, il faut décaler les indices n de h ( n ) de manière à démarrer en 0. Ceci introduit
donc un déphasage de ( N − 1) π fTe et un retard de ( N − 1) Te 2 avec Te la période d’échantillonnage (pour
N impair). Pour atténuer l’effet GIBBS lié à la troncature de la réponse impulsionnelle, on utilise
généralement des fenêtres de pondération comme celle de Hamming.
b) Echantillonnage en fréquence
La méthode précédente devient difficile à appliquer lorsque la forme de H ( f ) devient plus compliquée.
Cette nouvelle méthode permet de fixer n’importe quelle forme pour H ( f ) . H ( f ) est échantillonnée en
N points de − f e 2 à f e 2 . Les N coefficients h ( n ) sont obtenus par TFD inverse de H ( f ) :
( N −1) / 2
1 ⎛ n⎞
h( k ) =
N
∑
n =− ( N −1) / 2
H (n) exp ⎜ 2π ik ⎟,
⎝ N⎠
k ∈ ⎡⎣ − ( N − 1) 2, ( N − 1) 2⎤⎦ (6)
Le décalage des indices de h ( n ) pour raison de causalité va également entraîner une phase linéaire.
Nous allons à présent définir les filtres RII.
∑b z k
−k
H ( z) = k =0
M
(7)
1 + ∑ al z −l
l =1
Ce type de filtre peut être instable si les pôles sont situés en dehors du cercle unité. D’autre part la phase
ne varie pas linéairement avec la fréquence. Par contre, le nombre de coefficients à calculer est
relativement faible en comparaison des filtres RIF, ce qui permet de limiter les temps de calcul. Pour
synthétiser un filtre RIF, la méthode la plus simple consiste à partir de la fonction de transfert d’un filtre
45
analogique (Butterworth, Tchebycheff, Cauer, etc.) et de passer du plan des variables p (ou s ) à celui
des z . La transformation la plus couramment utilisée est la transformation bilinéaire :
1 − z −1
p est remplacé par : k
1 + z −1
avec k = 2 f e en règle générale.
2) Travail demandé
- Calculer les valeurs des coefficients de la réponse impulsionnelle d’un filtre RIF passe-bas idéal de
fréquence de coupure 1kHz sachant que fe=8kHz. On limite la réponse impulsionnelle à 9 éléments.
- Grâce au programme RIFFOUR, il est possible de vérifier vos calculs.
- Commenter les tracés des réponses en fréquence. Les deux courbes dans chaque graphe
correspondent à l’usage de 2 fenêtres de pondération : la fenêtre rectangle (ou box-car) et la fenêtre
de Hamming.
- Expliquer en particulier l’évolution de la phase avec la fréquence
- Commenter l’évolution de la réponse en fréquence du filtre lorsqu’on augmente le nombre de points
N (prendre successivement 17 et 33).
N.B. : Avant de cliquer sur ‘Réponse en fréquence’, il faut cliquer sur ‘Réponse impulsionnelle’ pour
réactualiser celle-ci à chaque fois que vous changez un paramètre : fe, fc ou N.
- Commenter les tracés de la réponse à un sinus réalisés pour diverses fréquences de la fonction sinus
(prendre N=33).
- Expliquer en particulier la raison pour laquelle les premières valeurs en sortie du filtre sont quasi
nulles.
- Noter le temps de retard entre les 2 sinusoïdes et son évolution avec la fréquence du sinus.
N.B. : il y a possibilité de zoomer certaines parties des graphes.
b) Echantillonnage en fréquence
On propose de réaliser un filtre RIF basé sur le gabarit suivant pour H(f ) :
Sur l’intervalle de fréquence allant de –fe/2 à fe/2 : (f) = 1 pour –f1<f<f1, H(f) = 0 pour f>f2 et f<-f2.
H(f)
-fe/2 0 f1 f2 fe/2 f
46
- Calculer les valeurs de la réponse impulsionnelle d’un filtre RIF basée sur un tel gabarit avec :
f1=1kHz, f2=1.5kHz, fe=8kHz et N=9.
- Grâce au programme RIFECH, il est possible de vérifier vos calculs.
- Commenter l’évolution de la réponse impulsionnelle du filtre lorsque :
- on augmente N (prendre N=17 puis 33).
- à N fixé (17 par exemple) on décale la position de f2 (1.1kHz puis 2kHz)
- Sachant que les cercles représentés dans le module de la réponse en fréquence sont les points
échantillonnés sur H ( f ) (gabarit donné au départ), quels commentaires cela vous inspire-t-il ?
Dans le but de limiter au maximum la difficulté des calculs que vous devez réaliser, nous choisissons
comme filtre analogique de départ un passe-bas de type RC :
R
x(t) C y(t)
R=330Ω, C=470nF
A
H ( p) = (7)
p
1+
2πf c
En donnant les valeurs du gain nominal A et de la fréquence de coupure fc .
- Donner l’expression obtenue pour H ( z ) après transformation bilinéaire (on choisit fe=8kHz). Mettez
∑b z k
−k
H ( z) = k =0
M
avec a0=1 (8)
∑a z
l =0
l
−l
- Relevez les coefficients al et bk et comparez vos résultats à ceux fournis par le programme RII (les
valeurs sont données pour les valeurs de l et k croissantes en partant de 0).
- Observez et commentez la réponse en fréquence en identifiant les 2 courbes apparaissant dans
47
48
TP 7 : OUTILS POUR LA SYNTHÈSE DE FILTRES
Introduction :
L’option ‘Signal Processing Toolbox’ de MATLAB permet de comparer un grand nombre de méthodes de
synthèse de filtres numériques. Nous séparerons une fois encore les filtres RII des RIF.
Nous avons vu dans le TP précédent deux méthodes élémentaires de synthèse de filtres RIF : la synthèse
par série de Fourier et la méthode d’échantillonnage. Ces deux méthodes sont implémentées sous
MATLAB avec les noms fir1 et fir2. En plus de ces méthodes, il existe une méthode d’optimisation en
moyenne quadratique firls dont l’objectif est la synthèse d’un filtre RIF dont la réponse en fréquence
H ( f ) approche une fonction donnée D ( f ) suivant un critère des moindres carrés. Cette méthode
consiste donc à trouver les coefficients du filtre qui minimisent la fonction suivante :
eqm = ∑ P ( f )[H ( f ) − D ( f )]
2
Pour la conception de filtres RII, nous nous baserons essentiellement sur les filtres analogiques décrits
dans le TP6, sachez néanmoins qu’il est possible de faire la synthèse de filtre RII sans utiliser les
modèles analogiques. Il existe en effet des techniques discrètes itératives qui permettent de calculer
directement les coefficients d’un filtre RII à partir d’un gabarit donné par des méthodes d’optimisation
(voir les instructions prony et yulewalk par exemple).
Lorsque vous tapez sptool sous Matlab, une fenêtre que l’on peut décomposer en trois parties apparaît. La
première partie Signals sur la gauche de la fenêtre permet de visualiser avec View des signaux tracés en
fonction du temps généralement. Il est possible ainsi d’importer des signaux définis dans la fenêtre de
travail Matlab (workspace) en cliquant sur File puis Import. Ensuite ces signaux en plus d’être visualisés
peuvent être filtrés dans la partie Filters. Il est aussi possible de faire l’analyse spectrale de ces signaux
dans la partie Spectra.
La zone centrale notée Filters permet de visualiser les caractéristiques d’un filtre par View, de lancer une
synthèse de filtre par New Design, de modifier les caractéristiques d’un filtre par Edit Design et enfin
d’appliquer un filtre à un signal présent dans la partie Signals par Apply. Dans un premier temps, nous
utiliserons la fonction New Design pour comparer les caractéristiques de différents types de filtres
numériques synthétisés à partir d’un gabarit et d’un algorithme donné.
49
Exercice1 : comparaison des résultats obtenus par les méthodes firls et remez.
On fixe la fréquence d’échantillonnage à 1Hz et on désire synthétiser un passe-bas :
Ondulation dans la bande passante Rp=3dB, atténuation dans la bande coupée Rs=20.
50
6
SPTool: A Signal
Processing GUI Suite
The following chapter describes the Signal Processing Tool (SPTool) and provides a detailed example
showing how to use this Graphical User Interface.
Redesigning a Filter Using the Magnitude Plot Changing the filter design using Magnitude plot
(p. 6-50)
Setting Preferences (p. 6-51) Customizing the tool
Making Signal Measurements with Markers Measuring signals
(p. 6-53)
6-2
SPTool: An Interactive Signal Processing Environment
• Analyze signals
• Design filters
• Analyze (view) filters
• Filter signals
• Analyze signal spectra
You can accomplish these tasks using four GUIs that you access from within
SPTool:
• The Signal Browser is for analyzing signals. You can also play portions of
signals using your computer’s audio hardware.
• The Filter Designer is for designing or editing FIR and IIR digital filters.
Most of the Signal Processing Toolbox filter design methods available at the
command line are also available in the Filter Designer. Additionally, you can
design a filter by using the Pole/Zero Editor to graphically place poles and
zeros on the z-plane.
• The Filter Visualization Tool is for analyzing filter characteristics. See
“Filter Visualization Tool” on page 6-14.
• The Spectrum Viewer is for spectral analysis. You can use the Signal
Processing Toolbox spectral estimation methods to estimate the power
spectral density of a signal. See “Spectrum Viewer” on page 6-18.
6-3
6 SPTool: A Signal Processing GUI Suite
When you use the Export item under the File menu to save signals, filters, and
spectra that you create or modify in SPTool, these are also saved as MATLAB
structures.
6-4
Opening SPTool
Opening SPTool
To open SPTool, type
sptool
When you first open SPTool, it contains a collection of default signals, filters,
and spectra. You can specify your own preferences for what signals, filters, and
spectra you want to see when SPTool opens. See “Designing a Filter with the
Pole/Zero Editor” on page 6-47 for more details.
You can access these three GUIs from SPTool by selecting a signal, filter, or
spectrum and pressing the appropriate View button:
• Signal Browser
• Filter Visualization Tool
• Spectrum Viewer
6-5
6 SPTool: A Signal Processing GUI Suite
You can access the Filter Designer GUI by pressing the New button to create
a new filter or the Edit button to edit a selected filter. The Apply button applies
a selected filter to a selected signal.
The Create button opens the Spectrum Viewer and creates the power spectral
density of the selected signal. The Update button opens the Spectrum Viewer
for the selected spectrum.
6-6
Getting Context-Sensitive Help
You can also use the What’s this? menu item in the Help menu to launch
context-sensitive help.
6-7
6 SPTool: A Signal Processing GUI Suite
Signal Browser
You can use the Signal Browser to display and analyze signals listed in the
Signals list box in SPTool.
Using the Signal Browser you can:
6-8
Signal Browser
Icon Description
6-9
6 SPTool: A Signal Processing GUI Suite
Icon Description
6-10
Filter Designer
Filter Designer
The Filter Designer provides an interactive graphical environment for the
design of digital IIR and FIR filters based on specifications that you enter on a
magnitude or pole-zero plot.
Note You can also use the Filter Design and Analysis Tool (FDATool)
described in Chapter 5, “FDATool: A Filter Design and Analysis GUI” for filter
design and analysis.
Filter Types
You can design filters of the following types using the Filter Designer:
• Bandpass
• Lowpass
• Bandstop
• Highpass
• Equiripple
• Least squares
• Window
• Butterworth
• Chebyshev Type I
• Chebyshev Type II
• Elliptic
6-11
6 SPTool: A Signal Processing GUI Suite
Pole/Zero Editor
You can use the Pole/Zero Editor to design arbitrary FIR and IIR filters by
placing and moving poles and zeros on the complex z-plane.
6-12
Filter Designer
• A pull-down Filter menu for selecting a filter from the list in SPTool
• A Sampling Frequency text box
• A pull-down Algorithm menu for selecting a filter design method or a
pole-zero plot display
• A Specifications area for viewing or modifying a filter’s design parameters
or pole-zero locations
• A plot display region for graphically adjusting filter magnitude responses or
the pole-zero locations
• A Measurements area for viewing the response characteristics and stability
of the current filter
Icon Description
Passband view
Overlay spectrum
6-13
6 SPTool: A Signal Processing GUI Suite
• Magnitude response
• Phase response
• Impulse response
• Step response
• Group delay
• Phase delay
• Pole and zero locations
• Detailed filter information
If you start FVTool by clicking the SPTool Filter View button, that FVTool is
linked to SPTool. Any changes made in SPTool to the filter are immediately
reflected in FVTool. The FVTool title bar includes “SPTool” to indicate the link.
If you start an FVTool by clicking the New button or by selecting File-->New
from within FVTool, that FVTool is a stand-alone version and is not linked to
SPTool.
Note Every time you click the Filter View button a new, linked FVTool
starts. This allows you to view multiple analyses simultaneously.
6-14
Filter Visualization Tool
When you first open FVTool, it displays the selected filter’s magnitude plot.
6-15
6 SPTool: A Signal Processing GUI Suite
Icon Description
Toggle plot editing, add text, add arrow, and add line
Toggle legend
Toggle grid
Icon Description
• A display area for analyzing one or more frequency response plots for the
selected filter(s)
6-16
Filter Visualization Tool
Analysis Parameters
In the plot area of any filter response plot, right-click and select Analysis
Parameters to display details about the displayed plot. See “Analysis
Parameters” in the FDATool online help for more information.
You can change any parameter in a linked FVTool, except the sampling
frequency. You can only change the sampling frequency using Sampling
Frequency in the SPTool Edit menu or the SPTool Filters Edit button.
6-17
6 SPTool: A Signal Processing GUI Suite
Spectrum Viewer
You can use the Spectrum Viewer for estimating and analyzing a signal’s
power spectral density (PSD). You can use the PSD estimates to understand a
signal’s frequency content.
The Spectrum Viewer provides the following functionality.
To open the Spectrum Viewer with a PSD estimate already listed in SPTool:
6-18
Spectrum Viewer
For example:
3 Press the Apply button in the Spectrum Viewer to plot the spectrum.
6-19
6 SPTool: A Signal Processing GUI Suite
Icon Description
6-20
Filtering and Analysis of Noise
3 Applying the filter to the original noise signal to create a bandlimited noise
signal
4 Comparing the time domain information of the original and filtered signals
using the Signal Browser
For this example, create a new signal at the command line and then import it
as a structure into SPTool:
6-21
6 SPTool: A Signal Processing GUI Suite
sptool
3 Select Import from the File menu in SPTool. The Import to SPTool dialog
opens.
c Click on the arrow to the left of the Data field or type x in the Data field.
d Type 5000 in the Sampling Frequency field.
6-22
Filtering and Analysis of Noise
Note You can import filters and spectra into SPTool in much the same way as
you import signals. See “Importing Filters and Spectra into SPTool” on
page 6-40 for specific details.
You can also import signals from MAT-files on your disk, rather than from the
workspace. See “Loading Variables from the Disk” on page 6-44 for more
information.
Type help sptool for information about importing from the command line.
6-23
6 SPTool: A Signal Processing GUI Suite
1 Change the filter sampling frequency to 5000 by entering this value in the
Sampling Frequency text box.
4 Set the passband edge frequencies by entering 750 for Fp1 and 1250 for Fp2.
5 Set the stopband edge frequencies by entering 500 for Fs1 and 1500 for Fs2.
Rp sets the maximum passband ripple and Rs sets the stopband attenuation
for the filter.
7 Press the Apply button to design the new filter.When the new filter is
designed, the magnitude response of the filter is displayed with a solid line
in the display region.
6-24
Filtering and Analysis of Noise
Note You can use the solid line in the plot to modify your filter design. See
“Redesigning a Filter Using the Magnitude Plot” on page 6-50 for more
information.
6-25
6 SPTool: A Signal Processing GUI Suite
2 Select the signal noise[vector] from the Signals list and select the filter
(named filt1[design]) from the Filters list.
Press Apply to apply the filter filt1 to the signal noise. The Apply Filter
dialog box is displayed
.
4 Name the new signal by typing blnoise in the Output Signal field in this
dialog box.
6-26
Filtering and Analysis of Noise
The filter is applied to the selected signal and the filtered signal
blnoise[vector] is listed in the Signals list in SPTool.
1 Shift+click on the noise and blnoise signals in the Signals list of SPTool to
select both signals.
The Signal Browser is activated and both signals are displayed in the
display region. (The names of both signals are shown above the display
region.) Initially, the original noise signal covers up the bandlimited
blnoise signal.
3 Push the selection button on the toolbar, , to select the blnoise signal.
The display area is updated. Now you can see the blnoise signal
superimposed on top of the noise signal. The signals are displayed in
different colors in both the display region and the panner. You can change
the color of the selected signal using the Line Properties button on the
toolbar, .
6-27
6 SPTool: A Signal Processing GUI Suite
Playing a Signal
When you press the Play button in the Signal Browser toolbar, , the active
signal is played on the computer’s audio hardware:
a Use the vertical markers to select a portion of the signal you want to play.
Vertical markers are enabled by the and buttons.
b Press the Play button.
a Select the signal as in step 3 above. You can also select the signal directly
in the display region.
b Press the Play button again.
Printing a Signal
You can print from the Signal Browser using the Print button, .
6-28
Filtering and Analysis of Noise
You can use the line display buttons to maximize the visual contrast between
the signals by setting the line color for noise to gray and the line color for
blnoise to white. Do this before printing two signals together.
Note You can follow the same rules to print spectra, but you can’t print filter
responses directly from SPTool.
Use the Signal Browser region in the Preferences dialog box in SPTool to
suppress printing of both the panner and the marker settings.
To print both signals, press the Print button in the Signal Browser toolbar.
1 Create a power spectral density (PSD) object, spect1, that is associated with
the signal noise, and a second PSD object, spect2, that is associated with
the signal blnoise.
6-29
6 SPTool: A Signal Processing GUI Suite
1 Click on SPTool, or select SPTool from the Window menu of any active open
GUI. SPTool is now the active window.
4 Press Apply in the Spectrum Viewer to compute and display the PSD
estimate spect1 using the default parameters.
The PSD of the noise signal is displayed in the display region. The
identifying information for the PSD’s associated signal (noise) is displayed
above the Parameters region.
5 Follow steps 1 through 4 for the bandlimited noise signal blnoise to create
a second PSD estimate spect2.
The PSD estimate spect2 is flat between 750 and 1250 Hz and has 75 dB
less power in the stopband regions of filt1.
2 Shift+click on spect1 and spect2 in the Spectra list to select them both.
3 Press View in the Spectra list to reactivate the Spectrum Viewer and
display both spectra together.
6-30
Filtering and Analysis of Noise
2 From the Spectrum Viewer Print Preview window, drag the legend out of
the display region so that it doesn’t obscure part of the plot.
3 Press the Print button in the Spectrum Viewer Print Preview window.
6-31
6 SPTool: A Signal Processing GUI Suite
6-32
Exporting Signals, Filters, and Spectra
6-33
6 SPTool: A Signal Processing GUI Suite
1 Select filt1 from the Export List and deselect all other items using
Ctrl+click.
6-34
Accessing Filter Parameters
to display the fields of the MATLAB filter structure. The tf, Fs, and specs
fields of the structure contain the information that describes the filter.
6-35
6 SPTool: A Signal Processing GUI Suite
You can change the filter representation from the default transfer function to
another form by using the tf2ss or tf2zp functions.
ans
currentModule: 'fdremez'
fdremez: [1x1 struct]
6-36
Accessing Filter Parameters
the filter specifications are contained in the fdremez field, which is itself a data
structure.
The specifications include the parameter values from the Specifications
region of the Filter Designer, such as band edges and filter order. For example,
the filter above has the following specifications stored in
filt1.specs.fdremez:
filt1.specs.fdremez
ans =
setOrderFlag: 0
type: 3
f: [0 0.2000 0.3000 0.5000 0.6000 1]
m: [6x1 double]
Rp: 0.0100
Rs: 75
wt: [3.2371 1 3.2371]
order: 78
Parameter Description
6-37
6 SPTool: A Signal Processing GUI Suite
Parameter Description
Field Description
6-38
Accessing Filter Parameters
Field Description
You can access the information in these fields as you do with every MATLAB
structure.
For example, if you export an SPTool PSD estimate spect1 to the workspace,
type
spect1.P
6-39
6 SPTool: A Signal Processing GUI Suite
• “Step 1: Importing a Signal into SPTool” on page 6-21 for loading variables
from the workspace
• “Loading Variables from the Disk” on page 6-44 for loading variables from
your disk
Importing Filters
When you import filters, first select the appropriate filter form from the Form
list.
For every filter you specify a variable name or a value for the filter’s sampling
frequency in the Sampling Frequency field. Each filter form requires different
variables.
Transfer Function
For Transfer Function, you specify the filter by its transfer function
representation:
6-40
Importing Filters and Spectra into SPTool
• The Numerator field specifies a variable name or value for the numerator
coefficient vector b, which contains m+1 coefficients in descending powers of
z.
• The Denominator field specifies a variable name or value for the
denominator coefficient vector a, which contains n+1 coefficients in
descending powers of z.
State Space
For State Space, you specify the filter by its state-space representation:
x· = Ax + Bu
y = Cx + Du
( z – z ( 1 ) ) ( z – z ( 2 ) )L ( z – z ( m ) )
H(z) = Z
(z)- = k -----------------------------------------------------------------------------------
-
---------
P ( z) ( z – p ( 1 ) ) ( z – p ( 2 ) )L ( z – p ( n ) )
• The Zeros field specifies a variable name or value for the zeros vector z,
which contains the locations of m zeros.
• The Poles field specifies a variable name or value for the zeros vector p,
which contains the locations of n poles.
• The Gain field specifies a variable name or value for the gain k.
6-41
6 SPTool: A Signal Processing GUI Suite
L L
b 0k + b 1k z – 1 + b 2k z –2
H(z) = ∏ H k(z) = ∏ ----------------------------------------------------------
1 + a 1k z –1 + a 2k z – 2
k=1 k=1
The SOS Matrix field specifies a variable name or a value for the L-by-6 SOS
matrix
b 01 b 11 b 21 1 a 11 a 21
b 02 b 12 b 22 1 a 12 a 22
sos =
M M M M M M
b 0L b 1L b 2L 1 a 1L a 2L
whose rows contain the numerator and denominator coefficients bik and aik of
the second-order sections of H(z).
Note If you import a filter that was not created in SPTool, you can only edit
that filter using the Pole/Zero Editor.
Importing Spectra
When you import a power spectral density (PSD), you specify:
• A variable name or a value for the PSD vector in the PSD field
• A variable name or a value for the frequency vector in the Freq. Vector field
The PSD values in the PSD vector correspond to the frequencies contained in
the Freq. Vector vector; the two vectors must have the same length.
6-42
Importing Filters and Spectra into SPTool
6-43
6 SPTool: A Signal Processing GUI Suite
1 Select the From Disk radio button and do either of the following:
- Type the name of the file you want to import into the MAT-file Name field
and press either the Tab or the Enter key on your keyboard.
- Select Browse, and then find and select the file you want to import using
the Select File to Open dialog. Press OK to close that dialog.
In either case, all variables in the MAT-file you selected are displayed in the
File Contents list.
You can now import one or more variables from the File Contents list into
SPTool, as long as these variables are scalars, vectors, or matrices.
6-44
Selecting Signals, Filters, and Spectra in SPTool
• To select a single item, click on it. All other items in that list box become
deselected.
• To add or remove a range of items, Shift+click on the items at the top and
bottom of the section of the list that you want to add. You can also drag your
mouse pointer to select these items.
• To add a single data object to a selection or remove a single data object from
a multiple selection, Ctrl+click on the object.
6-45
6 SPTool: A Signal Processing GUI Suite
1 Selecting the names of the signals, filters, or spectra you want to edit.
The pull-down menu next to each menu item shows the names of all selected
items.
You can also edit the following signal characteristics by right-clicking in the
display region of the Signal Browser, the Filter Visualization Tool, or the
Spectrum Viewer:
6-46
Designing a Filter with the Pole/Zero Editor
1 Select the Pole/Zero Editor option from the Algorithm list to open the
Pole/Zero Editor in the Filter Designer display.
3 Select a pole or zero (or conjugate pair) by selecting one of the (pole) or
(zero) symbols on the plot.
5 Specify the new location(s) of the selected pole, zero, or conjugate pair by
typing values into the Mag and Angle fields (for angular coordinates) or X
and Y (for rectangular coordinates) fields. Alternatively, position the poles
and zeros by dragging the and symbols.
6 Use the Conjugate pair check box to create a conjugate pair from a lone pole
or zero, or to break a conjugate pair into two individual poles or zeros.
Note Keep the Filter Visualization Tool (FVTool) open while designing a
filter with the Pole/Zero Editor. Any changes that you make to the filter
transfer function in the Pole/Zero Editor are then simultaneously reflected in
the response plots of FVTool.
6-47
6 SPTool: A Signal Processing GUI Suite
Icon Description
Add pole
Add zero
When you place two or more poles (or two or more zeros) directly on top of each
other, a number is displayed next to the symbols (on the left for poles, and on
the right for zeros) indicating the number of poles or zeros at that location (e.g.,
for three zeros). This number makes it easy to keep track of all the poles
and zeros in the plot area, even when several are superimposed on each other
6-48
Designing a Filter with the Pole/Zero Editor
and are not visually differentiable. Note, however, that this number does not
indicate the multiplicity of the poles or zeros to which it is attached.
To detect whether or not a set of poles or zeros are truly multiples, use the zoom
tools to magnify the region around the poles or zeros in question. Because
numerical limitations usually prevent any set of poles or zeros from sharing
exactly the same value, at a high enough zoom level even truly multiple poles
or zeros appear distinct from each other.
A common way to assess whether a particular group of poles or zeros contains
multiples is by comparing the mutual proximity of the group members against
a selected threshold value. As an example, the residuez function defines a pole
or zero as being a multiple of another pole or zero if the absolute distance
separating them is less than 0.1% of the larger pole or zero’s magnitude.
6-49
6 SPTool: A Signal Processing GUI Suite
- Fp = 800
- Fs = 700
- Rp = 2.5
- Rs = 35
5 Select Minimum Order so the Filter Designer can calculate the lowest filter
order that produces the desired characteristics.
6 Press Apply to compute the filter and update the response plot.
7 Position the cursor over the horizontal filter specification line for the
stopband. This is the first (leftmost) horizontal specification line you see.
8 Drag the line until the Rs (stopband attenuation) field reads 100.
6-50
Setting Preferences
Setting Preferences
Use Preferences from the SPTool File menu to customize displays and certain
parameters for SPTool and its four component GUIs. The new settings are
saved on disk and are used when you restart SPTool from MATLAB.
In the Preferences regions, you can:
Note You can set MATLAB preferences that affect the Filter Visualization
Tool only from within FVTool by selecting Preferences from the File menu.
You can set FVTool-specific preferences using the Analysis Parameters on
the Analysis menu.
When you first select Preferences, the Preferences dialog box opens with
Markers selected by default.
6-51
6 SPTool: A Signal Processing GUI Suite
You can:
• Change the settings for markers from this panel of the Preferences dialog.
• Choose any of the other categories listed to customize its settings.
Click once on any listed category in the left pane of the Preferences dialog to
select it.
6-52
Making Signal Measurements with Markers
Icon Description
Vertical markers
Horizontal markers
To make a measurement:
1 Select a line to measure (or play, if you are in the Signal Browser).
2 Select one of the marker buttons to apply a marker to the displayed signal.
3 Position a marker in the main display area by grabbing it with your mouse
and dragging:
6-53
6 SPTool: A Signal Processing GUI Suite
b Move the mouse over the marker (1 or 2) that you want to drag.
The hand cursor with the marker number inside it is displayed when
your mouse passes over a marker.
c Drag the marker to where you want it on the signal.
As you drag a marker, the bottom of the Signal Browser shows the current
position of both markers. Depending on which marker setting you select,
some or all of the following fields are displayed—x1, y1, x2, y2, dx, dy, m.
These fields are also displayed when you print from the Signal Browser,
unless you suppress them.
You can also position a marker by typing its x1 and x2 or y1 and y2 values in
the region at the bottom.
6-54