Функция rfft
Функция rfft вычисляет одномерное дискретное преобразование Фурье (БПФ)
для вещественного входного массива. В отличие от fft, эта функция возвращает
только половину частотного спектра (от нулевой частоты до частоты Найквиста),
так как для вещественных данных вторая половина является комплексно-сопряженным
зеркальным отражением. Первым параметром передается входной массив данных,
вторым параметром можно задать количество точек для преобразования,
третьим - ось, вдоль которой выполняется преобразование.
Синтаксис
np.fft.rfft(a, [n], [axis], [norm])
Пример
Давайте вычислим преобразование Фурье для простого вещественного сигнала:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = np.fft.rfft(arr)
print(res)
Результат выполнения кода:
[15. +0.j -2.5+3.4409548j -2.5+0.81229924j]
Пример
Давайте зададим количество точек преобразования больше длины входного массива (выполним дополнение нулями):
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = np.fft.rfft(arr, n=10)
print(res)
Результат выполнения кода:
[15. +0.j -2.5+5.85190176j -2.5+2.51227452j -2.5+0.76196853j -2.5-0.08292628j -5. +0.j ]
Пример
Давайте вычислим обратное преобразование с помощью функции irfft,
чтобы восстановить исходный сигнал:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
spectrum = np.fft.rfft(arr)
res = np.fft.irfft(spectrum, n=len(arr))
print(res)
Результат выполнения кода:
[1. 2. 3. 4. 5.]
Пример
Давайте получим частоты для построения графика спектра с помощью функции rfftfreq:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
spectrum = np.fft.rfft(arr)
freqs = np.fft.rfftfreq(n=len(arr), d=1.0)
print(freqs)
print(np.abs(spectrum))
Результат выполнения кода:
[0. 0.2 0.4]
[15. 4.25325404 2.62865556]
Смотрите также
-
функцию
fft,
которая вычисляет одномерное БПФ для комплексных данных -
функцию
irfft,
которая выполняет обратное преобразование Фурье для вещественных данных -
функцию
rfftfreq,
которая возвращает частоты для вещественного преобразования Фурье -
функцию
fftfreq,
которая возвращает частоты для комплексного преобразования Фурье