Функция rfftfreq
Функция rfftfreq возвращает массив частот, соответствующих
коэффициентам одномерного вещественного БПФ. Первым параметром
передаётся длина окна данных, вторым параметром можно задать
интервал между отсчётами времени.
Синтаксис
np.rfftfreq(n, [d])
Пример
Давайте получим массив частот для преобразования 8 отсчётов вещественного сигнала:
import numpy as np
res = np.rfftfreq(8)
print(res)
Результат выполнения кода:
[0. 0.125 0.25 0.375 0.5 ]
Пример
Зададим интервал между отсчётами времени 0.1 секунды:
import numpy as np
res = np.rfftfreq(8, d=0.1)
print(res)
Результат выполнения кода:
[0. 1.25 2.5 3.75 5. ]
Пример
Рассмотрим использование с функцией rfft для анализа частотной составляющей сигнала:
import numpy as np
rng = np.random.default_rng(0)
t = np.linspace(0, 1, 100, endpoint=False)
signal = np.sin(2 * np.pi * 5 * t) + 0.5 * rng.standard_normal(100)
freq = np.rfftfreq(100, d=1/100)
spectrum = np.rfft(signal)
print(freq[:10])
print(np.abs(spectrum[:10]))
Результат выполнения кода:
[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
[ 6.35616829 6.27476223 2.77782224 2.98846616 3.60579511
28.59982918 2.54124077 3.94817963 2.33634677 2.26335006]
На частоте 5 Гц виден пик амплитуды, что соответствует частоте синусоидального сигнала.