scipy.signal.windows.

kaiser_bessel_derived#

scipy.signal.windows.kaiser_bessel_derived(M, beta, *, sym=True)[source]#

返回 Kaiser-Bessel 衍生窗。

參數:
M整數

輸出視窗中的點數。 如果為零,則返回一個空陣列。 當為負數時,會拋出例外。 請注意,此視窗僅針對偶數點定義。

beta浮點數

Kaiser 窗形狀參數。

sym布林值,可選

此參數的存在僅是為了符合其他視窗函數提供的介面,並可由 get_window 呼叫。 當為 True(預設值)時,會產生一個對稱視窗,用於濾波器設計。

返回:
wndarray

視窗,已標準化以滿足 Princen-Bradley 條件。

參見

kaiser

註解

它設計為適用於修改型離散餘弦變換 (MDCT),主要用於音訊訊號處理和音訊編碼。

在 1.9.0 版本中新增。

參考文獻

[1]

Bosi, Marina, 和 Richard E. Goldberg. Introduction to Digital Audio Coding and Standards. Dordrecht: Kluwer, 2003.

[2]

維基百科, “Kaiser window”, https://en.wikipedia.org/wiki/Kaiser_window

範例

根據維基百科參考文獻 [2] 繪製 Kaiser-Bessel 衍生視窗

>>> import numpy as np
>>> from scipy import signal
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> N = 50
>>> for alpha in [0.64, 2.55, 7.64, 31.83]:
...     ax.plot(signal.windows.kaiser_bessel_derived(2*N, np.pi*alpha),
...             label=f"{alpha=}")
>>> ax.grid(True)
>>> ax.set_title("Kaiser-Bessel derived window")
>>> ax.set_ylabel("Amplitude")
>>> ax.set_xlabel("Sample")
>>> ax.set_xticks([0, N, 2*N-1])
>>> ax.set_xticklabels(["0", "N", "2N+1"])  
>>> ax.set_yticks([0.0, 0.2, 0.4, 0.6, 0.707, 0.8, 1.0])
>>> fig.legend(loc="center")
>>> fig.tight_layout()
>>> fig.show()
../../_images/scipy-signal-windows-kaiser_bessel_derived-1.png