Matlab谱图和matplotlib谱图之间的区别?

时间:2016-07-06 12:10:40

标签: python matlab matplotlib spectrogram

我正在尝试使用Matplotlib将Matlab中预先存在的频谱图合并到我的python代码中。但是,当我输入窗口值时,存在一个问题:在Matlab中,值是标量,但Matplotlib需要一个向量。为什么会这样?

2 个答案:

答案 0 :(得分:1)

Matlab中的值是一个标量,因为它表示窗口的大小,Matlab默认使用汉明窗口。 Window参数也接受一个向量,因此您可以传入任何所需的窗口函数。

答案 1 :(得分:1)

论据的组织方式不同。

在matplotlib中,使用NFFT参数指定窗口大小。另一方面,window参数仅 用于指定窗口本身,而不是大小。因此,与MATLAB一样,window参数接受向量。但是,与MATLAB不同,它还接受一个函数,该函数应采用任意长度的向量并返回相同大小的另一个向量。这允许您使用窗口函数而不仅仅是向量。

因此,将它放在MATLAB术语中,MATLAB window参数分为matplotlib中的windowNFFT参数,而MATLAB NFFT参数相当于matplotlib pad_to参数。

至于原因,单独指定窗口和窗口大小允许您使用函数作为window的参数(实际上,它是默认值)。使用MATLAB参数这是不可能的。

在Python中,函数是第一类对象,而在MATLAB中却不是这样。因此,与MATLAB相比,将函数用作Python中其他函数的参数往往更为常见。 Python还允许您按名称指定参数,MATLAB实际上没有。因此,在MATLAB中,根据输入使参数执行不同的操作更为常见,而Python中的类似函数倾向于将这些参数拆分为多个独立参数。