我试图了解如何将过滤器(在本例中为 Notch(阻带)过滤器)转换为 Python,但我不知道如何。
x(n)=-2*x(n)/(-0.9*x(n) -0.9*x(n-1))
任何人都可以帮助我吗?
提前致谢。
我试图了解如何将过滤器(在本例中为 Notch(阻带)过滤器)转换为 Python,但我不知道如何。
x(n)=-2*x(n)/(-0.9*x(n) -0.9*x(n-1))
任何人都可以帮助我吗?
提前致谢。
如果您使用的是 numpy 数组,这应该可以工作:
x[1:]=-2*x[1:]/(-0.9*x[1:]-0.9*x[:-1])
这会更改您的数组,但您可以轻松地将其分配给一个新数组。
y=-2*x[1:]/(-0.9*x[1:]-0.9*x[:-1])
请注意,对于第 0 个元素,您的算法并没有很好地定义,所以我的翻译x[0]
保持不变。
编辑
要将可迭代更改为 numpy 数组:
import numpy as np
x=np.array(iterable) #pretty easy :) although there could be more efficient ways depending on where "iterable" comes from.
result = []
#prime your result, that is, add the initial values to handle indexing
lower_bound = #
upper_bound = #
for n in range(lower_bound,upper_bound):
result.append( 2*result[n]/(-0.9*result[n] -0.9*result[n-1]) )