是否有内置numpy
函数来检查信号(数组)从哪个索引不会留下特定的错误带?
使用数字滤波器,我需要确定在scipy.signal.filtfilt
中使用的脉冲响应的长度。使用有限脉冲响应(FIR)滤波器非常容易,但使用无限脉冲响应(IIR)滤波器是不可能的。
但是,它会计算出脉冲响应不会留下某个误差带的点:
现在我使用快速而肮脏的解决方法,手动检查反向数组以获取错误范围之外的第一个值:
def ringing_time(sig, th):
return len(sig) - np.argmax(np.abs(sig[::-1]) > th)
是否有快速内置的numpy
方法?
答案 0 :(得分:0)
一般来说,没有。您正在利用一些不普遍适用的信号特定知识(信封随时间衰减)。如果您想以数字方式进行,我认为您的解决方案是一个很好的解决方案。
你可以做一些喜欢采用冲动响应方程式,用符号象征性地区分它并应用牛顿方法,但你必须处理它在正确的位置开始它所以它不属于一个本地极小。总的来说,我认为你处在一个好位置。