我正在使用函数matplotlib.mlab.specgram 见链接执行一个谱图。它的一个参数是window函数,默认参数是hanning窗口。
我要应用这个函数的信号比分割信号的块的大小要长,即光谱仪的单片(我使用NFFT = 512)。
在这里,我的问题和我的问题:我想把窗口函数从默认的窗口函数-hanning_window()-改为window_none()。matplotlib.mlab.specgram的一个参数确实是更改窗口函数的window。但是,如果我只是在window=matplotlib.mlab.window_none()函数的参数中写入参数,就会发生错误,因为我没有指定必须应用窗口函数的数组。考虑到窗口函数必须应用于几个大小为NFFT的数组,而不是一个单独的数组,即信号被分割的每个长度NFFT块,我如何具体说明这个论点?
发布于 2014-02-11 23:23:27
从你链接到的文档:
matplotlib.mlab.specgram(x,NFFT=256,Fs=2,detrend=,window=,noverlap=128,pad_to=None,side=‘default’,scale_by_freq=None) ..。 窗口:可调用或ndarray
因为它要求window是可调用的(类似于函数句柄;参见Python中的“可调用”是什么?),所以它需要一个函数,而不是函数的结果。所以给它
window=matplotlib.mlab.window_none, window=matplotlib.mlab.window_none,
<other args here as necessary>)它将使用(非)窗口功能。
https://stackoverflow.com/questions/21715163
复制相似问题