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

Calcul scientifique Python Discussion :

D'où viennent les artifactes de la FFT de mon signal?


Sujet :

Calcul scientifique Python

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut D'où viennent les artifactes de la FFT de mon signal?
    Salut tout le monde, Je suis vraiement desepérée à la recherche de la cause des artifactes dans le fft de mon signal.
    N'ayez pas peur de la longeur du code, la partie importante est tout en bas, au début c'est juste la déclaration des variables et fonctions.

    Le tout revient à réaliser un signal disant s_pos et un autre s_neg. le s_neg n'est rien d'autre que s_pos mis au negatif et miroité. Étant ainsi, j 'attends que la transformé de Fourrier de s_neg qu'elle soit la même que: -np.conjugate(S_pos) puisque s_pos est réelle. Mais apparament le miroitement d'une convolution me donne des artifactes. Est-ce que quelqun pourrait SVP me dire pourquoi? et comment je fais pour m'en débarasser et retrouver la même chose pour :

    S_neg (Bleu) et S_neg_expected(Rouge) (Voir fichier attaché)?? Merci d'avance !!!

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    import numpy as np
    import matplotlib.pyplot as plt
     
    amp = 18e-3 
    a = 1/.61e3
    b = 5.5
    fs=5e6
    f0 = fs/2/102
    t_min = 0 
    dt = 1./fs
    t_max = (10772) * dt
    t = np.arange(t_min,t_max,dt)
    x_min = -amp/b
    x_max = amp/b
    dx =  dt*(x_min-x_max)/(t_min-t_max)
    x = np.arange(x_min,x_max,dx)
     
    def Lorentzian(xx):
        if not hasattr(xx, '__iter__'):
            xx = [ xx ]
        res = np.zeros(len(xx))
        for i in range(len(xx)):
            x = xx[i]
            if np.fabs(x) < 0.1:
                res[i] =  1./3. - x**2/15. + 2.* x**4 / 189. - x**6/675. + 2.* x**8 / 10395. - 1382. * x**10 / 58046625. + 4. * x**12 / 1403325.
            else:
                res[i] = (1./x**2 - 1./np.sinh(x)**2)
        return res
     
     
    def distrib(x):
        res = np.zeros(np.size(x))
        res[int(3*np.floor(np.size(x)/5))] = 6
        res[int(3*np.floor(np.size(x)/5)+20)] = 6
        return res
     
     
    def mirror(seq):
        output = list(seq[::-1])
        return output
     
     
    func1 = lambda x : Lorentzian(b*(x/a))
    x_s = lambda t : amp * np.cos(2*np.pi*f0*t)/b
    signal = lambda x : np.convolve(distrib(x), func1(x)-func1(x)[0], 'same')
     
     
    ###### Partie importante ######
    s_pos = signal(x_s(t[0:102]))
    s_neg = mirror(-s_pos)
     
    S_pos = np.fft.fft(s_pos)
    S_neg_expected = -np.conjugate(S_pos) 
    S_neg = np.fft.fft(s_neg)
     
    plt.figure()
    plt.plot(S_neg_expected,'r')
    plt.plot(S_neg,'b')
    Images attachées Images attachées  

Discussions similaires

  1. [Artifactory][Nexus]Limiter les artifacts par leur nom
    Par inconnu652000 dans le forum Maven
    Réponses: 4
    Dernier message: 20/08/2009, 19h20
  2. Jointure : savoir de quelle table viennent les données
    Par anonyme! dans le forum Requêtes
    Réponses: 6
    Dernier message: 04/01/2009, 11h46
  3. Comment interpréter les résultats de la FFt ?
    Par kloofi dans le forum Signal
    Réponses: 2
    Dernier message: 09/11/2008, 10h04
  4. Properties embarquées dans les artifacts
    Par Saloucious dans le forum Maven
    Réponses: 0
    Dernier message: 14/11/2007, 16h41
  5. Réponses: 1
    Dernier message: 08/05/2007, 12h14

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