python带通滤波_python中的fft带通滤波器
值得注意的是,bp單位的大小不一定是以Hz為單位,而是取決于信號的采樣頻率,你應該使用
scipy.fftpack.fftfreq進行轉換.此外,如果您的信號是真實的,您應該使用
scipy.fftpack.rfft.這是一個最小的工作示例,過濾掉低于指定數量的所有頻率:
import numpy as np
from scipy.fftpack import rfft, irfft, fftfreq
time = np.linspace(0,10,2000)
signal = np.cos(5*np.pi*time) + np.cos(7*np.pi*time)
W = fftfreq(signal.size, d=time[1]-time[0])
f_signal = rfft(signal)
# If our original signal time was in seconds, this is now in Hz
cut_f_signal = f_signal.copy()
cut_f_signal[(W<6)] = 0
cut_signal = irfft(cut_f_signal)
我們可以在真實和更小的空間中繪制信號的演變:
import pylab as plt
plt.subplot(221)
plt.plot(time,signal)
plt.subplot(222)
plt.plot(W,f_signal)
plt.xlim(0,10)
plt.subplot(223)
plt.plot(W,cut_f_signal)
plt.xlim(0,10)
plt.subplot(224)
plt.plot(time,cut_signal)
plt.show()
總結
以上是生活随笔為你收集整理的python带通滤波_python中的fft带通滤波器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬取豆瓣电影并分析_Pyth
- 下一篇: 微软收购动视暴雪再遇阻 谷歌和英伟达:我