Professional Documents
Culture Documents
ISSATSO 2010
Sommaire
Manipulation 0 Initiation au logiciel MATLAB ................ 3 Manipulation 1 Les Transformations de Fourier .............. 10 Manipulation 2 Systmes Linaires Continus Filtrage Analogique.......................................................................... 15 Manipulation 3 Lchantillonnage ................................... 23
RHIF Ahmed
ISSATSO 2010
RHIF Ahmed
ISSATSO 2010
Affiche le rpertoire (directorie) o vous oprez en ce moment. what, dir : Affiche la liste les noms des fichiers contenus dans le rpertoire actuel. help nom_fonction : Donne un descriptif de la fonction et ses arguments dentre sortie. 4- Oprations sur les variables >>d=a+b+c >>e=a+b*c >>f=(a+b)*c >>g=(a/b)*c >>h=a^2 5- Les matrices et les variables vectorielles Matlab est optimis pour lusage matriciel : Eviter les formulations non matricielles. [ a b c ] est un vecteur ligne. [a ;b ;c ;] est un vecteur colonne. V est le transpos du vecteur V u=1:5 est le vecteur [1 2 3 4 5] (de mme que [1 :5] et (1 :5). t=0 :2 :15 est le vecteur [0 2 4 6 8 10 12 14] sin(t) est le vecteur [sin(0) sin(2) sin(14)] zeros(1,N) est le vecteur ligne nul N lments. Ones(1,N) est le vecteur ligne N lments gaux 1. 6- Oprations sur les vecteurs Il faut respecter les dimensions des vecteurs et matrices. Gnration automatique dun vecteur V=dbut:pas:fin; On dfinit une valeur de dbut : dbut On dfinit une valeur de fin : fin On dfinit un pas de progression linaire ou logarithmique (incrmentation) : pas ; si le pas nest pas spcifi, il est gal 1 automatiquement. >>v3=1:10 >>v4=1:-0.5:-1
RHIF Ahmed Dp. Gnie Electronique
ISSATSO 2010
>>debut=0;fin=256;pas=8; >>v5=debut:pas:fin >>debut=0;fin=2*pi;pas=0.1; o pi dsigne le nombre 3.14 >>v5=debut:pas:fin Une liste des fonctions les plus courantes est disponible dans laide en ligne en tapant la commande (elfun dsigne elementary functions : sin, cos, log, exp) >>help elfun 7- Les matrices Saisir la matrice 3x3 suivante : a=[1 2 3 ;4 5 6 ;7 8 9] Noter que deux lignes sont spares par un point virgule. Si vous entrez la commande a(:) vous obtenez le vecteur colonne [1 4 7 2 5 8 3 6 9]. La fonction eig donne les valeurs propres de la matrice a. zeros(N) est la matrice nulle NxN, eye(N) est la matrice identit NxN. II- ROGRAMMATION 1-LES SCRIPTS Plutt que de taper les commandes au clavier les unes aprs les autres pour effectuer une tche, ce qui vous oblige refaire la mme chose chaque utilisation de cette tche, il est prfrable de grouper les commandes dans un fichier extension .m, ainsi tous les programmes auront pour nom name.m. Il suffit alors de taper name pour que la tche sexcute. Exemple 1 Crez un fichier qui sappelle essai1.m, qui gnre un signal sinusodal x(t) de n points, puis visualisez le laide de la commande plot(x). Etape 1 : dition du fichier par la commande : edit essai1.m Etape 2 : taper les commandes suivantes dans la fentre ddition : ce fichier gnre et affiche une sinusode : t=0:0.1:2*pi; % t est le vecteur temps avec un pas dchantillonnage 0.1 x=sin(t); % le signal x est un vecteur de mme taille que le vecteur t
RHIF Ahmed Dp. Gnie Electronique
ISSATSO 2010
plot(t,x) ;grid on % dessine lcran x en fonction de t Remarques : 1- Le texte dbutant par % est un commentaire de votre choix, il est ignor par le logiciel. Vous pouvez supprimer ces commentaires, mais ils sont utiles lorsquon a plusieurs programmes. 2- Chaque instruction doit tre suivie dun point virgule. Etape 3 : Sauvegardez le fichier dans le rpertoire en cours ; Etape 4 : Excutez le programme en entrant la commande suivante : >>essai1 2- Utilitaires graphiques Les instructions : title(titre de la courbe ou la figure) ajoute un titre la figure visualise. xlabel(titre des abscisses) affiche un titre horizontal suivant x. ylabel(titre des ordonns) affiche un titre vertical suivant y. grid on et grid off quadrille ou non le graphique. Exemple 2 Gnrez, laide dun programme prog1.m, deux priodes des deux signaux x(t)=cos(t) et y(t)=sin(t) et visualisez les deux signaux sur une mme figure, lune en rouge et lautre en bleu laide de la fonction plot(t,x,b,t,y,r). Mettre une lgende. Exemple 3 Visualisez sur une mme figure, laide dun programme prog2.m, les quatre signaux cos(t), sin(t),log10(t) et exp(t) en utilisant la fonction subplot(.,.,.) qui divise lcran en quatre sous figures : (2,2,1),(2,2,2),(2,2,3) et (2,2,4). >>subplot(2,2,1),plot(t,x); Saisie dune donne au clavier : Pour saisir une variable x partir du clavier, on utilise linstruction : x=input(x=) ;
RHIF Ahmed
ISSATSO 2010
Affichage dun message lcran : Pour afficher lcran un message personnel suivi dun retour la ligne : fprintf(message personnel \n) ; Affichage de la valeur dune variable : Pour afficher lcran la valeur dune variable x : fprintf(x=%d) ; III- LES FONCTIONS Si plusieurs de vos programmes personnels utilisent en commun une liste dinstructions, il est prfrable de regrouper ces instructions sous forme dun programme indpendant. A chaque besoin on appelle le dit programme par son nom : cest une fonction. Une fonction possde des paramtres dentre et des paramtres de sortie, dont la syntaxe de dclaration est la suivante : function [sortie1,sortie2,]=nom_fonction(entre1,entre2,) Le programme matlab correspondant la fonction doit porter le mme nom que la fonction : nom_fonction.m Exemple 1 : Calcul de la moyenne arithmtique m dun vecteur v de dimension n : m=
1 n v(i) n i =1
function resultat=moyenne(v,n); %dclaration de la fonction r=0; %initialisation de la moyenne for k=1:n r=r+v(k); end resultat=r/n;
RHIF Ahmed Dp. Gnie Electronique
ISSATSO 2010
>>moyenne(1:100,100)
Comparer avec la fonction matlab mean.
Exemple 2
Crez une fonction puissance.m qui donne la valeur efficace s et la puissance moyenne p dun signal. x tant un vecteur de composantes x(i) , i=1..n, la valeur efficace de x est :
S=
p=
1 n ( x(i) x) n i =1
Testez cette fonction sur un signal sinusodal damplitude A et de priode 1. Comparer avec la fonction matlab std.
H.
Fonctions conseilles :abs(x),angle(x) et log10(x).
RHIF Ahmed
ISSATSO 2010
2- Utilisez la fonction spectre dans un programme indpendant myfilter.m pour tracer les diagrammes de Bode des filtres passe bas et passe haut dont les fonctions de transferts sont dfinies par :
Raliser : Une fonction factoriel(n) qui calcule le factoriel dun entier naturel. Une fonction somme(x,n) qui calcule s(x,n). Un programme prog3.m qui calcule la valeur de lexponentiel de 2 avec une prcision (incertitude relative) suprieure 95% (incertitude infrieur 5%).
RHIF Ahmed
ISSATSO 2010
Objectif :
Dans ce TP on cherche comparer entre la mthode MATLAB et la mthode mathmatique vis--vis le calcul de la transforme de Fourier dune fonction. Ensuite on va mettre en vidence la restitution du signal temporel ainsi que leffet du dcalage frquentiel sur le spectre.
1 La transforme de Fourier
La transforme de Fourier F est une opration qui transforme une fonction intgrable en une autre fonction, dcrivant le spectre frquentiel de cette dernire. Si x(t) est une fonction intgrable, sa transforme de Fourier est la fonction X(f) donne par la formule :
1 X ( f ) = x(t )e 2jft dt T 0
2 La transforme de Fourier inverse
Le signal utile est toujours exprim dans le domaine spatial (temporel), donc aprs avoir filtr un signal dans le domaine frquentiel on besoin de transformer la rsultante dans le domaine spatial pour pouvoir ensuite lutilis. La transforme de Fourier inverse est exprime comme suit :
x(t ) =
X ( f )e
2jft
df
RHIF Ahmed
ISSATSO 2010
t=-5:Te:5;
RHIF Ahmed
11
ISSATSO 2010
%II- Calcul de la transformee de Fourier de x(t) : methode Matlab %A) Transformee de Fourier: x(t) -> X(f)
%1) Definitions prealables
n1=length(x); f1=linspace(..);;
RHIF Ahmed
ISSATSO 2010
xlabel('Frequence f (en Hz)') ylabel('Amplitude du signal') 1) Interprter la figure et conclure quelle est la mthode la plus adquate (mthode formelle ou matlab).
RHIF Ahmed
13
ISSATSO 2010
y=x.*(exp(i*2*pi*fo*t));
RHIF Ahmed
14
ISSATSO 2010
Objectif :
Lobjectif de ce travail pratique est de mettre en application les connaissances acquises sur la Transforme de Fourier et le filtrage. Nous verrons, grce Matlab, les diffrences existantes entre le filtrage idal (Partie 1) utilis en thorie et le rel (Partie 2) appliqu dans divers domaines tels que la tlcommunication, llectronique, lautomatique
%Dfinitions pralables
T=5; Fe=100; Te=1/Fe; fc=2/T;
RHIF Ahmed
15
ISSATSO 2010
16
ISSATSO 2010
title('Reprsentation frquentielle du filtre passe-bas idal H(f) de frquence de coupure fc=2/T') xlabel('Frquence f') ylabel('Amplitude de H(f)')
3) Calcul et trac de X(f) entre 2 et 2 Hz %Transforme de Fourier de la fonction porte (appele x) : X(f) = TF[x(t)]
Xf=.;
y (t ) = x * h(t ) =
Y ( f ) = X ( f ).H ( f )
%Calcul de Y(f) = H(f) . X(f)
Yf=Hf.*Xf;
RHIF Ahmed
17
ISSATSO 2010
%Reprsentation frquentielle
figure(4)
RHIF Ahmed
ISSATSO 2010
legend('y(t) = h(t) * x(t)') On peut observer une dformation de notre signal de sortie y(t) par rapport lentre x(t) : signal porte. Ceci peut sexpliquer par la suppression dharmoniques de frquences f < -Fe/2 et f > Fe/2, do une perte dinformation.
RHIF Ahmed
19
ISSATSO 2010
EXPLICATION
Plus la frquence de coupure du signal augmente, plus le filtre H(f) laisse passer de lobes du sinus cardinal. Comme les lobes pour lesquels f tend vers linfini sont damplitude quasiment nulle, leur nergie peut tre considre comme nulle. Ainsi, plus la frquence de coupure est grande plus les nergies de X(f) et Y(f) sont proches. Quand fc tend vers linfini, on peut considrer que X(f) et Y(f) ont mme nergie. En effet, pour les frquences filtres par H(f), Y(f) est damplitude quasiment nulle, on rcupre alors la totalit du spectre de X(f). Comme la Transforme de Fourier conserve lnergie du signal entre le domaine frquentiel et le domaine temporel, y(t) a la mme nergie que Y(f). De mme, x(t) et X(f) ont mme nergie. On en dduit donc que y(t) a mme nergie que x(t). Ceci sexplique car quand fc est trs grand, la perte dinformations est minimale lors du filtrage. Ici, pour fc=50Hz, on constate que le signal de sortie y(t) est le mme que le signal dentre x(t) savoir une porte. On en dduit quune frquence de coupure de 50 Hz est suffisamment grande pour minimiser la perte dinformations.
Le phnomne de Gibbs
Lors de l'tude des sries de Fourier et des transformes de Fourier, il apparat parfois une dformation du signal, connue sous le nom de phnomne de Gibbs. Ce phnomne est un effet de bord qui se produit proximit d'une discontinuit, lors de l'analyse d'une fonction drivable par morceaux. Le phnomne fut mis pour la premire fois en vidence en 1848 par Wilbraham, mais cette dcouverte ne connut gure d'cho. En 1898, Albert Michelson dveloppa un systme mcanique capable de calculer et sommer la srie de Fourier d'un signal donn en entre. Il observa alors un effet d'amplification des discontinuits, qui persistait malgr l'augmentation du nombre de coefficients calculs. Alors que Michelson souponnait un dfaut dans la fabrication de son engin, Gibbs montra que le phnomne tait d'origine mathmatique et se produisait dans des conditions trs gnrales. En 1906, Maxime Bcher donna la premire interprtation satisfaisante du phnomne auquel il donna le nom de phnomne de Gibbs qui est, en quelque sorte, un dfaut d'approximation pour une fonction continue de classe C1 par morceaux.
RHIF Ahmed
20
ISSATSO 2010
RHIF Ahmed
21
ISSATSO 2010
Le phnomne de Gibbs est plus frquent en utilisant les portes discontinues et les signaux numriques. Comme solution on pourra utiliser des portes de type Gibbs (portes continues) : Sinus\ Cosinus\ Triangulaire\ Harming\ Blackman\ Kaiser
RHIF Ahmed
22
ISSATSO 2010
Manipulation 3 Lchantillonnage
Objectif
Lobjectif de ce travail pratique est de mettre en application les connaissances acquises sur lchantillonnage, quil soit idal ou rel. Nous verrons tout au long de ce TP, deux mthodes de discrtisation du signal. On pourra alors juger et comparer les rsultats de chaque technique.
X ( f ) = x(k )e 2jfk
k
On utilise une somme au lieu dune intgration point par point (cas des signaux analogique) pour faire le calcul sur des segments (priodes dchantillonnages). La transforme de Fourier numrique inverse est la suivante :
1/ 2
x( k ) =
X ( f )e
1 / 2
2jfk
df
RHIF Ahmed
ISSATSO 2010
II / Echantillonnage idal
On discrtise le signal x(t) dfini prcdemment par un chantillonneur idal, savoir un peigne de Dirac. Donc par la thorie :
Shannon non-
24
ISSATSO 2010
plus la perte dinformation pendant lchantillonnage est faible. Ce qui est tout fait logique car en augmentant la frquence Fe, on diminue Te = 1/Fe , impliquant la rcupration dun plus grand nombre dchantillons. Cependant pour effectuer un bon chantillonnage, cest--dire un chantillonnage sans perte dinformation, il est important de respecter le thorme de Shannon. Pour cela, il faut et il suffit que Fe >= 2*fmax Dans notre cas : Fe >= 2*f0 pour respecter le thorme de Shannon : - On peut observer la perte dinformation pour xe1(t) avec Fe = 5 Hz On ne retrouve plus du tout lenveloppe du signal x(t) respect Contrairement xe1(t) & xe2(t) respectivement pour Fe = 10 Hz et 15 Hz o lon voit bien apparatre lenveloppe du sinus cardinal %Dfinitions pralables Fe=[5 10 30]; %Dfinition du domaine temporel t1=-2:..:2; %Dfinition du signal x(t) x1=.. ; Shannon respect Shannon non-
RHIF Ahmed
ISSATSO 2010
Le second facteur dans lchantillonnage moyenneur est T. Quand T tend vers 0, T tend vers (t) limpulsion de Dirac. Or chantillonner avec T = (t) reviendrait au cas idal : celui qui permettrait le meilleur chantillonnage du signal x(t). On peut donc en dduire que plus
RHIF Ahmed
26