Avec la fonction de scipy0.16, il est devenu possible d'écrire facilement la visualisation du changement d'heure du signal acquis après application de la FFT. Il est possible de faire quelque chose comme l'analyse vocale avec des données arbitraires. Dans mon environnement Mac, j'ai mis python dans anaconda et la version de scipy était ancienne, donc
conda update scipy
Et a rendu Scipy nouveau. Si vous ne voulez pas garder une trace du temps, utilisez le fftpack de scipy.
J'ai construit avec anaconda, python2.7, scipy0.16, Mac OSX
La fonction FFT de scipy.fftpack permet de visualiser le signal d'un signal stationnaire, mais il est difficile de visualiser le changement de fréquence d'un signal non stationnaire dans le sens du temps. Vous pouvez visualiser le changement d'heure du résultat FFT en utilisant le spectre de scipy.signal.
Par exemple, essayez d'utiliser vos propres données. Ici, je mets un fichier CSV appelé data.CSV avec l'heure dans la première colonne et les données dans la deuxième colonne dans le même répertoire que le script appelé fft.py. Les données ont été acquises à 10 kHz.
fft.py
# -*- coding: utf-8 -*
import numpy as np
import matplotlib.pyplot as plt
from scipy import fftpack
from scipy import signal
plt.close('all')
input_file = u"data.CSV"
(time, data) = np.loadtxt(input_file,unpack=True, delimiter=",",usecols = (0,1))
fs = 10000.0 #Fréquence d'échantillonnage
f,t,Sxx = signal.spectrogram(data, fs, nperseg=512)
plt.figure()
plt.pcolormesh(t,f,Sxx,vmax=1e-6)
plt.xlim([0,18])
plt.xlabel(u"temps[sec]")
plt.ylabel(u"la fréquence[Hz]")
# plt.colorbar()
plt.show()
Le nperseg du signal.spectrogramme est le nombre de divisions de fréquence. Si vous changez ceci, le nombre de divisions changera. Par défaut 256. Puisque la carte des couleurs peut être difficile à voir en fonction de la façon dont la fréquence est définie, il est conseillé de spécifier la valeur vmax / vmin de pcolormesh de matplolib.
http://docs.scipy.org/doc/scipy-dev/reference/generated/scipy.signal.spectrogram.html#scipy.signal.spectrogram
http://docs.scipy.org/doc/scipy/reference/fftpack.html
Recommended Posts