IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Signal Discussion :

Block FFT Visualisation


Sujet :

Signal

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Block FFT Visualisation
    Bonjour,

    Je voudrais connaitre la FFT d'un signal sous SIMULINK.

    Voici comment j'ai effectué mon schéma:

    Signal=>block fft=>Scope

    La sortie de fft étant un complex, je ne peux pas visualiser le spectre en fréquence de mon signal. Que dois-je faire?

    Merci d'avance pour votre réponse

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour.
    Une solution :

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    merci pour cet élément de réponse.

    Maintenant j'obtiens l'erreur suivante concernat le buffer: "Continous sample times not allowed"

    Effectivement, mon signal d'entrée est un signal continue.

    Il faudrait donc je le transforme en signal numérique.

    Je me trompe?

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    "Continous sample times not allowed"
    Tu as mis une valeur non nulle dans Sample time aux box des signaux d'entrée (0.001 parexemple) ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par phryte Voir le message
    Tu as mis une valeur non nulle dans Sample time aux box des signaux d'entrée (0.001 parexemple) ?
    Je pense qu'il y a un malentendu. En réalité, je veux établir le spectre de 2 signaux.

    Le premier étant l'entré d'une fonction de transfert de type 1/(1+to*s) (donc continu) et le second étant la sortie.

    Comment obtenir les spectres ?

    J'ai essayé en mettant:
    Signal=>zero-order hold (avec un sample time différent de 0)=>FFT=>Spectrum Scope

    Le spectrum scope est "vide" à la fin.

    savez vous où est mon erreur?

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Je ferais comme cela :

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Sur un même graphe :

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    ok, merci beacoup pour votre réponse! Malheureusement, je n'ai pas les résultats espérés...
    Je posterai une suite dès que j'en aurai le temps.
    Merci encore !

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour, en fait l'image schéma.jpg montre ce que je souhaite simuler.
    Le signal d'entrée e est donné par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    clear;
    clc;
    pas=0.0001;
    tmax=30;
    freq=5;
    alpha=1;
    A=4;
    B=2;
    def=pi*182/180;
    t=0:pas:tmax;
     
    y1= (A/2)*square((freq/2*pi)*t)+A/2;
    y2= (B/2)*square((freq/2*pi)*t+def)+B/2;
    y3=(1-exp(-alpha*t));
    e=y1+y2.*y3;
    Voici ce que j'utilise pour étudier le signal sous matlab.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    plot(t,e)
    % 
    % E = fft(e,512);
    % Pee = E.* conj(E) /512;
    % f = 100000000*(0:256)/512;
    % plot(f,Pee(1:257))
    Que ce soit sous Matlab ou Simulink, je n'obtiens pas les résultats désirés. Explication: Lorsque je cherche la FFT d'un signal carré de fréquence, je devrais obtenir une courbe avec les fréquences: f, 3f, 5f,... mais je n'obtiens pas ça.

    Lorsque je prends le signal crée sous Simulink et que je l'importe avec une boite to workspace, E (E = fft(e,512) n'a qu'une composante non nulle. Pourquoi?

    Y a t il un problème dans mon programme ou dans mon schéma SIMULINK?

    Merci pour vos réponses
    Images attachées Images attachées  

  10. #10
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour.
    Une solution avec Matlab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    NFFT=length(e);
    E = fft(e,NFFT);
    f = linspace(0,freq/2,NFFT/2);
    E_plot = abs(E(1:floor(NFFT/2)));
    figure(2)
    semilogx(f, 2*E_plot) 
    xlabel('Frequency [Hz]');
    ylabel('Amplitude');grid
    Avec simulink (le gain K est <0) :


  11. #11
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Pour la simulation, j'utilise les paramètres suivants:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Pulse Generator:
     
    	Pulse type:	Time Based
    	Time:		Use simulation Time	
    	Amplitude:	A
    	Period:		1/freq
    	Pulse Width:	50
    	Phase Delay:	0
     
    Pulse Generator1:
     
    	Pulse type:	Time Based
    	Time:		Use simulation Time
    	Amplitude:	B
    	Period:		1/freq
    	Pulse Width:	50	
    	Phase Delay:	def
     
    Ramp:
     
    	Slope:		1
    	Start time:	0
    	Initial output:	0
     
     
    Zero-Order Hold:
     
    	Sample time:	1
     
    Magnitude FFT:
     
    	Output:		Magnitude squared
    	FFT length:	256
     
    Vector Scope:		
     
    	Input domain:	Frequency
    En ce qui concerne l'étude du signal carré suivant: square(t) de fréquence 1/pi, voici la FFT que j'obtiens (cf FFT.JPG).
    Je ne retrouve pas les fréquences f, 3f, 5f,... Est ce normal?

    Vous m'avez déjà beaucoup aidé. MERCI!
    Images attachées Images attachées  

  12. #12
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Deux corrections et c'est bon :
    For example, generate a 30 Hz square wave:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    t = 0:.0001:.0625;
             y = SQUARE(2*pi*30*t);, plot(t,y)
     
    f = linspace(0,1/pas/2,NFFT/2);

Discussions similaires

  1. XSL pour visualiser arbre XML sous forme de tableau en HTML
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 28/03/2003, 10h55
  2. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56
  3. Visualisation des mise à jour en réseau
    Par fandor7 dans le forum Paradox
    Réponses: 2
    Dernier message: 06/12/2002, 15h54
  4. Algo de calcul de FFT
    Par djlex03 dans le forum Traitement du signal
    Réponses: 15
    Dernier message: 02/08/2002, 17h45
  5. FFT(Fast Fourier Transform)
    Par IngBen dans le forum Traitement du signal
    Réponses: 6
    Dernier message: 23/05/2002, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo