- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我们依次应用了 3 个过滤器:
b, a = iirfilter(...) # or bilinear(...) or anything else producing b, a
y = lfilter(b, a, x)
b, a = iirfilter(...)
y = lfilter(b, a, y)
b, a = iirfilter(...)
y = lfilter(b, a, y)
如何获取系数b2
, a2
相当于3个过滤器,这样我们只需通过一次lfilter
就可以找到结果:
y = lfilter(b2, a2, x)
<强>?
<小时/>编辑:卷积似乎不起作用:
fs = 44100
b2, a2 = iirfilter(2, 2.0/fs * np.asarray([40, 60]), btype='bandstop') # 50 hz reject
b3, a3 = iirfilter(2, 2.0/fs * np.asarray([85, 115]), btype='bandstop') # 100 hz reject
b = np.convolve(b2, b3)
a = np.convolve(a2, a3)
w, h = signal.freqz(b, a, worN=10000)
给出:
我尝试过 same
, full
, valid
np.convolve 的参数,但都没有解决问题。
最佳答案
您可以分别对分子和分母进行卷积
import scipy as sp
import scipy.signal as sig
# Individual filters
b1, a1 = sig.iirfilter(...)
b2, a2 = sig.iirfilter(...)
# Cascaded filter
a = sp.convolve(a1, a2)
b = sp.convolve(b1, b2)
y = sig.lfilter(b, a, x)
例如,您的采样率太高,并且复合滤波器的阶数不够长,无法对靠近的空值提供那么多的拒绝。降低采样率,然后内插至 44.1 kHz。
以下是采样率降低至 4410 Hz 时的结果。
fs = 4410.0
b2, a2 = sig.iirfilter(2, 2.0/fs * sp.asarray([40, 60]), btype='bandstop') # 50 hz reject
w2, h2 = sig.freqz(b2, a2, worN=4096)
b3, a3 = sig.iirfilter(2, 2.0/fs * sp.asarray([85, 115]), btype='bandstop') # 100 hz reject
w3, h3 = sig.freqz(b3, a3, worN=4096)
b = sp.convolve(b2, b3)
a = sp.convolve(a2, a3)
w, h = sig.freqz(b, a, worN=4096)
f = w/2.0*fs
然后将 IIR 滤波器的输出通过 10x 插值滤波器,以恢复到 44.1 kHz 采样率。
或者,减少过滤器阶数:
fs = 44100.0
b2, a2 = sig.iirfilter(1, 2.0/fs * sp.asarray([40, 60]), btype='bandstop') # 50 hz reject
w2, h2 = sig.freqz(b2, a2, worN=4096)
b3, a3 = sig.iirfilter(1, 2.0/fs * sp.asarray([85, 115]), btype='bandstop') # 100 hz reject
w3, h3 = sig.freqz(b3, a3, worN=4096)
b = sp.convolve(b2, b3, 'full')
a = sp.convolve(a2, a3, 'full')
w, h = sig.freqz(b, a, worN=4096)
其原始采样率为 44.1 kHz
关于python - 如何获得链式 IIR 滤波器的 b、a(分子/分母)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949293/
使用 threejs,我尝试使用以下示例: http://threejs.org/examples/#css3d_molecules 问题是在那个例子中,从灰色球到红色球的键应该是双键。我发现了一些建
我有一个分子测试,可以启动 2 个 Docker 容器,用于一次测试 2 个应用程序版本。 dependency: name: galaxy driver: name: docker lint
假设我们依次应用了 3 个过滤器: b, a = iirfilter(...) # or bilinear(...) or anything else producing b, a y = lfil
在显式传递命令后,服务模块似乎没有启动我的 docker 守护进程。 Ansible 未在目标主机中启动 docker 守护进程。任务: - name: Install Docker apt:
我见过有人使用 pip install docker-py 或 pip install 'molecule[docker]'。 我相信它们是相似的(等价的?) 我读了https://molecule.
我是一名优秀的程序员,十分优秀!