例如,我们可以使用长度为16的窗口,以3作为偏差:
scipy.signal.windows.gaussian(16,3)
#returns :
array([0.04393693, 0.09563444, 0.18627046, 0.32465247, 0.50633562,
0.70664828, 0.8824969 , 0.98620712, 0.98620712, 0.8824969 ,
0.70664828, 0.50633562, 0.32465247, 0.18627046, 0.09563444,
0.04393693])
作为八度音阶产生的地方:
gausswin(16,3)
#returns :
0.011109
0.034047
0.088922
0.197899
0.375311
0.606531
0.835270
0.980199
0.980199
0.835270
0.606531
0.375311
0.197899
0.088922
0.034047
0.011109
Matlab产生了类似于八度的结果。我真的不明白为什么数字会故意不同?是虫子吗?
发布于 2022-02-20 19:44:38
来自scipy.signal.windows
的函数gausswin(m, a)
和来自Octave signal
包的Octave函数gausswin(m, a)
不以相同的方式处理第二个参数。要将八度参数m
和a
转换为scipy
参数,可以使用
std = (m - 1)/(2*a)
例如,下面是如何获得使用gausswin(16, 3)
在Octave中生成的相同值
In [74]: from scipy.signal.windows import gaussian
In [75]: m = 16
In [76]: a = 3
In [77]: gaussian(m, (m - 1)/(2*a))
Out[77]:
array([0.011109 , 0.03404745, 0.08892162, 0.1978987 , 0.3753111 ,
0.60653066, 0.83527021, 0.98019867, 0.98019867, 0.83527021,
0.60653066, 0.3753111 , 0.1978987 , 0.08892162, 0.03404745,
0.011109 ])
https://stackoverflow.com/questions/71196448
复制相似问题