Spec-Zone.ru › NumPy 1.12

numpy.fft.hfft

numpy.fft.hfft(a, n=None, axis=-1, norm=None) [source]

Вычислить БПФ сигнала с эрмитовой симметрией, т.е. с вещественным спектром.

Параметры:

a : array_like

Входной массив.

n : int, необязательно

Длина преобразованной оси выходного значения. Для n выходных точек, n//2 + 1 входных точек является необходимым. Если вход длиннее этого, он усекается. Если он короче этого, он дополняется нулями. Если n не задано, оно определяется из длины входных данных вдоль оси, указанной axis.

axis : int, необязательно

Ось, по которой вычисляется БПФ. Если не задано, используется последняя ось.

norm : {None, “ortho”}, необязательно

Режим нормализации (см. numpy.fft). По умолчанию None.

Введено в версии 1.10.0.

Возвращаемое значение:

out : ndarray

Усечённый или заполненный нулями входной массив, преобразованный вдоль оси, указанной axis, или последней, если axis не задано. Длина преобразованной оси — n, или, если n не задано, 2*m - 2, где m — длина преобразованной оси входных данных. Для получения нечётного числа выходных точек необходимо указать n, например, как 2*m - 1 в типичном случае.

Исключения:

IndexError

Если axis больше, чем последняя ось a.

См. также

rfft
Вычисление одномерного БПФ для вещественного входного массива.
ihfft
Обратная функция hfft.

Примечания

hfft/ihfft являются парой, аналогичной rfft/irfft, но для обратного случая: здесь сигнал имеет эрмитову симметрию во временной области и вещественный в частотной области. Так что здесь это hfft, для которого вы должны предоставить длину результата, если она должна быть нечётной.

  • чётная: ihfft(hfft(a, 2*len(a) - 2) == a, с точностью до погрешности округления,
  • нечётная: ihfft(hfft(a, 2*len(a) - 1) == a, с точностью до погрешности округления.

Примеры

>>> signal = np.array([1, 2, 3, 4, 3, 2])
>>> np.fft.fft(signal)
array([ 15.+0.j,  -4.+0.j,   0.+0.j,  -1.-0.j,   0.+0.j,  -4.+0.j])
>>> np.fft.hfft(signal[:4]) # Input first half of signal
array([ 15.,  -4.,   0.,  -1.,   0.,  -4.])
>>> np.fft.hfft(signal, 6)  # Input entire signal and truncate
array([ 15.,  -4.,   0.,  -1.,   0.,  -4.])
>>> signal = np.array([[1, 1.j], [-1.j, 2]])
>>> np.conj(signal.T) - signal   # check Hermitian symmetry
array([[ 0.-0.j,  0.+0.j],
       [ 0.+0.j,  0.-0.j]])
>>> freq_spectrum = np.fft.hfft(signal)
>>> freq_spectrum
array([[ 1.,  1.],
       [ 2., -2.]])

© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.fft.hfft.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API