Nos partenaires et nous-mêmes utilisons différentes technologies, telles que les cookies, pour personnaliser les contenus et les publicités, proposer des fonctionnalités sur les réseaux sociaux et analyser le trafic. Merci de cliquer sur le bouton ci-dessous pour donner votre accord. Vous pouvez changer d’avis et modifier vos choix à tout moment. Informations RGPD
# importation des librairies from numpy import pi, cos, linspace, log10 from scipy.fftpack import fft, fftfreq import matplotlib.pyplot as plt # Constantes du signal K = 2*pi f2 = 200 A0 = 1.3 f0 = 71 A1 = 0.3 f1 = 167 A2 = 1.2 t0 = 0 # début de l'acquisition du signal t1 = 10 # fin de l'acquisition (s) # définition des paramètres d'échantillonnage FreqEch = 1024 # fréquence d'échantillonage PerEch = 1./FreqEch # période d'échantillonnage N = FreqEch*(t1 - t0) # nombre de points échantillonnés sur l'intervalle t = linspace(t0, t1, N) # définition du signal signal = A0*cos(f0*K*t) + A1*cos(f1*K*t) + A2*cos(f2*K*t) # définition des donn�es de FFT FenAcq = signal.size # taille de la fenetre temporelle # calcul de la TFD par l'algo de FFT signal_FFT = abs(fft(signal)/N) # on ne récupère que les composantes r�elles # récupèration du domaine fréquentiel signal_freq = fftfreq(FenAcq,PerEch) # extraction des valeurs réelles de la FFT et du domaine fréquentiel signal_FFT = signal_FFT[0:len(signal_FFT)//2] signal_freq = signal_freq[0:len(signal_freq)//2] #affichage du signal plt.subplot(211) plt.title('Signal et son spectre') plt.ylim(-(A1+5), A1+5) plt.plot(t, signal) plt.xlabel('Temps (s)'); plt.ylabel('Amplitude') #affichage du spectre du signal plt.subplot(212) plt.xlim(0,f2+5) plt.plot(signal_freq,signal_FFT) plt.xlabel('Frequence (Hz)'); plt.ylabel('Amplitude') plt.title('Signal et son spectre') plt.show()