快速傅立叶变换去噪 Python

问题描述 投票:0回答:0

我想对我的 Swat 数据集进行降噪。在此数据集中,actuator_columns 具有 0-1 值。传感器列具有数值。我将 OneHotEncoding 用于执行器,将 Standardscaler 用于传感器。 72列 然后我尝试实现快速傅里叶变换来去噪。 我的代码是:

signals=df.to_numpy() 
def filter_signal(signal, threshold=1e8):
fourier = rfft(signal)
frequencies = rfftfreq(signal.size, d=20e-3/signal.size)
fourier[frequencies > threshold] = 0
return irfft(fourier)
filtered = filter_signal(signals[0, 0 :], threshold=1e3)
plt.figure(figsize=(15, 10))
plt.xlabel('Frequencies')
plt.ylabel('Amplitude')
plt.plot(signals[0, 0 :], label='Raw')
plt.plot(filtered, label='Filtered')
plt.legend()
plt.title("FFT Denoising with threshold = 1e3", size=15)
plt.show()

在这段代码之后,我对 72 大小的过滤数组进行了去噪。

在去噪部分之后,我想实施 IsolatonForest 进行异常检测。 所以我需要在 IsolatıonForest 模型中使用的数据框。我试过了

pd.DataFrame(filtered)

但有 1 列 72 行。所以我不能将它用于我的模型。 去噪部分后如何获得数据帧?我该如何解决这个问题?

致以诚挚的问候。

python machine-learning noise anomaly-detection noise-reduction
© www.soinside.com 2019 - 2024. All rights reserved.