将过滤器函数转换为Python代码

时间:2012-07-14 16:21:23

标签: python filter signal-processing

我正在尝试了解如何将过滤器(在本例中为Notch(阻带)过滤器)转换为Python,但我不知道如何。

x(n)=-2*x(n)/(-0.9*x(n) -0.9*x(n-1))

有人可以帮我吗?

提前致谢。

2 个答案:

答案 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]) )