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.
См. также
Примечания
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