【发布时间】:2015-12-12 08:56:47
【问题描述】:
我是 python 新手,正在尝试做一些基本的信号处理工作,但遇到了严重的性能问题。是否有以矢量化方式执行此操作的 python 技巧?基本上我正在尝试实现一阶滤波器,但滤波器特性可能会从一个样本变为下一个样本。如果它只是一个过滤器,我会使用 numpy.signal.lfilter(),但这有点棘手。这是运行非常缓慢的代码的 sn-p:
#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
【问题讨论】:
标签: python arrays numpy filtering signal-processing