1 pièce(s) jointe(s)
calculer fft d'un signal sinusoïdale
bonjour,
mon projet consiste à analyser des signaux à fréquence inconnu dans le but d'en extraire les composantes fréquentielles, pour se faire, j'ai créer un signal signal sinusoïdale que j'ai stocker dans un fichier csv (pour simuler après les signaux que je vais récupérer pour analyse), puis j'essai avec mon code d'extraire la fft pour en extraire les harmoniques
mon problème est que le code que j'ai me renvoies un spectre erroné.
voila mon code
Code:
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
| import numpy
import matplotlib.pyplot as plt
from matplotlib.pyplot import *
from scipy.fftpack import fft
x=numpy.genfromtxt(r'C:\Users\souag\Desktop\pywav\sinus.csv', delimiter=',')
time=x[:,][:,0]
sine=x[:,][:,1:5]
print (sine[0:30])
time=time-time[0]
plt.subplot(2,1,1)
plt.plot(time,sine,'r')
axis([0,2,-2,4])
grid()
T=200.0
fe=10.0
Te=1/fe
N=int(T*fe)
tfd=numpy.fft.fft(sine)
f=numpy.arange(0,N)
figure(figsize=(10,4))
vlines(f,[0],numpy.absolute(tfd),'b')
xlabel('f')
ylabel('C')
axis([0,20,0,10])
grid() |