Transformée de fourier, traitement de signal, python
Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

Transformée de fourier, traitement de signal, python



  1. #1
    invite3d1447ee

    Transformée de fourier, traitement de signal, python


    ------

    Bonjour si quelqu'un pouvait m'aider ça serait vraiment top de votre part

    alors j'ai un projet sur python en traitement de signal. Nous avions un fichier de base donné comprenant deux colonnes : la premiere de temps et la deuxième les valeurs d'un signal reçu correspondantes.

    dans un premier temps je devais tracer le signal recu j'ai alors fais ce premier code :
    Code:
    import numpy as np
    import matplotlib.pyplot as plt
    Y = np.loadtxt('Projet4_cas1.txt')
    plt.figure(figsize=(30,6))
    plt.subplot(1,2,1)
    plt.plot(Y[:,0],Y[:,1])
    plt.title("signal 1")
    plt.show
    plt.subplot(1,2,2)
    plt.plot(Y[:,0],Y[:,1])
    plt.title("zoom")
    plt.axis([0, 0.00003, -5, 5])
    plt.show
    Ici je ne pense pas qu'il y ai de problème, j'ai obtenu mon graphe. Mais par la suite, on me demande d’appliquer un algorithme de fft afin de déterminer le contenu fréquentiel global et de représenter le spectre obtenu. Alors avec certaines explications que j'ai eu j'ai créé ces programmes :


    Code:
    import math
    import numpy as np
    from matplotlib.pyplot import *
    from numpy.fft import fft, ifft
    
    def signal(t):
        N=t.size
        
        YF=fft(Y)
        Y2=ifft(YF)
        print(YF)
        
        A=np.zeros(N//2)                 #vecteur qui contient les ampliude on l'initialize et on veut que les fréquence positif
        A=np.abs(YF)/N                   #composante continue du signal
        for k in range (1,N//2):         #pour toue les fréquence positif non nul
            A[k]=2*np.abs(YF[k])/N
        return A    
        return YF
    
    ________________________________
    
    T=100
    fe = 0.7
    t= np.arange(start=0.0,stop=T,step=1.0/fe)
    
    echantillons = signal(t)
    
    tfd = fft(echantillons)
    N=len(echantillons)
    spectre = np.absolute(tfd)*2/N
    freq=np.arange(N)*1.0/T
    
    figure(figsize=(10,5))
    plot(freq,spectre,'r')
    xlabel('f')
    ylabel('A')
    axis([0,fe/2,0,spectre.max()])
    grid()

    Mes programmes me renvoient bien un graphique mais ce n'est pas celui attendu ... je ne comprends pas mon erreur et si quelqu'un pouvait me donner un coup de pouce j'en serais très reconnaissante...
    Merci d'avance !

    -----
    Dernière modification par Antoane ; 03/01/2020 à 12h39. Motif: Ajout balises code

Discussions similaires

  1. [Traitement de Signal] Transformée de Fourier
    Par invite822d7da3 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 15/08/2019, 21h22
  2. Transformée de fourier "appliquée" au traitement du signal...
    Par invite77533bb5 dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 30/12/2016, 19h15
  3. Traitement du signal (FFT Transformée de Fourier)
    Par invite1894b156 dans le forum Physique
    Réponses: 5
    Dernier message: 29/04/2015, 20h37
  4. Transformée de Fourier sur python
    Par inviteee92a741 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 15/04/2015, 21h11
  5. Traitement du signal / Theoreme de Shannon / Transformée de Fourier
    Par invited12acb67 dans le forum Électronique
    Réponses: 1
    Dernier message: 17/11/2013, 12h03