简单的问题:每种方法的优点是什么.似乎给定正确的参数(和ndarray形状),它们看起来都是等效的.做一些工作吗?有更好的表现?我应该使用哪些功能?
我是python的新手,我正在尝试做一些基本的信号处理工作,而且我遇到了严重的性能问题.以矢量化方式执行此操作是否存在python技巧?基本上我正在尝试实现一阶滤波器,但滤波器特性可能会从一个样本变为另一个样本.如果它只是一个过滤器我会使用numpy.signal.lfilter(),但它有点棘手.这里的代码片段非常缓慢:
#filter state
state = 0
#perform filtering
for sample in amplitude:
if( sample == 1.0 ): #attack filter
sample = (1.0 - att_coeff) * sample + att_coeff * state
else: #release filter
sample = (1.0 - rel_coeff) * sample + rel_coeff * state
state = sample
Run Code Online (Sandbox Code Playgroud)