Spec-Zone.ru › NumPy 2.0

numpy.fft.hfft

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

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

Параметры:
aarray_like

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

nint, необязательно

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

axisint, необязательно

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

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

Новое в версии 1.10.0.

Режим нормализации (см. numpy.fft). По умолчанию — “backward”. Указывает, какая из направлений прямой/обратной пары преобразований масштабируется и с каким коэффициентом нормализации.

Новое в версии 1.20.0: Добавлены значения “backward”, “forward”.

outndarray, необязательно

Если задано, результат будет помещён в этот массив. Он должен иметь соответствующую форму и тип данных.

Новое в версии 2.0.0.

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

Усечённый или дополненный нулями входной массив, преобразованный по оси, указанной 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, с погрешностью округления.

Правильная интерпретация эрмитова входного массива зависит от длины исходных данных, заданной n. Это связано с тем, что каждая форма входного массива может соответствовать либо сигналу нечётной, либо чётной длины. По умолчанию, hfft предполагает чётную длину выходного массива, что помещает последний элемент на частоту Найквиста; слияние с его симметричным аналогом. По эрмитовой симметрии, значение интерпретируется как чисто вещественное. Для предотвращения потери информации форма полного сигнала должна быть задана.

Примеры

>>> 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]) # may vary
>>> 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], # may vary
       [ 0.+0.j,  0.-0.j]])
>>> freq_spectrum = np.fft.hfft(signal)
>>> freq_spectrum
array([[ 1.,  1.],
       [ 2., -2.]])

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.fft.hfft.html

Spec-Zone.ru

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