Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TP12- MATLAB3- Série de Fourier
- Durée: 3 heures
- But: Utiliser Matlab pour calculer le spectre bi-latéral d’un signal périodique l’afficher.
- 1/ Préparation
- Se connecter au réseau et exécuter:Q:\Devoir\PHY\TP1\TPmatlab\ PREPmatlab.bat
- ATTENTION: S’il est nécessaire de relancer MATLAB, utiliser avec le raccourci du bureau.
- Rappels
- •
- Vous disposez aussi d’une aide résumée DOCMatlab.pdf.
- •
- Les variables matlab sont des tableaux (matrix en anglais) de nombres (complexes etréels) dont il faut définir la (les) taille(s).
- •
- Le langage MATLAB permet une exécution immédiate des commandes tapées dans lafenêtre “command window”.
- •
- Il permet aussi la programmation de fonctions (cf.TPMatlab2 précédent).
- •
- Dans TPMatlab2_Program vous avez créé des fichiers “signaux” élémentaires permettantde créer des signaux variés.
- 2/ Série de Fourier bilatérale d’un signal périodique
- a/ Exemples
- Exécuter successivement les fonctions Spectre1 et Spectre2, en guise d’exemples du butrecherché.
- b/ Série de Fourier bilatérale avec Matlab
- Pour un signal périodique défini sur sa période, le calcul de la
- série de Fourier bilatérale (ck ) se fait par l’utilisation de la fonction: fft(x, T)/T,
- où x est le tableau_signal, et T est la fenêtre temporelle représentant la période du-dit signal.
- On notera que la fft d’un signal se calcule (habituellement) sur une fenêtre temporelle quiest une puissance de 2, soit 256, ou 1024 (ou etc...) points.
- Toutefois, quelques manipulations “de détail” sont nécessaires...
- c/ Etapes de programmation
- On souhaite programmer la fonction SerFourBi() qui réalisera le calcul de la série de Fourierbilatérale (d’un signal périodique préalablement défini) avec la fonction intégrée fft( ).
- 1- En-tête de la fonction:
- function [modu,argu]=SerFourBi(x,N)
- Taper les commentaires nécessaires.L’en-tête de cette fonction est donnée dans le fichier SerFourBi_0.m.
- Taper help SerFourBi_0.
- 2- Définir un tableau des valeurs "temps": t=0:N-1
- 3- Calculer le spectre en utilisant la fonction z= fft(x,N)/N (cf.le protocole du TP)
- avec le nombre N de points donné. Le tableau de sortie est ici z.
- PHY/TP1/PC 1
- 4- Réordonner le tableau de sortie, en un nouveau tableau nommé y en utilisant les boucles suivantes:
- for n=1:N/2
- y(n+N/2)=z(n);
- end
- for n=N/2+1:N
- y(n-N/2)=z(n);
- end
- 5- Extraire le module et l'argument de y. Rechercher dans l’aide les fonctions nécessaires: modu=?(y) et argu= ?(y)
- 6- Définir le tableau des valeurs de l'axe des "fréquences": f=t-N/2
- Remarque: il s’agit en fait du rapport f/fo (où fo est la fréquence fondamentale du signal)
- 7- Réaliser les 2 graphes: modu fonction de f et argu fonction de f,en utilisant la fonction plot().
- Remarque: affichages de points uniquement (sans ligne !).
- 3/ Amélioration du programme
- Ajouter les quelques lignes de programme nécessaires pour calculer et afficher la puissanceassociée au signal.
- Rappel: la puissance est la moyenne sur le temps du carré du signal
- et/ou la somme des |ck|²
- 4/ Spectre bilatéral de signaux périodiques simples
- Cette fonction doit permettre de calculer le spectre de n’importe quelle fonction périodique.
- a/ En commandes “immédiates”, c’est à dire dans la fenêtre de COMMANDES:
- 1- Créer un signal temporel dans le tableau x, en utilisant une fonction déjà faite (l'affichagegraphique du signal est recommandé). Par exemple x=Cren01(0.25,256)
- 2- Réaliser le spectre du signal en appelant la fonction créée au §2 précédent:
- >> [mM,mA]= SerFourBi(x,256);
- Le spectre (module & argument) devrait s'afficher!
- b/Déterminer les séries de Fourier bilatérales
- des signaux élémentaires du TPMatlab2:
- Cren01(0.5, 128),Cren01(0.25, 128),Trian01(0.5, 32),et Trian01(0.125, 32)
- Note: Utiliser l’éditeur de graphe dans la figure Matlab: Edit/Axes Properties..., pouraméliorer la figure (échelles, grilles...)
- Copier ces images et les résultats numériques des 4 signaux dans votre rapport.
- PHY/TP1/PC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement