elif windowname == 'Kaiser': #需要两个输入参数 windowdata = np.kaiser(NFFT) elif windowname == 'Blackman': windowdata = np.blackman(NFFT) elif windowname == 'Hanning': windowdata = np.hanning(NFFT) else: windowdata = np.ones(1, NFFT) use_y = use_y * windowdata # fft Y = np.fft.fft(use_y, n=NFFT) / NFFT Y = 2 * abs(Y[0:NFFT / 2 + 1]) f = np.linspace(0, Fs / 2, NFFT / 2 + 1) plt.plot(x_new[0:NFFT], use_y[0:NFFT]) plt.show() plt.plot(f, Y) plt.show() print(NFFT) return [f, Y] step = dataclassment.classment(data, data['stamp'], data['Speed']) sample = step[0] ## 加噪音 x = np.linspace(0, 1, 10000) sinu1 = np.cos(2 * np.pi * 3000 * x - np.pi * 30 / 180) sinu2 = 1.5 * np.cos(2 * np.pi * 2000 * x - np.pi * 30 / 180) wave = sinu1[0:210] + sinu2[0:210] ## 用Myff函数 y = Myfft(sample['stamp'], sample['Speed'], 'Hanning', 0.0001, wave)
col.append(columns) sta = df.iloc[:, a:b].describe() for k in range(a, b): df['%s'%col[k]] = (df['%s'%col[k]]-sta['%s'%col[k]].loc['min'])\ /(sta['%s'%col[k]].loc['max']-sta['%s'%col[k]].loc['min']) return df df_norm = norm(df) plt.figure(figsize=(14, 6)) #plt.plot(df_norm['Temperature']) plt.plot(df_norm['Speed']) #plt.plot(df_norm['Torque']) plt.legend(loc='upper left') plt.show() step = dataclassment.classment(df, df['stamp'], df['Speed']) for i in range(0, len(step)): step[i] = step[i].reset_index([[0, 1, 2, 3]]) # 特征量取扭矩的裕度系数,转速的均值和均方根 def statics(df, feature, count): sta = df.iloc[:, 1:2].describe() sta.loc['margin_Tq'] = time_feature.margin(df['Torque']) sta.loc['rms_S'] = time_feature.rms(df['Speed']) sta.loc['average_S'] = sta.loc['mean'] feature['signal%d' % (count)] = sta.loc['margin_Tq':'average_S']['Speed'] return sta feature = pd.DataFrame()