你知道如何从FFT中去除这么多的噪声吗? 这是我的FFT代码:
import numpy as np
fft1 = (Bx[51:-14])
fft2 = (By[1:-14])
# Loop for FFT data
for dataset in [fft1]:
dataset = np.asarray(dataset)
psd = np.abs(np.fft.fft(dataset))**2
freq = np.fft.fftfreq(dataset.size, float(300)/dataset.size)
plt.semilogy(freq[freq>0], psd[freq>0]/dataset.size**2, color='r')
for dataset2 in [fft2]:
dataset2 = np.asarray(dataset2)
psd2 = np.abs(np.fft.fft(dataset2))**2
freq2 = np.fft.fftfreq(dataset2.size, float(300)/dataset2.size)
plt.semilogy(freq2[freq2>0], psd2[freq2>0]/dataset2.size**2, color='b')
有什么想法吗?韦尔奇不工作,所以你可以看到,我不想平滑我的图表,但消除了如此多的噪音水平,这是在第二张图片。在
^{pr2}$一点代码:
# Loop for FFT data
for dataset in [fft1]:
dataset = np.asarray(dataset)
freqs, psd = welch(dataset, fs=266336/300, window='hamming', nperseg=512)
plt.semilogy(freqs, psd/dataset.size**2, color='r')
for dataset2 in [fft2]:
dataset2 = np.asarray(dataset2)
freqs2, psd2 = welch(dataset2, fs=266336/300, window='hamming', nperseg=512)
plt.semilogy(freqs2, psd2/dataset2.size**2, color='b')
如你所见,韦尔奇配置良好,它显示了60赫兹的电力线,和谐波模式。这几乎是好的,但它完全抚平了我的阴谋。如图2所示。顺便说一句,在韦尔奇图上,y比例是错误的,但这只是两个人的功率数据。在
下面是一个示例,演示如何使用
nperseg
来控制频率分辨率与降噪的权衡:将
nperseg
设置为信号长度或多或少相当于使用FFT而不进行任何平均。在以下是生成此图像的代码:
相关问题 更多 >
编程相关推荐