FFT转换

import numpy as np import pandas as pdimport matplotlib.pyplot as plt from matplotlib.pylab import mplmpl.rcParams[‘font.sans-serif’] = [‘SimHei’] #显示中文 mpl.rcParams[‘axes.unicode_minus’]=False #显示负号data_broken= pd.read_csv(‘broken.csv’,usecols=[‘value’]).dropna()data_healthy = pd.read_csv(‘healthy.csv’,usecols=[‘value’]).dropna()data_broken= data_broken[147500:155000].valuesdata_broken= data_broken.reshape(len(data_belt),) #超级重要,少了这行FFT怎么转都失败data_healthy= data_healthy[131000:138000].valuesdata_healthy= data_healthy.reshape(len(data_normal),) #超级重要,少了这行FFT怎么转都失败sampling_rate = 10000 #取样频率,ex:每秒取10000笔,则频率为10000Hzfft_size = len(data_healthy) t = np.arange(0, 1.0, 1.0/sampling_rate)xs = data_healthyxf = np.fft.rfft(xs)/fft_sizefreqs = np.linspace(0, sampling_rate/2, fft_size/2+1)xfp = np.abs(xf)fft_size_b = len(data_broken) t_b = np.arange(0, 1.0, 1.0/sampling_rate)xs_b = data_brokenxf_b = np.fft.rfft(xs_b)/fft_size_bfreqs_b = np.linspace(0, sampling_rate/2, fft_size_b/2+1)xfp_b = np.abs(xf_b)plt.figure(figsize=(20,10))plt.subplot(211)plt.plot(t[:fft_size], xs, color=’blue’)plt.xlabel(u”Time(S)”)plt.title(“data_healthy”)plt.show()plt.subplot(212)plt.plot(t_b[:fft_size_b], xs_b, color=’red’)plt.xlabel(u”Time(S)”)plt.title(“data_broken”)plt.show()plt.figure(figsize=(20,5))plt.plot(freqs, xfp, color=’blue’)plt.xlabel(u”Freq(Hz)”)plt.title(“data_healthy_FFT”)plt.show()plt.figure(figsize=(20,5))plt.plot(freqs_b, xfp_b, color=’red’)plt.xlabel(u”Freq(Hz)”)plt.title(“data_broken_FFT”)plt.show()

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章