如何减少波形的点数?

1 投票
2 回答
1264 浏览
提问于 2025-04-16 05:17

我有这个,

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()

但是绘图很慢,还会让电脑卡住。我该怎么减少点的数量,或者怎么提高代码的性能呢?

2 个回答

0

在把数据放到图表里之前,可以用像NumPy这样的工具把数据的频率降低一下。

0

你可以通过这种方式,从你的数据中大致取出1000个均匀分布的点:

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

撰写回答