当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python scipy signal.windows.slepian用法及代码示例


用法:

scipy.signal.windows.slepian(M, width, sym=True)

返回数字Slepian(DPSS)窗口。

用于最大化主瓣中的能量集中。也称为数字长球体序列(DPSS)。

注意

在SciPy 1.1中已弃用。slepian将在以后的SciPy版本中删除,由替换为dpss,它使用数字Slepian窗口的标准定义。

参数:

Mint

输出窗口中的点数。如果为零或更少,则返回一个空数组。

widthfloat

带宽

symbool, 可选参数

为True(默认)时,将生成一个对称窗口,用于过滤器设计。如果为False,则生成一个周期性窗口,以用于光谱分析。

返回值:

wndarray

最大值始终标准化为1的窗口

参考文献:

1

D. Slepian和H. O. Pollak:“扁球面波函数,傅立叶分析和uncertainty-I,” Bell Syst。科技J.,第40卷,pp.43-63,1961。https://archive.org/details/bstj40-1-43

2

H. J. Landau和H. O. Pollak:“扁球面波函数,傅立叶分析和uncertainty-II,” Bell Syst。科技J.,vol.40,pp.65-83,1961。https://archive.org/details/bstj40-1-65

例子:

绘制窗口及其频率响应:

>>> from scipy import signal
>>> from scipy.fft import fft, fftshift
>>> import matplotlib.pyplot as plt
>>> window = signal.slepian(51, width=0.3)
>>> plt.plot(window)
>>> plt.title("Slepian (DPSS) window (BW=0.3)")
>>> plt.ylabel("Amplitude")
>>> plt.xlabel("Sample")
>>> plt.figure()
>>> A = fft(window, 2048) / (len(window)/2.0)
>>> freq = np.linspace(-0.5, 0.5, len(A))
>>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
>>> plt.plot(freq, response)
>>> plt.axis([-0.5, 0.5, -120, 0])
>>> plt.title("Frequency response of the Slepian window (BW=0.3)")
>>> plt.ylabel("Normalized magnitude [dB]")
>>> plt.xlabel("Normalized frequency [cycles per sample]")
../_images/scipy-signal-windows-slepian-1_00.png
../_images/scipy-signal-windows-slepian-1_01.png

源码:

scipy.signal.windows.slepian的API实现见:[源代码]

相关用法


注:本文由纯净天空筛选整理自 scipy.signal.windows.slepian。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。