scipy.signal.windows.

kaiser_bessel_derived#

scipy.signal.windows.kaiser_bessel_derived(M, beta, *, sym=True, xp=None, device=None)[источник]#

Возвращает окно Кайзера-Бесселя.

Параметры:
Mint

Количество точек в выходном окне. Если ноль, возвращается пустой массив. Выбрасывается исключение при отрицательном значении. Заметим, что это окно определено только для чётного количества точек.

betafloat

Параметр формы окна Кайзера.

symbool, необязательно

Этот параметр существует только для соответствия интерфейсу, предоставляемому другими оконными функциями, и для возможности вызова get_window. Когда True (по умолчанию), генерирует симметричное окно для использования в проектировании фильтров.

xparray_namespace, опционально

Опциональное пространство имён массивов. Должно быть совместимо со стандартом array API или поддерживаться array-api-compat. По умолчанию: numpy

устройство: любое

необязательная спецификация устройства для вывода. Должна соответствовать одной из поддерживаемых спецификаций устройств в xp.

Возвращает:
wndarray

Окно, нормализованное для выполнения условия Принсена-Брэдли.

Смотрите также

kaiser

Примечания

Он предназначен для использования с модифицированным дискретным косинусным преобразованием (MDCT) и в основном применяется в обработке аудиосигналов и аудиокодировании.

Добавлено в версии 1.9.0.

Ссылки

[1]

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

[2]

Wikipedia, “Kaiser window”, https://en.wikipedia.org/wiki/Kaiser_window

Примеры

Построить окно Кайзера-Бесселя на основе ссылки из википедии [2]:

>>> 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