在下面的代码中,我从音频样本(1000Hz信号)中提取了一个数据窗口。在代码中,我试图获得信号的波长。 https://paste.pound-python.org/show/HRVqQNy3w9Sr73q4oY8g/
sample = data[100:200]
x = 0
i = 1
num_occur = 0
while num_occur <2:
if sample[i] == sample[0]:
x = i
i += 1
num_occur += 1
else:
i += 1
wavelen = sample[:x]
但却没有那么成功。。。 样本的图像:(https://pasteboard.co/HFFXGxW.png)
嗯,我知道问题是什么;尽管matplotlib将波绘制为连续波(由于采样频率高),但波是由离散数据组成的,因此可能存在或不存在满足以下条件的数据值:
sample[i] == sample[0]
我将非常感谢任何关于如何解决这个问题的帮助和建议
有人教我如何得到答案。这是一个简单但合乎逻辑的方法。 所以我只需要提取切割为0的点,第1个和第3个连续点之间的波会给我一个波长
下面是我写的代码:
也许我能做得更有效率:),如果是的话请告诉我。 这是波长的图像https://pasteboard.co/HFLtOmr.png
相关问题 更多 >
编程相关推荐