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

с

где
— модифицированная функция Бесселя нулевого порядка.Окно Кайзера названо в честь Джима Кайзера, который открыл простое приближение окна ДПСС, основанное на функциях Бесселя. Окно Кайзера является очень хорошим приближением к цифровой пролатной сферической последовательности или окну Слепиана, которое является преобразованием, максимизирующим энергию в главном лепестке окна по отношению к полной энергии.
Окно Кайзера может приближать многие другие окна, изменяя параметр бета.
beta Форма окна 0 Прямоугольное 5 Похоже на окно Хэмминга 6 Похоже на окно Хэннинга 8.6 Похоже на окно Блэкмана Значение бета 14, вероятно, является хорошей отправной точкой. Обратите внимание, что при увеличении бета окно сужается, поэтому число образцов должно быть достаточно большим, чтобы образец был достаточно узким, в противном случае будут возвращаться значения NaN.
Большинство ссылок на окно Кайзера взяты из литературы по обработке сигналов, где оно используется как одна из многих функций окон для сглаживания значений. Оно также известно как функция аподизации (что означает «удаление ступни», то есть сглаживание разрывов в начале и конце сигнала с дискретными отсчётами) или функция обрезки.
Ссылки
[R34] J. F. Kaiser, «Цифровые фильтры» — Глава 7 в «Системный анализ с помощью цифрового компьютера», Редакторы: F.F. Kuo и J.F. Kaiser, стр. 218-285. John Wiley and Sons, Нью-Йорк, (1966). [R35] E.R. Kanasewich, «Анализ временных последовательностей в геофизике», Пресса университета Альберты, 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.10.1/reference/generated/numpy.kaiser.html