我是新来的python,我试图做一些基本的信号处理的东西,我有一个严重的性能问题。以矢量化的方式执行此操作有没有python技巧?基本上我试图实现一阶滤波器,但滤波器特性可能会从一个采样到另一个采样。如果它只是一个过滤器,我会使用numpy.signal.lfilter(),但它有点棘手。以下是代码片段非常缓慢:numpy阵列的快速迭代
#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