溢出错误图

2023-12-19

我想做声音/音频和音乐处理方面的事情。 在此之前,我创建了一个 10 秒扫描的样本信号。 我有一个简单的脚本,必须绘制一些信号。 第一个信号是一个简单的正弦波;第二次扫描;两者的频率都略低于奈奎斯特频率,所以没问题。

代码:

#import
import numpy as np
import scipy.signal as sig
import matplotlib.pylab as plt

f0 = 50
f1 = 20000 
t1 = 10
t = np.arange(0,t1,1/44100)#[numpy.newaxis]; 
print(t.shape)

sine = np.sin(2*np.pi*f0*t)

plt.plot(t, sine)
plt.xlabel('Angle [rad]')
plt.ylabel('sin(t)')
plt.axis('tight')
plt.show()

sweep = sig.chirp(t,f0,t1,f1,'linear',90) 

plt.plot(t, sweep)
plt.xlabel('Angle [rad]')
plt.ylabel('sin(t)')
plt.axis('tight')
plt.show()

当我运行 Python 代码时,它在简单的正弦波上运行良好,但在扫描时则不然。

它给出了以下错误:

runfile('C:/Users/****/Documents/python/test_sweep.py', wdir='C:/Users/****/Documents/python')
(441000,)

Traceback (most recent call last):

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\IPython\core\formatters.py", line 330, in __call__
return printer(obj)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\IPython\core\pylabtools.py", line 207, in <lambda>
png_formatter.for_type(Figure, lambda fig: print_figure(fig, 'png', **kwargs))

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\IPython\core\pylabtools.py", line 117, in print_figure
fig.canvas.print_figure(bytes_io, **kw)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\backend_bases.py", line 2158, in print_figure
**kwargs)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\backends\backend_agg.py", line 521, in print_png
FigureCanvasAgg.draw(self)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\backends\backend_agg.py", line 469, in draw
self.figure.draw(self.renderer)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\artist.py", line 59, in draw_wrapper
draw(artist, renderer, *args, **kwargs)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\figure.py", line 1085, in draw
func(*args)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\artist.py", line 59, in draw_wrapper
draw(artist, renderer, *args, **kwargs)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\axes\_base.py", line 2110, in draw
a.draw(renderer)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\artist.py", line 59, in draw_wrapper
draw(artist, renderer, *args, **kwargs)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\lines.py", line 715, in draw
drawFunc(renderer, gc, tpath, affine.frozen())

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\lines.py", line 1072, in _draw_lines
self._lineFunc(renderer, gc, path, trans)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\lines.py", line 1112, in _draw_solid
renderer.draw_path(gc, path, trans)

File "C:\Users\****\Documents\python\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\matplotlib\backends\backend_agg.py", line 163, in draw_path
self._renderer.draw_path(gc, path, transform, rgbFace)

OverflowError: Allocated too many blocks

改变频率时f1到采样频率的 10% 左右,我没有任何错误。 但我想在 CD 音频范围内创建一些扫描,那么发生了什么以及如何避免这个问题

编辑:我在 Windows/Ubuntu 上使用 Spyder 和 IPython。

编辑2:我知道屏幕分辨率不够精细...但除此之外GNU Octave/ Matlab/ ...它工作得很好。 具有相同数量样本的简单正弦波工作正常......所以它对数据点的反应不同......


感谢@ali_m 的推荐和他的链接,我找到了解决方案。

根据那里的答案我需要添加agg.path.chunksize10 000 到 100 000。 因为我不想这样做matplotlibrc文件我必须在脚本中这样做。

根据自己的讨论github https://github.com/matplotlib/matplotlib/pull/4464我找到了正确的方法。 我必须添加plt.rcParams['agg.path.chunksize'] = 10000到脚本,现在它工作正常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

溢出错误图 的相关文章

随机推荐