SciPy中 Butterworth滤波器的模拟与数字版本

我对 SciPy 中的巴特沃斯滤波器的模拟和数字版本有一个问题,我尝试了两件事来获得一个数字巴特沃斯滤波器:

我对 SciPy 中的巴特沃斯滤波器的模拟和数字版本有一个问题,我尝试了两件事来获得一个数字巴特沃斯滤波器:

通过scipy.signal.erog=True获得一个模拟滤波器,然后使用scipy.signal.bilinear将其转换为数字滤波器。

直接从函数scipy.signal.er获取og=False

我从这两种方法得到了不同的结果。我应该期望这两种方法产生相同的结果吗?我的代码:

from scipy import signal
b1, a1 = signal.er(1, 1, 'high', og=True)
print("og filter: ", [b1, a1])
fs = 100
b2, a2 = signal.bilinear(b1, a1, fs)
print("digital filter from bilinear transformation of og filter: ", [b2, a2])
b, a = signal.er(1, 1*2/fs, 'high', og=False)
print("digital filter: ", [b, a])

输出:

og filter:  [array([1., 0.]), array([1., 1.])]
digital filter from bilinear transformation of og filter:  [array([ 0.99502488, -0.99502488]), array([ 1.        , -0.99004975])]
digital filter:  [array([ 0.96953125, -0.96953125]), array([ 1.        , -0.93906251])]
0

我只是通过阅读一些关于数字滤波器的材料来得到这个问题的答案a note about digital filter

The bilinear transformation formula between ogue filter and digital filter gives us a non-linear relationship between the ogue frequency formula and digital frequency formula as introduced in the material.

formula

因此,如果需要数字滤波器,最好直接从scipy.signal.er设计它。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(362)
Spotifyapi身份验证未在Facebook和 Spotify上登录
上一篇
UE4.24.1高级会话插件-Steam专用服务器-找不到服务器02-15-2020 11:15PM
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(9条)