我正在尝试使用 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 ft = 150 rp = 0.3 rs = 55 order = 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))