Mit der Funktion von scipy0.16 ist es möglich geworden, die Visualisierung der Zeitänderung des erfassten Signals nach Anwendung der FFT einfach zu schreiben. Es ist möglich, so etwas wie eine Sprachanalyse mit beliebigen Daten durchzuführen. In meiner Mac-Umgebung habe ich Python in Anaconda eingefügt und die Version von scipy war also alt
conda update scipy
Und Scipy neu gemacht. Wenn Sie die Zeit nicht im Auge behalten möchten, verwenden Sie das fftpack von scipy.
Ich habe mit Anaconda, Python2.7, Scipy0.16, Mac OSX gebaut
Die FFT-Funktion von scipy.fftpack kann das Signal eines stationären Signals visualisieren, es ist jedoch schwierig, die Frequenzänderung eines instationären Signals in Zeitrichtung zu visualisieren. Sie können die zeitliche Änderung des FFT-Ergebnisses mithilfe des Spektrums von scipy.signal visualisieren.
Versuchen Sie beispielsweise, Ihre eigenen Daten zu verwenden. Hier habe ich eine CSV-Datei namens data.CSV mit der Zeit in der ersten Spalte und den Daten in der zweiten Spalte im selben Verzeichnis wie das Skript fft.py abgelegt. Die Daten wurden bei 10 kHz erfasst.
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 #Abtastfrequenz
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"Zeit[sec]")
plt.ylabel(u"Frequenz[Hz]")
# plt.colorbar()
plt.show()
Das nperseg von signal.spectrogram ist die Anzahl der Frequenzunterteilungen. Wenn Sie dies ändern, ändert sich die Anzahl der Unterteilungen. Standard 256. Da die Farbkarte je nach eingestellter Frequenz schwer zu erkennen ist, ist es ratsam, den vmax / vmin-Wert von pcolormesh von matplolib anzugeben.
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