我有一个我要处理的开/关键控wav文件。为此,我已将wav文件读入数组。最大值为1,最小值为0.我想将此数组转换为系统是否在wav文件中的给定时间键入的表示。所以,在有正弦曲线的地方,我想在时域中在新缓冲区中创建一个大矩形。我怎么能用Python做到这一点?
编辑:也许我可以通过信号处理和SciPy来做到这一点。但是如何?
答案 0 :(得分:0)
不是100%确定这就是你的意思。如果你只是想检查numpy数组中的哪些值为零(或小于给定值),你可以简单地在数组上使用比较运算符,如下所示
import numpy as np
A = np.sin( np.arange(0, 2*np.pi, np.pi/20) ) # some sine wave
A < 0.1 # or == 0.0, gives an array containing True and False
但是在你的情况下,你可能只想连续计数一些零,因为当信号仍然打开时,正弦波也可能为零。一个简单的解决方案是取两个邻居的平均值,如此
average = (A[:-1] + A[1:]) / 2
希望这是你正在寻找的。 p>