Функция fft.fftfreq
Функция fft.fftfreq возвращает частоты дискретизации для
одномерного дискретного преобразования Фурье. Первым параметром
функция принимает длину сигнала n. Вторым параметром можно
указать интервал дискретизации d (по умолчанию равен 1).
Возвращаемый тензор содержит частоты в диапазоне от нуля до
частоты Найквиста и отрицательные частоты.
Синтаксис
torch.fft.fftfreq(n, [d])
Параметры
n - длина сигнала (целое число).
d - интервал между отсчетами (скаляр, по умолчанию 1).
Пример
Давайте вычислим частоты для сигнала длиной 8:
import torch
freqs = torch.fft.fftfreq(8)
print(freqs)
Результат выполнения кода:
tensor([ 0.0000, 0.1250, 0.2500, 0.3750, -0.5000, -0.3750, -0.2500, -0.1250])
Пример
Давайте укажем интервал дискретизации 0.5:
import torch
freqs = torch.fft.fftfreq(8, d=0.5)
print(freqs)
Результат выполнения кода:
tensor([ 0.0000, 0.2500, 0.5000, 0.7500, -1.0000, -0.7500, -0.5000, -0.2500])
Пример
Давайте используем fftfreq для визуализации частот
после применения БПФ:
import torch
import matplotlib.pyplot as plt
t = torch.linspace(0, 1, 100)
signal = torch.sin(2 * torch.pi * 5 * t)
fft_vals = torch.fft.fft(signal)
freqs = torch.fft.fftfreq(len(signal), d=t[1] - t[0])
print(freqs[:10])
Результат выполнения кода:
tensor([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])