numpy.fft.hfft
-
numpy.fft.hfft(a, n=None, axis=-1, norm=None)[source] -
Вычислить ДПФ сигнала, имеющего эрмитову симметрию, т. е. вещественный спектр.
Параметры: -
a : array_like -
Входной массив.
-
n : int, optional -
Длина преобразованной оси выходных данных. Для
nвыходных точек, необходимоn//2 + 1входных точек. Если вход длиннее этого, он усекается. Если он короче этого, он дополняется нулями. Еслиnне задан, он определяется по длине входа по оси, заданнойaxis. -
axis : int, optional -
Ось, по которой вычисляется ДПФ. Если не указана, используется последняя ось.
-
norm : {None, “ortho”}, optional -
Режим нормализации (см.
numpy.fft). По умолчанию None.Новое в версии 1.10.0.
Возвращает: -
out : ndarray -
Усеченный или дополненный нулями входной массив, преобразованный по оси, указанной
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, с погрешностью округления.
Примеры
>>> 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.]]) -
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.fft.hfft.html