Transformée de Fourier en python
Lola
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je ne comprend pas cette erreur sur mon programme (il est censé faire une TFD) :
J'obtiens cette erreur:
Traceback (most recent call last):
File "/media/A620-A5CF/Raspberry Pi/Programmation/ProjetISN.py", line 50, in <module>
plt.plot(signal_freq,signal_FFT)
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 2467, in plot
ret = ax.plot(*args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 3893, in plot
for line in self._get_lines(*args, **kwargs):
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 322, in _grab_next_args
for seg in self._plot_args(remaining, kwargs):
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 300, in _plot_args
x, y = self._xy_from_xy(x, y)
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 240, in _xy_from_xy
raise ValueError("x and y must have same first dimension")
ValueError: x and y must have same first dimension
Je ne comprend pas cette erreur sur mon programme (il est censé faire une TFD) :
# -*- coding: utf-8 -*-
# importation des librairies
import numpy as np
from numpy import linspace, mean
from scipy.fftpack import fft, fftfreq
import matplotlib.pyplot as plt
from scipy.io.wavfile import read
# nom du fichier à étudier
nomfile="7991.wav"
rate,signal = read(nomfile)
# définition du vecteur temps
dt = 1./rate
FFT_size = 2**18
NbEch = signal.shape[0]
t = linspace(0,(NbEch-1)*dt,NbEch)
t = t[0:FFT_size]
signal = signal[0:FFT_size]
signal = signal - mean(signal)
signal_FFT = abs(fft(signal))
# récupération du domaine fréquentiel
signal_freq = fftfreq(signal.size, dt)
# 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]
x = np.arange(signal_FFT)
y = np.arange(Amplitude)
#affichage du signal
plt.subplot(211)
plt.title('Signal reel et son spectre')
plt.plot(t,signal)
plt.xlabel('Temps (s)'); plt.ylabel('Amplitude')
#affichage du spectre du signal
plt.subplot(212)
plt.xlabel('Frequence (Hz)'); plt.ylabel('Amplitude')
Fmin = 0
Fmax = 4000
plt.xlim(Fmin,Fmax)
plt.plot(signal_freq,signal_FFT)
plt.show()
J'obtiens cette erreur:
Traceback (most recent call last):
File "/media/A620-A5CF/Raspberry Pi/Programmation/ProjetISN.py", line 50, in <module>
plt.plot(signal_freq,signal_FFT)
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 2467, in plot
ret = ax.plot(*args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 3893, in plot
for line in self._get_lines(*args, **kwargs):
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 322, in _grab_next_args
for seg in self._plot_args(remaining, kwargs):
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 300, in _plot_args
x, y = self._xy_from_xy(x, y)
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 240, in _xy_from_xy
raise ValueError("x and y must have same first dimension")
ValueError: x and y must have same first dimension
A voir également:
- Transformée de fourier python
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
- Exercice python - Forum Python