如何减少波形点数?

发布于 2024-09-27 00:40:18 字数 280 浏览 4 评论 0原文

我有这个,

f = audiolab.Sndfile('test.wav', 'r')
data = f.read_frames(f.nframes, dtype=numpy.int16)

pyplot.rcParams['figure.figsize'] = 10, 2
pyplot.plot(data)
pyplot.xticks([])
pyplot.yticks([])
pyplot.show()

但是绘图很慢并且冻结了电脑,我可以减少点数或者如何提高代码的性能?

I have this,

f = audiolab.Sndfile('test.wav', 'r')
data = f.read_frames(f.nframes, dtype=numpy.int16)

pyplot.rcParams['figure.figsize'] = 10, 2
pyplot.plot(data)
pyplot.xticks([])
pyplot.yticks([])
pyplot.show()

but the ploting is slow and freeze the pc, hoy I can reduce the numbers of points or how can I increase the performance of the code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

薔薇婲 2024-10-04 00:40:18

您可以通过以下方式从数据中获取(大约)1000 个均匀分布的点:

n = len(data)
pyplot.plot(data[::n/1000])

You could take (roughly) 1000 evenly spaced points from your data this way:

n = len(data)
pyplot.plot(data[::n/1000])
橘亓 2024-10-04 00:40:18

在将数据添加到绘图之前,使用 NumPy 之类的工具将数据重新采样到较低的频率。

Use something like NumPy to resample the data to a lower frequency before adding it to the plot.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文