Académique Documents
Professionnel Documents
Culture Documents
TP TDS PDF
TP TDS PDF
Traitement du Signal
Matrise E.E.A.
Anne Universitaire 2004/2005
TP 1 : INITIATION A MATLAB
1) But de TP
Il sagit de se familiariser avec le logiciel MATLAB qui intgre lanalyse numrique 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:
Aprs avoir cliqu sur licne MATLAB dans WINDOWS, vous vous trouvez dans la feuille de calcul de
MATLAB que lon appellera fentre MATLAB. Le curseur se situe derrire 'l'invite' reprsent par ce
symbole: >>
A cet endroit vous pouvez utiliser MATLAB aussi simplement quune machine calculer.
Taper par exemple 2+3 puis Entre, le rsultat apparat directement la suite.
Bien entendu MATLAB est beaucoup plus puissant que votre calculatrice puisque vous pouvez raliser
des programmes structurs, 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 doffrir lutilisateur un grand nombre de fonctions ddies soit au calcul numrique, soit
au traitement du signal, soit lautomatique ou encore aux rseaux de neurones.
Nous nutiliserons quune infime partie des immenses possibilits de calcul de MATLAB, nous allons bien
sr commencer par les plus lmentaires dentre elles.
Assignation dune variable : taper a=2 puis Entre (pour valider votre opration) et la variable a vaudra
2.
Attention MATLAB fait la diffrence entre les majuscules et les minuscules.
Taper par exemple a et le contenu de la variable a sera affich, cest dire 2. Si vous tapez A aucune
valeur ne sera affiche puisque la variable A nest pas alloue.
Vous pouvez fort bien rallouer une autre valeur la variable a. Taper par exemple:
La variable a est ainsi devenue une matrice 2 x 2. Nous verrons dans le paragraphe suivant comment l'on
peut dfinir des matrices sans ncessairement donner tous les lments de celles-ci. Dans la dfinition de
la matrice a donne ci dessus, les crochets servent englober tous les lments et le point virgule
permet de sparer chaque ligne. A noter que les indices partent obligatoirement de 1, ils ne sont pas
paramtrables comme dans dautres langages. Ainsi si vous tapez a(1,1), le rsultat affich sera 1. Le
chiffre 1 sera donc llment (1,1) de la matrice a; on ne pourra pas changer cela pour quil devienne
llment (0,0).
Pour extraire une ligne ou une colonne dune matrice, il existe les instructions a(n, :) et a( :,n) o n
reprsente le numro 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 crer une matrice, nous avons vu quil tait possible de la dfinir partir de lensemble de ses
lments mis entre crochets en sparant les lignes par des points virgules. Dans le cas de matrices
lmentaires, Matlab permet de dfinir celles-ci de manire simple, pour dfinir une matrice x ne
contenant que des 0 par exemple, il suffit de taper : x=zeros(m,n) o m et n reprsentent respectivement
le nombre de lignes et le nombre de colonnes. Les instructions ones et eye permettent de dfinir
respectivement des matrices de 1 et des matrices identit. Il existe dautres matrices lmentaires quil
est possible de crer de cette manire, reportez vous laide 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.
- Addition:
- Soustraction:
- Multiplication:
taper:
taper:
taper:
taper:
taper:
taper:
c=a.*b
et
relever
les
valeurs
de
pour
comprendre
d=a*b
et
donner
la
diffrence
par
rapport
lopration
prcdente.
Attention cette dernire opration nest pas commutative contrairement au .*. Le produit b*a est donc
diffrent de d (sauf cas particulier comme ici).
- Division:
taper:
taper:
taper:
taper:
- Puissance:
taper:
taper:
Nous venons de crer un certain nombre de variables. Contrairement aux langages de programmation les
plus courants, il n'y a pas besoin de dclarer les variables ainsi que leur type (entier, rel ou autre).
Tapez la commande who pour connatre les diffrentes variables utilises. Pour effacer les variables,
tapez clear. Attention, de nombreuses erreurs de programmations pourront tre commises cause de
noms de variables utiliss plusieurs fois et devant dsigner des choses diffrentes.
2.2) Gnration 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.
Prenons lexemple de la fonction :
y(t)=sin(2t ) .
Cette dernire catgorie de fonctions est galement intressante pour nos applications en traitement du
signal. Il est par exemple possible de dfinir des fonctions exponentielles complexes comme :
y=exp(i*2*pi*t) que lon rencontre dans les dfinitions des transformes de Fourier. Les variables i et j
sont prdfinies dans Matlab pour les nombres complexes. Parmi les oprations les plus frquemment
utilises en traitement du signal, vous avez :
-
D'autres instructions permettent l'analyse des donnes contenues dans des matrices sont galement trs
utiles. C'est le cas des fonctions :
-
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 donnes.
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 fentre de travail pour avoir des renseignements sur la syntaxe et le rle de
cette instruction.
2.3) Graphisme
Pour obtenir laide sur les instructions propres au graphisme, slectionner la rubrique matlab\graphics.
Afin de vous guider nous prsenterons en premier lieu la fonction graphique lmentaire: plot
Dduire daprs les observations du graphe obtenu la suite de chacune des 3 dernires instructions ce
que ralisent les fonctions hold on et stem.
Vous pouvez fort bien spcifier la couleur et le style de trac en rajoutant une chane de caractres S
dans linstruction: plot(X,Y,S). Par exemple, si vous tapez: plot(t,real(y),b+), vous tracerez des + de
couleur bleue. Pour connatre les diffrentes possibilits de trac, tapez help plot.
t=0:T/N:T-T/N;
y=t.^2+5;
plot(t,y);
Pour sauvegarder ce script, il faut au pralable crer un rpertoire 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 rpertoire que vous venez de crer. Pour excuter ce script, donnez le nom du
rpertoire ou plus prcisment le chemin (path) en cliquant sur File puis Set Path. Revenez dans la fentre
de Matlab et tapez: courbe1. Vous devrez donner une dure du signal et un nombre de points avant de
visualiser le trac de la fonction.
La ponctuation :
Les virgules, points virgules, et trois points (...) sont utiliss dans les scripts et les fonctions dans
les cas suivants:
- Pour sparer deux instructions sur une mme ligne, on utilise la virgule.
Exemple: taper subplot(1,2,1),plot(t,real(y)),subplot(1,2,2),plot(t,imag(y))
Lensemble de ces instructions sera ralis en une fois.
- Pour que le rsultat de lopration napparaisse pas dans la fentre MATLAB, utiliser le point virgule.
Exemple: taper a=[1 2; 3 4];
La matrice a nest pas retranscrite lcran.
- Si vous avez une instruction qui est trop longue, vous pouvez lcrire sur deux lignes grce 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 dernire instruction est intressante utiliser pour la mise en page de vos programmes.
Pour voir de manire plus gnrale 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
tf
f (t ) dt =
t0
te
2
N 1
t f t0
+
+
f
f
N
f (k ) avec f(k) = f(kt e ) et N =
(
0
)
(
)
2
te
k =1
Pour raliser votre programme, vous devrez utiliser des instructions spcifiques au traitement de chanes
de caractres comme par exemple eval et strcat. L'aide concernant l'ensemble des fonctions de
traitement des chanes de caractres se trouve sous la rubrique matlab\strfun.
- A titre d'application estimez l'intgrale suivante
intgrale et vrifier que le rsultat obtenu numriquement en prenant des bornes de 100 +100 s'y
approche.
Le signal a tudier est donn par une fonction sinus de frquence 1Hz et damplitude 1. Les paramtres
demands par le programme seront la frquence dchantillonnage (fe) et le nombre de points de la T.F.D.
(N). Utiliser de prfrence la fonction stem pour tracer des spectres de raies plutt que plot.
La formule gnrale donnant la T.F.D. est la suivante:
N 1
m
mn
m=0
fe
10
que linstruction pause(0.1) dans cette boucle pour avoir le temps de voir lvolution 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 dphasage qui varie de 0 2 par pas
de 0.1radian ; fixer le vecteur temps ainsi : t=0 :0.01 :1 .
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 prdfinies, ce qui permet de raliser des programmes de calculs
complexes en trs peu de lignes de programmation.
- graphisme de trs haute qualit.
- simplicit du langage de programmation.
- les paramtres nont pas tre dclars; ceci est un avantage et un inconvnient car vous
pouvez commettre des erreurs en utilisant deux fois le mme nom de variable dans un programme.
11
12
1) INTRODUCTION
x(t ) =
n =
t
exp i 2n
T0
(1)
xn =
1
t
x(t ) exp i 2n dt
T0 [T0 ]
T0
(2)
1/T0 : reprsente une frquence appele fondamentale, et de manire plus gnrale on nomme nime
harmonique la frquence correspondant n/T0.
Prenons une fonction cosinus comme exemple pour calculer le spectre dun signal priodique partir des
sries de Fourier :
t
x(t ) = A cos 2
T0
(3)
T0 : priode
A : amplitude
En utilisant lquation (2) pour calculer les coefficients de Fourier, nous obtenons :
xn=A/2 pour n=1 et xn=0 pour n diffrent de 1
Le spectre en amplitude est donn par la norme de xn et peut tre trac de la faon suivante :
13
On remarque que ce signal priodique nest constitu que dune fondamentale, il est monochromatique.
Le domaine des frquences ngatives na aucune signification physique, il est d aux fonctions
exponentielles complexes introduites dans la dfinition des sries de Fourier. Pour les signaux rels,
le spectre en amplitude sera toujours une fonction paire. Les analyseurs de spectre dlivrent plus
gnralement le spectre en puissance qui est reprsent ci-dessous dans le cas de la fonction cosinus
Cette reprsentation permet de faire un calcul trs simple de la puissance moyenne totale par le
thorme de Parseval :
P=
1
T0
T0
x 2 (t )dt =
n =
xn2
(4)
14
t +
t
x(t ) = a0 + a n cos 2n + bn sin 2n
T0 n=1
T0
n =1
(5)
xn =
an ibn
2
x0 = a0 =
1
T0
pour n diffrent de 0.
[ T0 ]
(6)
x (t )dt
Les relations donnant les valeurs de an et bn sont obtenues partir des quations (6) et (2) :
an =
2
t
dt
x
(
t
)
cos
2
T0 [ T0 ]
T
0
(7)
bn =
2
t
x ( t ) sin 2n dt
T0 [ T0 ]
T0
(8)
Les coefficients an et bn ne sont dfinis que pour des valeurs de n positives. Dans le cas des signaux rels
( partie imaginaire nulle) une relation simple provenant de la proprit de symtrie hermitienne permet
de calculer les coefficients xn pour des indices n ngatifs partir des valeurs de xn pour n positif :
x n = x n*
En appliquant ces relations notre signal sinusodal, le seul coefficient diffrent de 0 est a1=A. Ce
rsultat sobtient galement de faon trs simple dans ce cas particulier en identifiant les quations (3) et
(5).
Relation entre la transforme de Fourier et les coefficients de Fourier pour les signaux priodiques.
Il est galement possible de calculer la transforme de Fourier pour un signal priodique de priode T0, le
rsultat obtenu donne en ralit les mmes informations que les coefficients de Fourier, ceci va tre
dmontr prsent :
15
n
t exp( i 2ft )dt
exp i 2
T
n =
0
n
= x n exp i 2 f t dt
T0
n =
+ +
(9)
x f T
n =
Les valeurs de a0 ne suivent pas les conditions prcdentes, a0 reprsente la valeur moyenne du signal.
Travail demand
Montrer que :
an =
40
1 (2n )
, a0 =
20
16
b) Rampe
Montrer que:
bn = 10
cos(n )
n
y (t ) = (1 + m cos( 2f m t )) cos( 2f p t )
avec fm=1 kHz: frquence du signal modulant, fp=8kHz: frquence de la porteuse, m indice de modulation
fix arbitrairement 0.5 dans le cas prsent. Pour trouver la dcomposition en srie trigonomtrique de
17
ce signal, il n'est pas ncessaire d'utiliser les formules 7 et 8 pour calculer les coefficients an et bn, il
suffit de dvelopper le produit des fonctions cosinus apparaissant dans l'quation prcdente. Le signal
y(t) peut alors s'exprimer comme la somme de fonctions cosinus, on ralise donc aussi la dcomposition
de ce signal en somme de plusieurs sinusodes que l'on peut appeler srie trigonomtrique.
-
d) Peigne de Dirac
Le peigne de Dirac a t tudi en cours et nous avons dtermin la transforme de Fourier de ce signal
et donc ses diffrents coefficients de Fourier.
-
Calculer les coefficients de Fourier dun peigne de Dirac de priode gale 1 seconde.
Ralisez des fonctions que vous nommerez sinred.m, rampe.m, modam.m et dirac.m pour raliser la
synthse par srie trigonomtrique des fonctions sinus redresse, rampe, cosinus modul en amplitude
par un cosinus, et peigne de Dirac. Les arguments dentre de ces fonctions seront :
-
T0 : la priode de la fonction.
t N
t
x(t ) = a0 + an cos 2 n + bn sin 2 n
T0 n =1
T0
n =1
Pour chaque fonction il faudra calculer les valeurs pour an, bn et a0. C'est ainsi que l'on pourra synthtiser
de faon exacte ou de manire approche les signaux a),b),c),d) partir de leurs dcompositions en srie
trigonomtrique.
- Pour les signaux a) et b), relevez et commentez l'volution des ondulations prsentes sur les
signaux synthtiss x(t) au fur et mesure que vous augmentez le nombre N de sinusodes. En dduire
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 gnrs.
18
- Pour le signal c), vrifiez que le signal que vous obtenez par synthse de plusieurs sinusodes
correspond exactement celui reprsent dans l'nonc.
- Pour bien visualiser leffet Gibbs et son volution avec le nombre N de sinusodes ajoutes,
crer 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 gnrer un peigne de Dirac ou une impulsion de Dirac.
19
20
TP 3 : UTILISATION DE LA TFD
POUR LANALYSE SPECTRALE DE SIGNAUX
1) Introduction
Le but de ce TP est dinterprter correctement les rsultats obtenus par le calcul dune transforme
de Fourier discrte dans le cas de signaux priodiques. Il faudra pouvoir lier ces rsultats aux
coefficients de Fourier et la transforme de Fourier du signal chantillonn. A titre dillustration on
traitera des cas simples de signaux priodiques et on verra tout lintrt de lanalyse spectrale sur des
signaux priodiques bruits. Nous verrons comment le choix de la frquence dchantillonnage et du
nombre dchantillons influe sur les spectres obtenus. Pour des rappels sur lanalyse de Fourier de
signaux priodiques, reportez vous lintroduction du TP 2. On peut facilement exprimer la transforme
de Fourier X(f) partir des coefficients de Fourier xn pour un signal priodique x(t) :
X( f ) =
n =
avec
T0 : la priode de x(t)
et
x f T
n
(1)
En thorie, chantillonner le signal x(t) revient le multiplier par un peigne de Dirac Te(t) de priode
gale la priode dchantillonnage Te. On notera xs(t) le signal chantillonn, il scrira en fonction de
x(t) sous la forme :
+
(2)
n =
La transforme de Fourier de xs(t) (Xs(f)) scrira alors comme le produit de convolution de X(f) avec la
transforme de Fourier du peigne de Dirac qui est galement un peigne de Dirac :
X s ( f ) = X ( f ) f e fe ( f )
= fe
X ( f nf )
n =
(3)
La simplification opre pour passer de la premire la deuxime ligne de lquation (3) est due la
proprit dlment neutre de limpulsion de Dirac pour la convolution. La figure suivante illustre la
relation existant entre X(f) et Xs(f). Attention la fonction Xs(f) tant priodique de priode fe, il est
impossible de la reprsenter dans son intgralit (de - +).
21
Cette figure montre bien quil est ncessaire dchantillonner le signal une frquence fe suprieure ou
gale 2 fois la bande limite du signal B de manire viter un recouvrement de spectre (thorme de
Shannon). On comprend ds lors lintrt dun filtre anti-repliement placer avant lchantillonneur pour
limiter le spectre du signal. On conoit galement quune simple opration de filtrage passe-bas puisse
permettre de reconstruire le signal
n N 1
mn
T0 m=0
N
(4)
1
( ( f f1 ) + ( f + f1 ) )
2
22
Le spectre en amplitude de ce signal priodique est donc form dune impulsion de Dirac dans les
frquences positives situe en f1=1Hz. Pour calculer une TFD sur ce signal, on est amen limiter le
nombre dchantillons du signal, donc la dure de celui-ci. On note alors x`(t) le signal x(t) limite un
intervalle de temps allant de 0 T0:
T
x '(t ) = x(t )rT 0 t 0 avec T0 = 1s
2
T
T
X '( f ) = 0 sin c ( ( f f1 ) T0 ) exp ( i ( f f1 ) T0 ) + 0 sin c ( ( f + f1 ) T0 ) exp ( i ( f + f1 ) T0 )
2
2
Le spectre en amplitude du signal limit en dure laisse alors apparatre des pics ou lobes dont le plus
important est situ f1=1Hz.
Aprs chantillonnage de ce signal limit lintervalle [0,T0[, le spectre du signal devient priodique de
priode fe. Ce spectre est dtermin partir de la transforme de Fourier du signal chantillonn donn
par :
X s ( f ) = fe
X ' ( f kf )
k =
La TFD correspond une ensemble dchantillons prlevs sur la transforme de Fourier du signal
chantillonn calculs par :
n N 1
mn
T0 m=0
N
23
N correspond aux nombres dchantillons prlevs sur x(t) sur [0, T0[ avec une priode dchantillonnage
te =
T0
. N correspond aussi au nombre dchantillons prlevs sur Xs(f) sur [0, fe[ avec un pas appel
N
1
. Ce dernier rsultat dcoule directement de lexpression de X[n]
T0
donne prcdemment, on vrifie bien quen prenant N chantillons distants de 1/T0, on couvre bien une
gamme de frquence gale fe : f e =
N
.
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 lexemple que nous venons de traiter, nous avons particulirement bien choisi la frquence
dchantillonnage fe et la dure de mesure T0.
En effet, fe respecte le thorme de Shannon fe>2f1 et T0 est un multiple de la priode du signal ce qui
nous permet davoir la frquence du signal f1 multiple entier de la rsolution spectrale f. Lorsque ces
deux conditions sur fe et T0 sont satisfaites, il est possible dtablir la relation suivante entre les
coefficients
xn =
de
Fourier
du
signal
priodique
et
la
transforme
de
Fourier
discrte :
X [ n]
sur l'intervalle [0, f e / 2[ . En toute rigueur xn dsigne ici les coefficients de Fourier de la
N
rptition priodique de x`(t), il faut donc ncessairement que T0 soit gale la priode de x(t) ou alors
un multiple entier de celle-ci. Dans le cas contraire, il est impossible dtablir un lien entre les rsultats
de la TFD et les coefficients de Fourier ou la transforme de Fourier du signal priodique. Cest ce que
24
nous pouvons observer au travers de l'exemple suivant dans lequel pour le mme signal priodique, nous
avons choisi une dure de mesure T0 diffrente dun multiple entier de la priode.
Pour ces spectres, la dure de mesure a t choisie gale T0=1.3s. La frquence de la fonction cosinus
est toujours de 1Hz et 8 chantillons sont prlevs sur la dure T0.
Dans ce cas, on voit bien que la troncature du signal et le repliement d lchantillonnage modifie
fortement les rsultats obtenus par TFD et on na plus de relation directe entre les coefficients de
Fourier et la TFD.
25
2) Travail demand
Crer une fonction similaire au script tfd que vous avez fait au TP1 qui aura pour but de tracer la
reprsentation temporelle x(t) ainsi que le spectre sous 3 reprsentations complmentaires :
1) partie relle du spectre obtenu par calcul de la transforme de Fourier discrte en fonction
des frquences
2) partie imaginaire
3) module
Pour tracer ces 4 graphes, il faut bien sur dfinir la fonction tudier et les conditions dchantillonnage.
On choisit danalyser une fonction cosinus, il faudra fournir son amplitude et sa frquence ainsi que la
frquence dchantillonnage fe et la dure de mesure T0 comme paramtres dentres de votre
programme. Si vous voulez par exemple tudier un signal de frquence 3kHz et damplitude 0.2 avec une
frquence dchantillonnage 30kHz et une dure de mesure 1ms, il faudra taper tfd(3000,0.2,30000,0.001)
pour obtenir les 4 graphes donnant les reprsentations temporelles et spectrales du signal.
NB :
- pour calculer la transforme de Fourier discrte vous pouvez utiliser linstruction fft.
- utiliser toujours de prfrence linstruction stem plutt que plot.
Expliquer comment vous allez calculer le vecteur temps ncessaire la reprsentation temporelle du
signal.
Expliquer comment vous allez calculer le vecteur des frquences ncessaire pour pouvoir reprsenter
le spectre.
En reprenant lexemple donn prcdemment expliquez comment vous pouvez exploiter le spectre
pour retrouver lamplitude et la frquence du signal.
Dterminer les valeurs minimales de fe et T0 qui permettent dobtenir un spectre exploitable pour
ltude dun signal dfini par
duquel il est possible de dterminer lamplitude et la frquence du signal sans aucune ambigut. Il est
bien sr 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 reprsentation
temporelle du signal qui laisse penser que le signal a une priode de 0.02s. Commenter et
interprter galement le spectre obtenu.
26
2.2)
Reprenez la fonction tfd prcdente en rajoutant cette fois la fonction cosinus du bruit obtenu grce
linstruction randn qui permet de gnrer des nombres alatoires qui suivent une loi gaussienne. Pour
raliser
cette
addition,
il
faudra
par
exemple
sommer
la
fonction
cosinus
un
vecteur
2.3)
Reprenez la fonction tfd prcdente en remplaant cette fois le bruit par une deuxime fonction cosinus.
Pour raliser cette addition, il faudra par exemple sommer la fonction cosinus de dpart un vecteur
a2*cos(2*pi*f2*t) o a2 et f2 dsignent lamplitude et la frquence de la deuxime sinusode. Les variables
a2 et f2 devront tre fournis comme paramtres dentre de la fonction tfd.
Si vous voulez par exemple tudier une somme dun signal sinusodal de frquence 3kHz et damplitude
0.1 et dune fonction cosinus de frquence 3.3kHz et damplitude 0.05 chantillonne une frquence
dchantillonnage
100kHz
sur
une
dure
de
mesure
1ms,
il
faudra
taper
Observer et commenter les graphes obtenus dans lexemple prcdent. Essayer dextraire de ces
graphes les amplitudes et frquences des deux sinusodes.
Quel est le paramtre dchantillonnage modifier pour pouvoir extraire correctement les
amplitudes et frquences des deux sinusodes. Reprsenter et exploiter les graphes alors obtenus.
En guise de conclusion gnrale ce TP donner les points forts de lanalyse frquentielle de signaux
priodiques par transforme de Fourier discrte.
27
28
TP 4 : UTILISATION DE LA TFD
POUR LESTIMATION DUNE FONCTION DE CORRLATION
1) Introduction
Un signal alatoire X(t,) est dfini 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:
loi gaussienne :
loi uniforme :
( x mx ) 2
1
p ( x) =
exp
2
2
x x
p( x) = sup inf
0
Il est possible de gnrer les signaux alatoires partir de variables alatoires qui suivent ces lois de
probabilit. On peut ainsi gnrer des bruits en prenant comme modle:
Y (t , ) = Y (t , X ) = aX + b
avec X une variable alatoire gaussienne ou uniforme, et a et b des constantes qui permettent de
paramtrer la puissance moyenne totale, la variance ou encore la valeur moyenne du signal Y.
Un signal alatoire est dit stationnaire au sens strict si ses proprits statistiques sont indpendantes de
l'origine des temps. Il est stationnaire au second ordre si son moment d'ordre 1 (valeur moyenne
statistique) ne dpend pas de l'instant choisi et si le moment mixte d'ordre 2 (l'autocorrlation statistique)
ne dpend que de : l'cart entre les instants t1 et t2 choisis pour relever les ensembles statistiques.
Ces moments sont calculs partir d'ensembles statistiques forms par des observations du signal en
diffrents instants (t1, t2, ). Pour obtenir des rsultats significatifs, il est donc ncessaire de constituer
des ensembles importants, et pour cela un grand nombre de relevs 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 dterministes, pour les signaux
alatoires, ces moments temporels ne donnent des rsultats significatifs que si on fait l'hypothse
d'ergodicit, c'est dire que les moments ou moyennes temporelles correspondent aux moments
statistiques. Nous allons prsenter les deux principales manires d'estimer numriquement la fonction
d'autocorrlation.
29
La fonction d'autocorrlation Rx() est calcule en prenant la valeur moyenne de X(t,) multipli par X(t,). Pour simplifier les critures, les signaux numriss sont le plus souvent exprims en fonction
d'indices prenant des valeurs entires. Par exemple, au lieu d'crire x(tm) avec tm=mte (te: priode
d'chantillonnage),
on
prfre
crire
x(m).
Ainsi,
pour
estimer
numriquement
la
fonction
d'autocorrlation, on pose simplement le calcul d'une valeur moyenne sur lensemble de N chantillons
qui constituent x(m):
r1 ( p ) =
1
N
N 1
m= p
x(m)x* ( m p ) pour 0 p N 1
(4.1)
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 consquence d'introduire un biais dans l'estimation:
l'autocorrlation est pondre par une fentre triangulaire.
Pour liminer le biais, un second estimateur peut tre dfini de la faon suivante:
1
N 1
x(m)x * (m p) pour 0 p N 1
m= p
Np
r2 ( p) =
(4.2)
L'avantage de cet estimateur est son absence de biais, mais sa variance devient importante lorsque p
tend vers N-1. Les fonctions de corrlation qui vont tre calcules par la suite permettront de saisir les
notions de biais et de variance dun estimateur.
Pour calculer une fonction de corrlation numrique, il est plus intressant de passer dans le domaine
frquentiel au moyen de la TFD pour des signaux prsentant plus de 80 chantillons car les oprations sont
moins nombreuses donc plus rapides excuter. Lutilisation de la TFD est base sur le thorme de
Plancherel qui dit que la transforme de Fourier dun produit de convolution de deux signaux donne le
produit simple de la transforme de Fourier des deux signaux :
TF ( x(t ) * y(t ) ) = X ( f )Y ( f )
Il est possible dutiliser ce thorme pour estimer la fonction dautocorrlation car cette dernire
renferme une convolution : R x ( ) = x ( ) * x ( )
*
Si on applique cette dernire relation au cas dun signal numrique sur lequel on essaie de calculer
lestimateur biais de lautocorrlation, on obtient :
r1 ( p ) =
1
N
N 1
m= p
x (m)x* (m p ) =
1
x ( p ) * x* ( p ) )
(
N
30
N 1
La
((
) )
1
TFD 1 X ' X '* ( p)
N
1
r2 ( p) =
TFD 1 X ' X '* ( p)
Np
r1 ( p) =
((
) )
(4.3)
Ces deux estimes sont obtenus directement sous Matlab grce la fonction xcorr :
(4.4)
r1 et r2 sont les deux vecteurs renfermant les deux estimes ; p reprsente un vecteur qui contiendra les
valeurs entires allant de (N-1) (N-1) et va servir pour calculer laxe des abscisses ncessaire
reprsenter les autocorrlations. Les valeurs de r(p) pour des valeurs de p ngatives sont obtenues grce
la proprit de priodicit des autocorrlations estimes avec la TFD.
2) Travail demand
La fonction devra effectuer les calculs et tracs des estimations biases et non biaises de ce
signal par les diffrentes formules donnes auparavant : 4.1, 4.2, 4.3 et 4.4. Vrifier que vous
31
obtenez les mmes rsultats par ces trois mthodes pour les deux estimations. Ne passer pas plus
dune heure sur cette partie car lessentiel du TP nest pas l. Par la suite, on se contentera de
calculer et tracer uniquement les deux estimes obtenues avec linstruction xcorr.
-
Tracer et comparer les estimations biaises et non biaise de lautocorrlation du signal pris
comme exemple auparavant.
Exploiter ces tracs pour retrouver les caractristiques du signal, savoir la puissance moyenne
totale et la frquence.
Sachant que la puissance moyenne totale est donne par la fonction d'autocorrlation en zro,
donnez l'expression de l'estime numrique de la puissance moyenne totale partir des
estimateurs biais et non biais de l'autocorrlation. Calculer l'estime la puissance moyenne
totale du signal et confronter votre rsultat la thorie.
En comparant les histogrammes obtenus pour ces deux bruits en tapant hist(rand(1,1000)) et
hist(randn(1,1000)) donnez les diffrences essentielles des deux gnrateurs.
Comment partir dun ensemble de variables alatoires qui suivent une loi de distribution
gaussienne de moyenne nulle et de variance 1 est-il possible de gnrer un signal alatoire de
moyenne a et de variance b ?
Remplacer dans la fonction autocor le signal sinusodal par un bruit blanc gaussien. Les
paramtres fournir seront la valeur moyenne, la variance du bruit ainsi que le nombre
dchantillons. Par exemple, pour gnrer 100 chantillons d'un bruit blanc gaussien de valeur
moyenne 2 et de variance 3, il faudra taper : autocor(2,3,100). La frquence dchantillonnage
sera prise gale 1Hz dans tous les cas.
Tracer et comparer les estimations biaises et non biaise de son autocorrlation pour lexemple
choisi auparavant.
Expliquer comment utiliser ces tracs pour extraire la valeur moyenne, la puissance moyenne
totale et la valeur efficace du signal.
32
Sachant que l'on dsire un rapport signal sur bruit de 0dB, en dduire la variance du bruit blanc.
Exploiter ces tracs afin de retrouver la puissance moyenne totale du bruit, du sinus et la
frquence 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 particulire concernant la modulation bande latrale unique (BLU).
m ( t ) de frquence f m . Il est possible de montrer que ce signal peut tre obtenu par
cos ( 2 f mt ) .
Les informations qui caractrisent le message modulant que l'on veut transmettre sont sa frquence f m
et son amplitude Am . Aprs modulation ces informations sont contenues dans les raies situes en f p + f m
et f p f m . En ralit, les raies f p + f m et f p f m contiennent les mmes informations. Ceci veut donc
dire qu'il est inutile de transmettre simultanment les deux raies situes en f p + f m et f p f m ; ces deux
raies constituent dans ce cas particulier ce qu'on appelle plus gnralement les bandes latrales
suprieure et infrieure.
La modulation BLU consiste filtrer le signal modul en amplitude de manire ne transmettre qu'une
seule bande latrale (BLI ou BLS suivant la bande slectionne: Infrieure ou Suprieure respectivement).
Un avantage essentiel est que la bande transmettre est rduite 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 dmoduler en raison de l'absence de
porteuse.
35
Le schma de principe qui peut s'appliquer la modulation BLU est donc le suivant:
Le travail qui vous est demand est de simuler les signaux moduls, et de concevoir et vrifier 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.
H ( ) =
1 +
0
2n
H( f ) =
2
avec
1
1 + Tn2 ( f )
H( f ) =
2
1
1 + T ( f a ) / Tn2 ( f )
2
n
36
soit une ondulation en bande attnue mais pas en bande passante (filtre de type 2)
Londulation en bande passante vaut 1 / 1 + . Les caractristiques des filtres de Tchebycheff sont
meilleures en attnuation que celles des filtres de Butterworth.
2
2.3)
H( f ) =
2
1
1 + R n2 ( f , L)
Rn est une fonction rationnelle de Tchebycheff et o L caractrise lattnuation. Les filtres de Cauer
prsentent des ondulations en bande passante et en bande attnue. La valeur de londulation en bande
attnue vaut
1/ 1 + 2 .
3) Travail demand
3.1) Simulation et analyse du signal modul en amplitude sans porteuse YAM ( t )
Crez un script que vous nommerez filtanal.m dans lequel vous allez gnrer le signal
correspondant au produit du signal modulant
YAM ( t )
YAM en fonction de t.
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 prcdent. Attention les anglophones appellent frequency ce que nous appelons pulsation et qui
correspond = 2f .
Ne crez pas une nouvelle fonction *.m, rajoutez les instructions ncessaires l'obtention de la fonction
de transfert du filtre dans le fichier filtanal.m. Vrifiez que ce que vous avez obtenu pour le filtre passe
bande rpond bien au gabarit demand en traant le module du gain du filtre (en dB) en fonction de la
frquence en utilisant les instructions freqs et tf.
simul prcdemment.
Pour gnrer le signal YBLI , utilisez l'instruction lsim.
- Observez et commentez les reprsentations temporelles et frquentielles du signal modul.
- Mme question lorsque vous remplacez le signal modulant
38
39
40
41
42
43
TP 6 : FILTRAGE NUMRIQUE
1) Introduction
La transforme en z est utilise pour modliser les oprations effectues dans le domaine des signaux
chantillonns. Le filtrage numrique peut ainsi se formuler par :
Y ( z) = H ( z) X ( z)
(1)
avec H(z) la fonction de transfert en z du filtre numrique qui peut scrire sous la forme :
N 1
H ( z) =
b
k =0
M
z k
1 + al z
(2)
l
l =1
k =0
l =1
y ( n) = bk x ( n k ) a l y ( n l )
(3)
1.1)
Filtres RIF
Ces filtres nont aucun ple, ce qui signifie que tous les coefficients
y (n) = bk x(n k )
(4)
k =0
la phase qui varie linairement avec la frquence, ce qui introduit un retard constant entre le
signal de sortie et le signal dentre du filtre.
Nous allons prsenter deux manires de calculer les coefficients dun filtre RIF.
a) Synthse dun filtre RIF par srie de Fourier.
On dsire raliser un filtre passe-bas idal de frquence de coupure fc. Etant donn que lon travaille sur
des signaux chantillonns (y(n),h(n),x(n)), les spectres obtenus par transforme de Fourier de ces
signaux seront priodiques de priode gale la frquence dchantillonnage f e . Ce qui explique la forme
donne
H(f ) :
44
h( n ) =
n
df
H ( f ) exp i 2f
fe / 2
f e
fe / 2
(5)
N.B. : on notera la prsence dun signe + la place dun dans la fonction exponentielle car on passe du
domaine spectral au domaine temporel.
( N 1) fTe et un retard de ( N 1) Te
H ( f ) . H ( f ) est chantillonne en
h( k ) =
Le dcalage des indices de
1
N
( N 1) / 2
H (n) exp 2 ik ,
N
n = ( N 1) / 2
k ( N 1) 2, ( N 1) 2
(6)
1.2)
Filtres RII
H ( z) =
b z
k =0
M
1 + al z
(7)
l
l =1
Ce type de filtre peut tre instable si les ples sont situs en dehors du cercle unit. Dautre part la phase
ne varie pas linairement avec la frquence. 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
synthtiser un filtre RIF, la mthode la plus simple consiste partir de la fonction de transfert dun filtre
45
analogique (Butterworth, Tchebycheff, Cauer, etc.) et de passer du plan des variables p (ou
des z . La transformation la plus couramment utilise est la transformation bilinaire :
k = 2 f e en rgle gnrale.
s ) celui
1 z 1
1 + z 1
2) Travail demand
2.1) Filtres RIF
a) Synthse par srie de Fourier
-
Calculer les valeurs des coefficients de la rponse impulsionnelle dun filtre RIF passe-bas idal de
frquence de coupure 1kHz sachant que fe=8kHz. On limite la rponse impulsionnelle 9 lments.
Commenter les tracs des rponses en frquence. Les deux courbes dans chaque graphe
correspondent lusage de 2 fentres de pondration : la fentre rectangle (ou box-car) et la fentre
de Hamming.
N.B. : Avant de cliquer sur Rponse en frquence, il faut cliquer sur Rponse impulsionnelle pour
ractualiser celle-ci chaque fois que vous changez un paramtre : fe, fc ou N.
- Commenter les tracs de la rponse un sinus raliss pour diverses frquences de la fonction sinus
(prendre N=33).
-
Expliquer en particulier la raison pour laquelle les premires valeurs en sortie du filtre sont quasi
nulles.
Noter le temps de retard entre les 2 sinusodes et son volution avec la frquence du sinus.
H(f ) :
Sur lintervalle de frquence 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
f1 f2
fe/2
f
46
Calculer les valeurs de la rponse impulsionnelle dun filtre RIF base sur un tel gabarit avec :
f1=1kHz, f2=1.5kHz, fe=8kHz et N=9.
Sachant que les cercles reprsents dans le module de la rponse en frquence sont les points
chantillonns sur
R
x(t)
y(t)
R=330, C=470nF
-
H ( p) =
(7)
p
1+
2f c
fc .
H ( z) =
b z
a z
k =0
M
l =0
avec a0=1
(8)
H ( p ) et au filtre numrique H ( z ) .
47
48
Introduction :
Loption Signal Processing Toolbox de MATLAB permet de comparer un grand nombre de mthodes de
synthse de filtres numriques. Nous sparerons une fois encore les filtres RII des RIF.
H ( f ) approche une fonction donne D ( f ) suivant un critre des moindres carrs. Cette mthode
consiste donc trouver les coefficients du filtre qui minimisent la fonction suivante :
eqm = P ( f )[H ( f ) D ( f )]
Le problme li aux diffrentes mthodes prsentes jusqu maintenant est le manque de matrise des
oscillations du filtre. Or dans de nombreuses applications, il se rvle intressant dutiliser des filtres
prsentant des ondulations damplitude constante. La mthode de Remez (remez) permet de tenir compte
de cette contrainte supplmentaire sur le gabarit du filtre.
49
Exercice1 : comparaison des rsultats obtenus par les mthodes firls et remez.
On fixe la frquence dchantillonnage 1Hz et on dsire synthtiser un passe-bas :
dordre 15 avec fp=0.275 et fs=0.325Hz.
Exercice2 : comparaison des RII.
On donne les spcifications suivantes pour un filtre numrique passe-bas :
Fe=1Hz, fp=0.25Hz, fs=0.26Hz
Ondulation dans la bande passante Rp=3dB, attnuation dans la bande coupe 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.
SPTool: An Interactive Signal Processing
Environment (p. 6-3)
Viewing signals
Designing filters
Viewing spectra
Exporting Signals, Filters, and Spectra (p. 6-33) Sending data out of the tool
Accessing Filter Parameters (p. 6-35)
Selecting data
Editing data
6-2
Measuring signals
6-3
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
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
You can also use the Whats this? menu item in the Help menu to launch
context-sensitive help.
6-7
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:
Analyze and compare vector or array (matrix) signals.
Zoom in on portions of signal data.
Measure a variety of characteristics of signal data.
Compare multiple signals.
Play portions of signal data on audio hardware.
Print signal plots.
6-8
Signal Browser
Description
6-9
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
6-11
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 filters 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
A toolbar with the following buttons
Icon
Description
6-13
Note Every time you click the Filter View button a new, linked FVTool
starts. This allows you to view multiple analyses simultaneously.
6-14
When you first open FVTool, it displays the selected filters magnitude plot.
6-15
Description
Description
6-16
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
Spectrum Viewer
You can use the Spectrum Viewer for estimating and analyzing a signals
power spectral density (PSD). You can use the PSD estimates to understand a
signals frequency content.
The Spectrum Viewer provides the following functionality.
Analyze and compare spectral density plots.
Use different spectral estimation methods to create spectra:
- Burg (pburg)
- Covariance (pcov)
- FFT (fft)
- Modified covariance (pmcov)
- MTM (multitaper method) (pmtm)
- MUSIC (pmusic)
- Welch (pwelch)
- Yule-Walker AR (pyulear)
Modify power spectral density parameters such as FFT length, window type,
and sample frequency.
Print spectral plots.
To open the Spectrum Viewer with a PSD estimate already listed in SPTool:
1 Select a PSD estimate from the Spectra list box in SPTool.
2 Press the View button in the Spectra list.
6-18
Spectrum Viewer
For example:
1 Select mtlb in the default Signals list in SPTool.
2 Press the Create button in SPTool to open the Spectrum Viewer.
3 Press the Apply button in the Spectrum Viewer to plot the spectrum.
6-19
Description
6-20
SPTool
2 Designing a bandpass filter using the Filter Designer
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
randn('state',0);
x = randn(5000,1);
2 If SPTool is not already open, open SPTool by typing
6-21
sptool
opens.
Click on the arrow to the left of the Data field or type x in the Data field.
Press OK.
6-22
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
1 Change the filter sampling frequency to 5000 by entering this value in the
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
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
2 Select the signal noise[vector] from the Signals list and select the filter
Press Apply to apply the filter filt1 to the signal noise. The Apply Filter
dialog box is displayed
.
dialog box.
6-26
The filter is applied to the selected signal and the filtered signal
blnoise[vector] is listed in the Signals list in SPTool.
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,
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
Playing a Signal
When you press the Play button in the Signal Browser toolbar,
signal is played on the computers audio hardware:
, the active
and
buttons.
Printing a Signal
You can print from the Signal Browser using the Print button,
6-28
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 cant 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.
the signal noise, and a second PSD object, spect2, that is associated with
the signal blnoise.
6-29
6-30
Viewer.
2 From the Spectrum Viewer Print Preview window, drag the legend out of
6-31
6-32
6-33
Ctrl+click.
2 Press the Export to Workspace button.
6-34
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
You can change the filter representation from the default transfer function to
another form by using the tf2ss or tf2zp functions.
Design Method
fdbutter
Butterworth IIR
fdcheby1
fdcheby2
fdellip
Elliptic IIR
fdfirls
fdkaiser
fdremez
Equiripple FIR
6-36
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:
type:
f:
m:
Rp:
Rs:
wt:
order:
0
3
[0 0.2000 0.3000 0.5000 0.6000 1]
[6x1 double]
0.0100
75
[3.2371 1 3.2371]
78
Description
Beta
Fpass
Fstop
6-37
Parameter
Description
order
Filter order.
Rp
Rs
setOrderFlag
type
w3db
wind
Wn
wt
6-38
Field
Description
Field
Description
confid
signalLabel
Fs
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
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 filters 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
B(z-)
b(1) + b(2)z 1 + L + b(m + 1)z m
H(z) = ---------= --------------------------------------------------------------------------------------A(z)
a(1) + a(2)z 1 + L + a(n + 1)z n
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
The A-Matrix, B-Matrix, C-Matrix, and D-Matrix fields specify a variable
name or a value for each matrix in this system.
6-41
H(z) =
k=1
H k(z) =
k=1
b 0k + b 1k z 1 + b 2k z 2
---------------------------------------------------------1 + a 1k z 1 + a 2k z 2
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
6-43
- 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.
2 Select the variables to be imported into SPTool.
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
6-45
6-46
(pole) or
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
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
Description
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
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 zeros magnitude.
6-49
- Fp = 800
- Fs = 700
- Rp = 2.5
- Rs = 35
5 Select Minimum Order so the Filter Designer can calculate the lowest filter
stopband. This is the first (leftmost) horizontal specification line you see.
The cursor changes to the up/down drag indicator.
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:
Select colors and markers for all displays.
Select colors and line styles for displayed signals.
Configure labels, and enable/disable markers, panner, and zoom in the
Signal Browser.
Configure display parameters, and enable/disable markers and zoom in the
Spectrum Viewer.
Specify FFT length, and enable/disable mouse zoom and grid in the Filter
Designer.
Enable/disable use of a default session file.
Export filters for use with the Control System Toolbox.
Enable/disable search for plug-ins at start-up.
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
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
.
Icon
Description
and dragging:
6-53
buttons, you can drag a marker to the right or left. If you choose the
Horizontal button, you can drag a marker up or down.
b Move the mouse over the marker (1 or 2) that you want to drag.
is displayed when
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 displayedx1, 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