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

Окно Хэмминга названо в честь Р.В. Хэмминга, сотрудника Дж.В. Такки, и описано в книге Блэкмана и Такки. Оно было рекомендовано для сглаживания усечённой функции автоковариации во временной области. Большинство ссылок на окно Хэмминга взято из литературы по обработке сигналов, где оно используется как одна из многих оконных функций для сглаживания значений. Оно также известно как функция аподизации (что означает «удаление ноги», т.е. сглаживание разрывов в начале и конце выборочного сигнала) или функция обрезания.
Ссылки
[R21] Блэкман, Р.Б. и Такки, Дж.В., (1958) Измерение спектра мощности, Dover Publications, Нью-Йорк. [R22] Э.Р. Канасевич, «Анализ временных последовательностей в геофизике», Университет Альберты, 1975, стр. 109-110. [R23] Википедия, «Окно функции», http://en.wikipedia.org/wiki/Window_function [R24] В.Х. Пресс, Б.П. Фланнери, С.А. Теукольский и В.Т. Ветерлинг, «Числовые рецепты», Издательство Кембриджского университета, 1986, страница 425. Примеры
>>> np.hamming(12) array([ 0.08 , 0.15302337, 0.34890909, 0.60546483, 0.84123594, 0.98136677, 0.98136677, 0.84123594, 0.60546483, 0.34890909, 0.15302337, 0.08 ])Построить окно и частотную характеристику:
>>> from numpy.fft import fft, fftshift >>> window = np.hamming(51) >>> plt.plot(window) [<matplotlib.lines.Line2D object at 0x...>] >>> plt.title("Hamming 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 Hamming 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.hamming.html