【发布时间】:2020-08-24 21:02:31
【问题描述】:
我正在尝试使用 python 中的 scipy 库创建一个带阻巴特沃斯滤波器,你能告诉我我做错了什么吗? fc1 是 1750,fc2 是 4100,fs 是 30000,ft 是 150。我已经定义了它们(fc 是截止频率区间之外的所有事物的并集,fc1 和 fc2,ft 是时间频率,rp 和 rs 是通带和阻带波纹, a 是幅度,wp(passband)、ws(stopband) 和 wn 是归一化频率。
我的错误:
ValueError: Wn must specify start and stop frequencies for bandpass or bandstop filter.
这是我到目前为止所拥有的代码: fs = 33000 r = 55 英尺 = 150 rp = 0.3 rs = 55 订单 = 3 a=1 fc1 = 1750 fc2 = 4100 fc=np.union1d(np.array([1,1750]),([4100,10000])) wp = (fc1-ft/2) *2/fs
ws = (fc2 + ft/2) *2/fs
N, wn = sp.buttord(wp, ws, rp, rs)
b, a = sp.butter(N, wn , btype = "bandstop")
w,h = sp.freqz(b, a, worN=512, plot=None)
f=(fs/2)*w/(np.pi)
plt.figure()
plt.plot(f,abs(h))
【问题讨论】:
标签: python filtering signal-processing butterworth