嗨,我有一個相當嘈雜的FFT。如何申請我的代碼漢明窗口,以減少噪音。看看我的代碼:海明窗口,python 2.7
plt.subplot(212)
plt.title('Fast Fourier Transform')
plt.ylabel('Power [a.u.]')
plt.xlabel('Frequency Hz')
fft1 = (Bx[51:-14])
fft2 = (By[1:-14])
for dataset in [fft1]:
dataset = np.asarray(dataset)
psd = np.abs(np.fft.fft(dataset))**2.5
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.5
freq2 = np.fft.fftfreq(dataset2.size, float(300)/dataset2.size)
plt.semilogy(freq2[freq2>0], psd2[freq2>0]/dataset2.size**2, color='b')
我所看到的(https://docs.scipy.org/doc/scipy-0.13.0/reference/generated/scipy.signal.hamming.html),這(https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.hamming.html),但仍不要沒有線索如何將其應用於我的代碼。有任何想法嗎?正如我所說你在第二張照片中看到了我需要的東西。 也許布萊克曼的窗戶也會很好的應用,但是還不知道如何添加它。
應用此:
freqs, psd = scipy.signal.welch(dataset, fs=300, window='hamming')
給我說,它不會出現像我期望的圖表。
它看起來像300不是實際的採樣率。我猜根據你的問題,所以使用你的實際採樣率(可能在900左右)。另外,請記住,Welch的方法通過犧牲頻率分辨率來計算功率譜的更平滑估計。 – bnaecker