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
Окно, нормализованное для выполнения условия Принсена-Брэдли.
Смотрите также
Примечания
Он предназначен для использования с модифицированным дискретным косинусным преобразованием (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()