Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
DE TRAITEMENT
DU SIGNAL
Hicham AISSAOUI
FIEEA 2011
TRAVAUX PRATIQUES
DE TRAITEMENT
DU SIGNAL
- Sommaire
4- Filtrage Numrique,
Traitement du Signal 2
FIEEA 2011
Sommaire
SOMMAIRE --------------------------------------------------------------------------------------------- 3
0.0 Introduction--------------------------------------------------------------------------------------------------------- 5
1.2.2 Par utilisation des fonctions et oprateurs offerts par Matlab ------------------------------------ 6
Traitement du Signal 3
FIEEA 2011
1. Introduction -------------------------------------------------------------------------------------------------------- 36
1 Thorie ------------------------------------------------------------------------------------------------------------- 41
2- Mthode ------------------------------------------------------------------------------------------------------------- 41
3 - Travail effectuer------------------------------------------------------------------------------------------------ 42
Traitement du Signal 4
FIEEA 2011
0.0 Introduction
MATLAB est un logiciel interactif permettant deffectuer des calculs numriques complexes
particulirement utiles dans le domaine de lingnierie. Disponible sur de gros systmes, il
fut adapt pour lordinateur personnel muni dun coprocesseur mathmatique permettant une
grande capacit de calcul. Il est utilis en programmation scientifique, pour le calcul
numrique et la visualisation graphique, bas sur la reprsentation matricielle des donnes.
Le nom est driv de cette reprsentation MATLAB = MATrix LABoratory.
Ce logiciel travaille sur des matrices relles ou complexes. Par consquent, afin de l'utiliser
conformment, il est indispensable de garder toujours prsent l'esprit que toute variable ou
paramtre est systmatiquement considr comme une matrice (ou ses cas particuliers:
vecteurs ligne, vecteurs colonne et scalaire.
MATLAB tant disponible sur diffrentes plates formes matrielles, on accde au logiciel en
lanant l'excutable matlab suivant la procdure habituelle de l'environnement concern.
On se retrouve alors d ans un environnement dit fentre de commande dans lequel on peut
crire des commandes ou excuter des fonctions. La sortie du logiciel s'effectue en tapant
quit ou exit.
Sur les systmes qui permettent le multi-fentrage, on peut travailler sous MATLAB dans
une fentre et conserver son diteur de texte dans une autre afin de modifier simplement les
fonctions mettre au point.
Notez que MATLAB est un logiciel auto-document; des informations relatives une
commande donne peuvent tre obtenues lcran en composant help, suivi du nom de la
Traitement du Signal 5
FIEEA 2011
commande ou seulement help pour avoir la liste des commandes de Matlab. Il y a aussi la
possibilit dobtenir laide en ligne sur le cite de Mathworks www.mathworks.com ou vous
pouvez trouver toutes les nouveauts de Matlab.
Matlab est un logiciel qui travaille sur des matrices relles ou complexes. Par consquent,
afin de l'utiliser conformment, il est indispensable de garder toujours prsent l'esprit que
toute variable ou paramtre est systmatiquement considr comme une matrice (ou un de
ses cas particuliers: vecteurs ligne, vecteurs colonne et scalaire.
Vrifiez les galits suivantes: (pour ces premiers exemples, rester dans la fentre de
commande Matlab et crire aprs l'invite >>)
B = [1 2 3;4 5 6;7 8 9]
ones(3,4) ones(1,4)
zeros(3,4) randn(4,5)
Avec ces quelques commandes, vous venez de construire un certain nombre de variables.
Matlab vous donne la possibilit de lister ces variables. Pour cela, utilisez la commande who
ou la commande whos. Vous pouvez ensuite dtruire ces variables. Vrifiez l'effet de who,
de clear et puis de clear all.
Des oprateurs matriciels sont dfinis dans Matlab. Afin de vous familiariser avec ceux ci,
traitez l'exemple suivant :
Vous pouvez extraire une matrice d'une autre matrice; essayez par exemple, aprs
avoir crer la matrice A, la commande A[5:10, 2:4].
Traitement du Signal 6
FIEEA 2011
Il existe une aide "en ligne" que vous pouvez appeler grce Help, dans la barre de
menu. Vous accder alors une table de matire (table of contents) et un index. Appelez la
table des matires: une liste de rpertoires vous est alors propose. Slectionnez, l'aide de
la souris, le rpertoire ops et observer sont contenu.
Oprations mathmatiques
+ addition + addition
- soustraction - soustraction
* multiplication .* multiplication
^ puissance .^ puissance
.' transpose
Traitement du Signal 7
FIEEA 2011
Oprateurs de relation
< infrieur
> suprieur
== gal
~= diffrent de
Voici une courte liste des instructions utiles pour les travaux pratiques, accompagnes d'une
brve description. Pour savoir comment utiliser ces fonctions, se rfrer l'aide de
MATLAB, par exemple en tapant help (nom de la commande) .
Commandes gnrales
Fonctions mathmatiques
Traitement du Signal 8
FIEEA 2011
Matrices particulires
rand Cre une matrice dont les lments sont gnrs de manire alatoire
logspace Gnre un vecteur dont les lments suivent une progression logarithmique
Manipulations de matrices
Manipulation de nombres
Traitement du Signal 9
FIEEA 2011
Transformes
fftshift Inverse les deux moitis de courbes obtenues suite au calcul de la fft
Convolution et corrlation
Filtres
filter Filtre les donnes qui lui sont fournies selon le type de filtre qui a t dcrit
Traitement du Signal 10
FIEEA 2011
Statistiques
Polynmes
demo permet de donner une dmonstration des possibilits que peut donner
MATLAB.
Traitement du Signal 11
FIEEA 2011
Exp : clear x y z
axis dfinit les limites des axes des abscisses et des ordonnes.
Exp : xmin = 0; xmax = 100; ymin = -100; ymax = 100; axis([ xmin xmax ymin
ymax]);
Exp : figure(1);
Traitement du Signal 12
FIEEA 2011
rand gnre une matrice ou un vecteur de variables alatoires dont les valeurs sont
comprises entre 0 et 1. Distribution uniforme.
randn gnre une matrice ou un vecteur de variables alatoires dont les valeurs sont
comprises entre 0 et 1. Distribution normale.
zeros gnre une matrice dont les lments sont de valeurs nuls.
ones gnre une matrice dont les lments sont de valeurs gale un.
Exp : a =1 ; inv(a) = 1;
Traitement du Signal 13
FIEEA 2011
Exp : a = 4 + 3i ; real(a) = 4;
Exp : a = 4 + 3i ; imag(a) = 3;
Exp : a = 4 + 3i ; abs(a) = 5;
Exp : a = 4 ; sqrt(a) = 2;
Exp : function mean = min (x); a = length (x); mean = sum (x)/a;
Traitement du Signal 14
FIEEA 2011
Exp : a = 1; log(a) = 0;
Exp : fmin('cos',3,4);
Exp : fzero('sin',3);
Matlab permet, comme tout langage volu, d'crire des boucles l'aide d'instructions du
type for, while, mais ces instructions ne sont utiliser que lorsque l'criture matricielle ne
permet pas de rsoudre le problme (cas d'un problme itratif...), car la vectorisation des
algorithmes rend les programmes plus concis et rduit beaucoup leur temps d'excution.
expression ; expression;
expression; end
end
Comparez, par exemple, les deux programmes suivants qui construisent le mme vecteur
ligne.
a) b)
i=0; t= [0:.01:20]
i=i+1; plot(y)
y(i)=sin(t);
end
Traitement du Signal 15
FIEEA 2011
L'excution conditionnelle de programmes peut tre obtenue l'aide des instructions if, else
et elseif. Les programmes de boucle ainsi que les programmes excuts conditionnellement
doivent se terminer par l'instruction end.
end end
end
MATLAB peut afficher des courbes planes, des courbes 3D, des surfaces mailles 3D ou des
surfaces facettes 3D. Les commandes respectives sont plot, plot3, mesh et surf.
Une commande plot suivante effacera le premier graphique pour tracer le nouveau dans la
mme fentre si la commande figure n'a pas t utilise entre temps. Cependant il est
possible de tracer des graphiques en surimpression l'aide de la commande hold on. Cette
commande a pour effet de conserver le graphe prsent avant de tracer le suivant. La
commande hold off annule cette possibilit.
MATLAB permet galement de tracer directement partir d'une fonction avec la commande
fplot. Soit la fonction sinus dfinie dans le fichier sinus.m par:
function y = sinus(x)
y = sin(x);
Le graphe obtenu peut tre agrment d'un titre, de lgendes ou de texte. Les commandes
MATLAB correspondantes sont:
Traitement du Signal 16
FIEEA 2011
Un graphe possde des attributs qui peuvent tre modifis l'aide de commandes, on
consultera l'aide de axis et plot.
Il est galement possible de tracer plusieurs graphes dans la mme fentre l'aide de la
commande subplot (voir aide). Enfin des reprsentations types sont obtenues l'aide des
commandes polar, bar, hist, etc...
La commande plot3 est identique la commande plot, elle ne fait appel qu' une coordonne
supplmentaire. La syntaxe de base est plot3(x,y,z). Les axes, titres et lgendes se traitent
comme dans le cas des courbes planes, la commande zlabel est disponible..
Supposons que l'on veuille reprsenter graphiquement la courbe y=sin(x) sur l'intervalle [-,] avec
200 points.
x=-pi:pi/100:pi;
y=sin(x);
plot(x,y);
Pour ces premiers exemples, les instructions taient crites directement dans la fentre de
commande. Pour des programmes plus longs, il faut utiliser un diteur de texte. Vous
utiliserez le bloc-notes que vous pouvez ouvrir ds que vous slectionnez la commande new
dans file de la barre de menu. Vous pourrez aussi appeler un fichier existant avec la
commande open et lancer l'excution d'un programme avec Run Mfile.
Attention les fichiers ne pourront tre excuts que si leur nom possde l'extension.m. Vous
pouvez crire des programmes qui en appellent d'autres.
Traitement du Signal 17
FIEEA 2011
Il est possible galement de crer vos propres fonctions MATLAB auxquelles on doit
transmettre un ou plusieurs paramtres. Exemple : on cre un fichier nomm sa.m
comprenant les lignes suivantes :
function Y=sa(X)
if X==0
Y=1
else
Y=sin(X)/X;
end
A chaque fois que lon demandera sa(V), on obtiendra lvaluation de sin(V)/V. Avant
lexcution de la fonction, la valeur du paramtre transmis est place dans X; le rsultat est
retourn dans la variable Y aprs que toutes les instructions aient t excutes.
Notez que les variables dune fonction de type function sont indpendantes des autres
variables, ce qui nest pas le cas lorsque le fichier ne dbute pas par linstruction function
.
1.6 Macro-instructions
Bien que chaque instruction puisse tre entre directement au clavier, il est souvent utile de
grouper un ensemble dinstructions excuter qui sera identifi par un seul nom et qui
pourra tre conserv et dit volont. Ceci est possible en plaant les instructions dans un
fichier dont le nom se termine par .m .
Traitement du Signal 18
FIEEA 2011
A chaque fois que graphe sera appel du clavier ou dun autre fichier, la courbe de Y en
fonction de X sera trace lcran avec affichage du titre et identification des axes (on
suppose ici que les vecteurs X et Y ont t pralablement dfinis avant lappel de GRAPHE)
Afin de lire des donnes utiles l'excution, on peut procder de deux faons : soit en
interrompant l'excution du programme et en demandant l'utilisateur d'indiquer les
donnes, soit en lisant un fichier de donnes. Cette deuxime solution tant bien souvent
prfrable.
Pour interrompre l'excution et demander une valeur, on utilise la commande input, dont
voici un exemple d'utilisation :
Pour lire des fichiers de donne, on utilise la commande fscanf dont le principe de
fonctionnement est voisin de la commande fprint. Pour lire la donne data dans le fichier
ficdon, on utilisera la suite de commande suivante :
Pour plus d'informations, faire help fscanf, help fopen et help fclose. Il existe d'autres mthodes de
lecture et d'criture sur fichier, faire help iofun pour plus dinformations.
Maintenant, vous disposez de tous les outils ncessaires l'criture des programmes.
y(t) = a cos (2 f t), sur 128 point avec a = 1, f = 10 Hz, et fe = 100 Hz.
Traitement du Signal 19
FIEEA 2011
Sn(t)= a n sin(2 n f t) f = 10 Hz
Sn(t)= a n sin(2 n f t) f = 10 Hz
transfert est :
Traitement du Signal 20
FIEEA 2011
Introduction Simulink
Simulink est un outil de MATLAB qui permet de remplacer les quations mathmatiques
entre certaines variables par des blocs. Lorsquon simule un schma en mode externe avec
loutil Real-Time Workshop (RTW), les donnes sont acquises et transformes en temps
rel.
Cette boite contient une liste de bibliothques disponibles, ainsi quun menu semblable
ceux auquel vous tes familier dans les logiciels de traitement de texte.
Donc, pour ouvrir un nouveau fichier, il suffit de cliquer avec la souris sur licne , alors
Traitement du Signal 21
FIEEA 2011
Lorsquun module simulink est ouvert vous pouvez, en vous dplaant dans la liste des
librairies, importez les blocs dsirs sur lespace de travail.
Pour importer un bloc dans votre fichier de travail, glissez le losange qui est devant le nom
du bloc jusqu' votre espace de travail. Vous pouvez rechercher un lment de la liste en
tapant une partie de son nom dans la case libre suivi de ENTER .
Vous pouvez vous exercer en essayant de raliser ce petit module fig. 2.2, avec lequel vous
allez pouvoir simuler une opration de quantification dun signal sinusodal.
A ce stade vous allez pouvoir ajuster les paramtres de chaque bloc dans votre module
simulink en double cliquant sur licne du bloc dsir. Par exemple, en double cliquant sur
Quantizer la fentre de la figure 2.3 va souvrir et vous allez pouvoir changer lintervalle de
quantification.
Traitement du Signal 22
FIEEA 2011
Avant de lancer la simulation vous devez fixer les paramtres de tous les blocs en vous
assurant que cela est conforme avec votre tude thorique.
cliquant sur Parameters sous longlet Solver fig 2.4, vous devez dfinir :
Enfin, lorsque les paramtres sont entrs, cliquez sur Start dans le menu Simulation ou
cliquer sur licne .
Le temps de simulation apparat dans la case en bas du fichier. Une fois que la simulation est
arrte, vous pouvez analyser les variables recueillies dans les blocs To Workspace et
Time Scope
La variable que vous avez dfinie dans le bloc To Workspace est transmise sur la fentre
de commande Matlab. Vous pouvez comparer son contenu en la traant, avec ce que donne
Time Scope.
Traitement du Signal 23
FIEEA 2011
Note : Matlab ne garde en mmoire que les derniers points de la simulation. Pour dfinir le
nombre de donnes garder en mmoire, on double-clique sur le bloc Time Scope
contenant la donne, on clique sur le bouton Properties et sous longlet Data History, on
ajuste la longueur du vecteur tel que dsir comme sur le schma ci-dessous :
Comme pour la simulation en mode normal, il est possible de rcuprer les donnes
fentre suivante :
Properties et, sous longlet Data History, en cochant Save Data to Workspace. Puisque le
Time Scope contient 2 graphiques, donc deux variables, il est impossible de rcuprer les
donnes en format Matrix , mais il faut le faire en format Structure with Time . Nous
expliquerons dans la suite comment transformer cette variable en donne manipulable.
Traitement du Signal 24
FIEEA 2011
Pour rcuprer les donnes gnres par la simulation, il faut insrer dans le schma un bloc
provenant de la librairie Simulink, Sinks. Les deux blocs les plus utiliss sont le Time
Scope et To Workspace . Ce dernier enregistre les donnes dans MATLAB mais ne les
affiche pas, contrairement l'oscilloscope. Les ajustements de l'oscilloscope ont t dcrits
la section prcdente. Pour le bloc To Workspace , il faut suivre les tapes suivantes
(avant l'excution de la simulation):
Une fois la simulation excute, on sauve les donnes dans des variables en crivant dans la
fentre de commande MATLAB ou encore dans le M-File les commandes suivantes:
t=ScopeData(:,1)
y=ScopeData(:,2)
Le nom ScopeData doit tre remplac par le nom de variable que l'on a choisi lorsque l'on a
ajust les paramtres de l'oscilloscope ou du bloc To Workspace . Les donnes de la
premire colonne de cette variable correspondent au temps o ont t prlevs les
chantillons, tandis que les valeurs de la deuxime colonne sont les rsultats eux-mmes.
1. TRAVAIL RALISER AU LABORATOIRE
OBJECTIF
Le but de ce travail est de se familiariser avec la technique de drag and drop de Simulink
en valuant la rponse impulsionnelle dun systme linaire (filtre) et en simulant le filtrage
dun signal.
INTRODUCTION
La rponse impulsionnelle h(t ) dun systme linaire est la sortie du systme si lentre est
limpulsion de Dirac (t ) . Dans ce travail vous devrez valuer la rponse impulsionnelle
dun systme linaire et lafficher graphiquement. La fonction de transfert dun systme de
quatrime ordre vous sera prcise au laboratoire.
Vous devrez galement valuer la rponse lchelon dun systme. Vous aurez loccasion
dobserver les diffrentes rponses obtenues selon la position des ples du systme.
Traitement du Signal 25
FIEEA 2011
La dernire partie du travail traite du filtrage dun signal. Le but est dobserver la sortie dun
filtre Butterworth dont lentre est un signal tel quune onde carre priodique.
7. Vu que le but est dvaluer la rponse impulsionnelle plutt que la rponse lchelon et
vu que les transforme de Laplace de (t) et u(t) sont :
1
t 1 et u t
s
il faudra annuler le ple introduit par lchelon. Vous pouvez effectuer ceci en
multipliant H ( s ) par s, et ainsi annuler le ple de u (t ) par ce zro. Vous devrez ainsi
double-cliquer sur la bote Transfer function et programmer le numrateur par la
vecteur [1 0].
Traitement du Signal 26
FIEEA 2011
b) la sortie du Scope.
c) Imprimer un plot par Matlab de la sortie a partir des donnes sur Workspace, qui
contient le titre du graphique et les identifications des deux axes.
noter que pour le cas p2 p1 , il faudra remplacer les deux botes par une seule
dont la fonction de transfert est :
1 1 2s 2 Re p
H s 2
s 2 Re p s p
s p s p 2
4. Prparer les lments du rapport remettre (pour chacun des trois cas) :
Traitement du Signal 27
FIEEA 2011
1. Programmer une bote Transfer function pour simuler le filtre Butterworth suivant :
1
H s
s 2.613s 3.414 s 2 2.613s 1
4 3
4. Ajuster la priode du gnrateur dimpulsions pour que la sortie du systme soit assez
semblable son entre sauf pour un lger lissage. Imprimer le rsultat.
1
H s ,
s 1
imprimer la sortie et indiquer le type du filtrage qui a produit sa forme.
7. Observer la valeur finale de la sortie. Le filtre ayant admis uniquement les basses
frquences, expliquer la raison de la valeur finale de la sortie observe.
Traitement du Signal 28
FIEEA 2011
0.0 Objectifs
Construire et visualiser un signal qui soit la somme de deux signaux sur 1024
points partir des vecteurs lignes:
w = .5*(1-cos(2*pi*t))
Traitement du Signal 29
FIEEA 2011
w = (.42-.5*cos(2*pi*t)+.08*cos(4*pi*t) ;
Traitement du Signal 30
FIEEA 2011
0.0 Objectifs
La comparaison sera effectue sur des signaux synthtiques dont on matrise lamplitude,
la phase et la frquence de rsonance. On tudiera les avantages et les inconvnients
rsultants lutilisation de quelques fentres : Rectangulaire, Hamming et Blackman.
1. Crer et visualiser un bruit blanc b(t) de moyenne nulle et de variance 2 sur 1024
points.
1. Construire et visualiser un signal y(t) qui soit la somme du deux signaux s(t) (1) et le
bruit blanc b(t) sur 1024 points.
Traitement du Signal 31
FIEEA 2011
Remarque
Lors de lanalyse spectrale dun signal de longue dure, nous navons accs, en pratique,
qu une portion limite de ce signal. Le spectre obtenu correspond donc au spectre du signal
analyser auquel une fentre a t pralablement multiplie. La figure ci-dessous illustre
cette opration.
Figure 3.1
Exemple
Figure 3.2
Cette opration de limitation de dure du signal ne se voit pas en pratique, surtout lorsquon
utilise une fentre rectangulaire. Et cest le cas des trois premires questions o la limitation
de la dure du signal consistait ne considrer que les chantillons dsirs.
Comme on peut le constater, la fentre f(t) doit tre telle que le spectre Y() puisse tre
considr comme une approximation acceptable de X(), le spectre du signal complet.
Plusieurs tudes ont t effectues pour dterminer la forme optimale de la fentre utiliser.
Les principales caractristiques dune fentre peuvent tre mises en vidence en utilisant, par
exemple, un signal x(t) sinusodal de frquence 0. Comme on le sait, le spectre X() de la
Traitement du Signal 32
FIEEA 2011
sinusode nest form que deux impulsions de Dirac situes 0; le spectre Y() sera donc
( un facteur prs) F(+0) + F(-0) et nous permettra dvaluer la qualit de la fentre selon
les deux critres (figure 3.3) suivants :
Figure 3.3
Des exemples de fentres de troncation sont illustrs par la figure 3.4
Traitement du Signal 33
FIEEA 2011
TRAVAIL EFFECTUER
Au dbut de la sance, deux fentres vous serons dsignes. Vous utiliserez le logiciel
MATLAB pour :
mettre en vidence par une simulation pertinente (1) la supriorit dune fentre sur lautre
en ce qui a trait la rsolution spectrale,
(1)
deux sinusodes de frquences trs proches lune de lautre
mettre en vidence par une simulation pertinente (2) la supriorit dune fentre sur lautre
en ce qui a trait ltalement spectral.
(2)
une sinusode damplitude forte + une sinusode de frquence diffrente et
damplitude faible
Traitement du Signal 34
FIEEA 2011
des figures illustrant la supriorit dune fentre sur lautre en ce qui a trait la
rsolution spectrale,
des figures illustrant la supriorit dune fentre sur lautre en ce qui a trait ltalement
spectral,
le listage comment des commandes MATLAB utilises.
Traitement du Signal 35
FIEEA 2011
TP 4 Filtrage Numrique
0.0 Objectifs
Lobjectif de ce TP est dapprendre comment implmenter des filtres FIR sous Matlab et
dtudier la rponse de ces filtres face diffrentes entres.
1. Introduction
Nous allons dfinir un filtre comme un systme en temps discret qui convertit un signal
dentre x[n] en un signal de sortie y[n] laide de moyennes de la somme pondre
M N
y[n] = bk x[n-k] - a l y(n-l) (4.1)
k 0 l 1
Lquation (4.1) donne une rgle pour calculer la n-ime valeur de la squence de sortie
partir de certaines valeurs de la squence dentre. Les coefficients du filtre {b k) et (al) sont
des constantes qui dfinissent le comportement du filtre. Par exemple, considrons le
systme pour lequel les valeurs de sortie sont donnes par :
Cette quation nonce que la n-ime valeur de la squence de sortie est une moyenne de la
n-ime valeur de la squence dentre x[n] et des deux valeurs prcdentes, x[n -1] et
x[n 2]. Pour cet exemple, les b k sont : b0 = 1/3, b1 =1/3 et b2 =1/3.
Matlab a une fonction du nom de filter() pour excuter lopration dans (4.1).
Traitement du Signal 36
FIEEA 2011
j n + j (n -1) +
y [n] = 1 A e +1Ae (4.4)
2 2
j n + 1 {1 + e - j}
=Ae (4.5)
2
Dans (4.4), il y a deux termes, lentre originale et un terme qui est une fonction de .
j
Ce second terme est la rponse frquentielle et est communment note H (e ).
j - j
H (e ) = 1 {1 + e } ( 4.6 )
2
j
Une fois que le rponse frquentielle H (e ) est dtermine comme une fonction de ,
leffet du filtre sur nimporte quelle exponentielle complexe pourrait tre dtermin en
j
valuant H (e ) la frquence correspondante. Le rsultat sera un nombre complexe dont
la phase dcrit la phase de transition de la sinusode complexe et dont lamplitude dcrit le
gain appliqu la sinusode complexe.
Matlab a une fonction pour calculer la rponse frquentielle dun systme LTI et discret en
temps. Elle sappelle freqz ( ). Les lignes de commande suivantes de Matlab montrent
Traitement du Signal 37
FIEEA 2011
comment utiliser freqz pour calculer et imprimer lamplitude (en valeur absolue) de la
rponse frquentielle dun systme (de 2 points) comme une fonction de dans
lintervalle - :
ww = -pi : ( pi/100) : pi ;
h = freqz ( bb, 1, ww ) ;
Nous utiliserons toujours le H majuscule pour la rponse frquencielle. Pour les filtres FIR
de la forme de (4.1), le second argument de freqz doit toujours tre gal 1.
Dans les sections suivantes, nous allons tudier la manire dont un filtre affecte une entre
sinusodale, et nous commencerons comprendre la performance du filtre en tant que
fonction de la frquence dentre. Nous verrons que :
La frquence en temps discret pour des courbes en cosinus en temps discret, , satisfait
toujours 0 .
Traitement du Signal 38
FIEEA 2011
Ceci est communment appel fisrt-difference filter, mais avec un gain de 5. Sous Matlab
vous devez dfinir le vecteur bb ncessaire dans firfilt.
1. Noter que y[n] et x[n] ne sont pas de la mme longueur. Quel est longueur du signal
filtr, et pourquoi est-il de cette longueur? (Si vous avez besoin dune indication, referez
vous la section (4.1)
2. Tracez les 50 premiers chantillons des deux courbes x[n] et y[n] sur la mme figure
en utilisant subplot. Utilisez la fonction stem pour un trac du signal (en temps discret),
mais tiquetez laxe des x pour rester dans lintervalle 0 < n < 49.
7. Drivez lexpression mathmatique pour la sortie lorsque le signal dentre est une
jn
exponentielle complexe x[n] = e . A partir de cette formule, dterminez comment
lamplitude et la phase devraient changer pour x[n], qui a une frquence de = 0.125.
Traitement du Signal 39
FIEEA 2011
3. Crez un autre signal dentre xc qui est la somme de xa et xb. Faites passer xc travers
le filtre pour obtenir yc. Faire le trac de yc. Comparez yc au trac de ya + yb. Sont-ils
gaux? Expliquez toute diffrence que vous observerez.
puis le filtrer xs[n] en utilisant loprateur du premier ordre pour obtenir ys[n]. Comparez ys
yy, la sortie quand lentre est xx. Trouvez un dcalage de yy (en nombre dchantillons)
afin quil saligne parfaitement ys.
Traitement du Signal 40
FIEEA 2011
0.0 Objectifs
L'objet de ce TP est la synthse d'un filtre R.I.F phase linaire par le calcul des
coefficients du filtre satisfaisant les conditions imposes par un gabarit. Ces coefficients
seront obtenus par la technique du dveloppement en sries de Fourrier.
1 Thorie
H ( f )e
2 jfn
hn
1 / 2
2- Mthode
L'ide consiste donc dfinir h(n) comme la transforme de Fourier inverse discrte de
H(k=N); k 1,2 N-1. De cette manire, Hd(k) et H(f) concideront aux frquences
f = k=N, mais seront en gnral diffrentes aux autres frquences (voir illustration ci-
dessous). La procdure comprend donc les tapes suivantes :
Traitement du Signal 41
FIEEA 2011
n 1
1
hn
N
X ( k )e
k 0
2 jkn / N
3 - Travail effectuer
On dsire effectuer la synthse d'un filtre passe-bas la phase linaire dont le gabarit
est donne par:
2. N= 200 Fc = 0.15
3. N=100; Fc = 0.25
Traitement du Signal 42