我正在尝试了解如何将过滤器(在本例中为Notch(阻带)过滤器)转换为Python,但我不知道如何。
x(n)=-2*x(n)/(-0.9*x(n) -0.9*x(n-1))
有人可以帮我吗?
提前致谢。
答案 0 :(得分:3)
如果你正在使用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.
答案 1 :(得分:0)
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]) )