РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
172 of 541 menu

Функция 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,
    которая возвращает частоты для комплексного преобразования Фурье
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить