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 :

Transformée de Fourier Inverse - symétrie [Débutant]


Sujet :

Signal

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 57
    Points : 44
    Points
    44
    Par défaut Transformée de Fourier Inverse - symétrie
    Bonjour à tous,

    j'ai un petit soucis qui normalement ne devrait pas poser de problème...
    Voilà en fait j'ai synthétisé un spectre en fréquence sous matlab (donc pas à partir d'un signal temporel), et je cherche à obtenir le signal temporel associé.

    J'ai utilisé la fonction intégrée à Matlab ifft, mais au lieu de me rendre un signal temporel, il me rend un second spectre (différent, mais un spectre quand même). L'aide Matlab ne m'a pas aidée à trouver une solution à ce problème. Est ce que j'ai oublié quelque chose, ou faut-il effectuer une manipulation particulière?


    Merci d'avance!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    As-tu pensé à symétriser ton spectre avant?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Je viens de tenter l'expérience, mais ça m'a juste symétrisé le spectre qu'il me donnait...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Peux-tu nous montrer ton code?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Le voici :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
     
    vecf = (1 : 25000);
     
    fr = 2500;
    wr = 2*pi*fr;
    w = 2*pi*vecf;
     
     
    R = 7E-3;
    L = 0.5;
    c = 340;
    lv = 4E-8;
    lt = 5.6E-8;
    Cpv = 1.4;
     
     
     
     
    alpha = 2/(R*c^(3/2))*(sqrt(lv)+(Cpv - 1)*sqrt(lt));
     
    for jj = 1:length(w)
     
        k(jj) = w(jj)/c - i^(3/2)/2*alpha*c*w(jj)^(1/2);
     
        C(jj) = 1/(1 + exp(-2*i*k(jj)*L)) - exp(-2*i*k(jj)*L)/(1 + exp(-2*i*k(jj)*L)); % Spectre synthétisé
     
    end
     
     
     
    for jj = length(w)+1:2*length(w)
     
        C(jj) = C(2*length(w) - jj + 1); %Symétrisation du spectre
     
    end
     
    iC = ifft(C); %Transformée inverse
     
     
     
    figure
    plot(abs(C))
    title('Impédance d''entrée')
     
    figure
    plot(abs(iC))

    J'espère que les 2-3 indications suffiront pour le rendre compréhensible!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Il faut faire attention de prendre la partie réelle de la sortie de l'ifft.
    La symétrisation n'est pas bonne.
    J'ai modifié quelques autres points.

    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
    vecf = 1 : 25000;   % parenthèses pas obligatoires
     
    fr = 2500;
    wr = 2*pi*fr;
    w = 2*pi*vecf;
     
    R = 7E-3;
    L = 0.5;
    c = 340;
    lv = 4E-8;
    lt = 5.6E-8;
    Cpv = 1.4;
     
    alpha = 2/(R*c^(3/2))*(sqrt(lv)+(Cpv - 1)*sqrt(lt));
    C = zeros(length(w),1); % Allocation : voir la <a href="http://matlab.developpez.com/faq/?page=programmation#programmation_preallocation_comment" target="_blank">FAQ</a>
    for jj = 1:length(w)
        k = w(jj)/c - i^(3/2)/2*alpha*c*w(jj)^(1/2);    % Inutile de remplir un autre vecteur
        C(jj) = 1/(1 + exp(-2*i*k*L)) - exp(-2*i*k*L)/(1 + exp(-2*i*k*L)); % Spectre synthétisé    
    end
     
    symC = [C; conj(C(end-1:-1:2))];    % Symétrisation
    iC = ifft(symC); %Transformée inverse
     
    figure
    subplot(211),plot(abs(C))
    title('Impédance d''entrée')
    subplot(212),plot(abs(symC))
    title('Impédance d''entrée symétrisée')
     
    figure,plot(real(iC))
    title('Signal temporel')

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Génial ça marche merci!

    Juste à une chose prés, pour la concaténation lors de la symétrisation, à priori il faut plutôt une "," que ";" (ça ne marchait pas avec le ";" c'est peut-être dû à ma version de matlab...)

    Bonne journée, et merci encore!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Transformée de fourier inverse
    Par Moisenberg dans le forum Signal
    Réponses: 0
    Dernier message: 11/05/2014, 14h30
  2. Transformée de Fourier et son inverse
    Par altaruk dans le forum MATLAB
    Réponses: 1
    Dernier message: 08/04/2014, 10h45
  3. Réponses: 1
    Dernier message: 20/04/2011, 21h10
  4. inverse de transformée de Fourier avec fenetrage et recouvrement de 50%
    Par divide dans le forum Traitement du signal
    Réponses: 1
    Dernier message: 12/10/2009, 12h18
  5. Pic d'une Transformée de Fourier Inverse en C++
    Par Programmeur_Aladdin dans le forum Traitement d'images
    Réponses: 15
    Dernier message: 10/03/2008, 11h22

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