numpy.kaiser
-
numpy.kaiser(M, beta)[source] -
Возвращает окно Кайзера.
Окно Кайзера представляет собой ступенчатую функцию, образованную с помощью функции Бесселя.
Параметры: M : int
Число точек в выходном окне. Если ноль или меньше, возвращается пустой массив.
beta : float
Параметр формы окна.
Возвращает: out : массив
Окно, с максимальным значением, нормированным до единицы (значение один появляется только если число выборок нечетное).
Примечания
Окно Кайзера определяется как

с

где
— модифицированная функция Бесселя нулевого порядка.Окно Кайзера названо в честь Джима Кайзера, который открыл простое приближение окна DPSS, основанное на функциях Бесселя. Окно Кайзера является очень хорошим приближением к цифровому эллиптическому сферическому ряду или окну Слепиана, которое является преобразованием, максимизирующим энергию в основной доле окна относительно полной энергии.
Окно Кайзера может аппроксимировать многие другие окна путем изменения параметра beta.
beta Форма окна 0 Прямоугольное 5 Аналогично Гаммингу 6 Аналогично Ханнингу 8.6 Аналогично Блэкмену Значение beta равное 14, вероятно, является хорошей отправной точкой. Обратите внимание, что по мере увеличения beta окно сужается, а значит, число выборок должно быть достаточно большим для выборки всё более узкого пика, в противном случае будут возвращены значения NaN.
Большинство ссылок на окно Кайзера взяты из литературы по обработке сигналов, где оно используется в качестве одной из многих функций окон для сглаживания значений. Оно также известно как функция аподизации (что означает «удаление ноги», т. е. сглаживание разрывов в начале и конце выборочного сигнала) или функция сужения.
Ссылки
[R34] Дж. Ф. Кайзер, «Цифровые фильтры» - гл. 7 в «Системный анализ с помощью цифрового компьютера», Редакторы: Ф. Ф. Куо и Дж. Ф. Кайзер, с. 218-285. John Wiley and Sons, Нью-Йорк, (1966). [R35] Э.Р. Канасевич, «Анализ временных последовательностей в геофизике», Издательство Университета Альберты, 1975, с. 177-178. [R36] Википедия, «Функция окна», http://en.wikipedia.org/wiki/Window_function Примеры
>>> np.kaiser(12, 14) array([ 7.72686684e-06, 3.46009194e-03, 4.65200189e-02, 2.29737120e-01, 5.99885316e-01, 9.45674898e-01, 9.45674898e-01, 5.99885316e-01, 2.29737120e-01, 4.65200189e-02, 3.46009194e-03, 7.72686684e-06])Постройте окно и частотную характеристику:
>>> from numpy.fft import fft, fftshift >>> window = np.kaiser(51, 14) >>> plt.plot(window) [<matplotlib.lines.Line2D object at 0x...>] >>> plt.title("Kaiser window") <matplotlib.text.Text object at 0x...> >>> plt.ylabel("Amplitude") <matplotlib.text.Text object at 0x...> >>> plt.xlabel("Sample") <matplotlib.text.Text object at 0x...> >>> plt.show()>>> plt.figure() <matplotlib.figure.Figure object at 0x...> >>> A = fft(window, 2048) / 25.5 >>> mag = np.abs(fftshift(A)) >>> freq = np.linspace(-0.5, 0.5, len(A)) >>> response = 20 * np.log10(mag) >>> response = np.clip(response, -100, 100) >>> plt.plot(freq, response) [<matplotlib.lines.Line2D object at 0x...>] >>> plt.title("Frequency response of Kaiser window") <matplotlib.text.Text object at 0x...> >>> plt.ylabel("Magnitude [dB]") <matplotlib.text.Text object at 0x...> >>> plt.xlabel("Normalized frequency [cycles per sample]") <matplotlib.text.Text object at 0x...> >>> plt.axis('tight') (-0.5, 0.5, -100.0, ...) >>> plt.show()
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.kaiser.html