如何使用 python 设计一个 Butterworth 滤波器,指定我的截止频率为 0.1 Hz?

在这里,我试图创建一个截止频率为 0.1 Hz 的高通巴特沃斯数字滤波器。我已经实现了以下代码,但我不确定它是否正确


#%% creating the filter 

# filter parameters 

order=6

btype='highpass'

cutoff_frequency=0.1*2*np.pi

analog=False


b, a= signal.butter(order,cutoff_frequency,btype, analog)

w, h = signal.freqs(b, a)


plt.figure() 

plt.plot(w, 20 * np.log10(abs(h)))

plt.xscale('log')

plt.title('Butterworth filter frequency response')

plt.xlabel('Frequency [radians / second]')

plt.ylabel('Amplitude [dB]')

plt.margins(0, 0.1)

plt.grid(which='both', axis='both')

plt.axvline(0.1*2*np.pi, color='green') # cutoff frequency

plt.show()

我的困惑是关于截止频率,我将其乘以 2*pi,因为据我了解,scipy.signal.butter 的 cutoff_frequency 对应于以 rad/s 为单位的角频率。


墨色风雨
浏览 313回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python