def fft(x):
N = len(x)
if N == 1:
return x
even = fft(x[0::2])
odd = fft(x[1::2])
result = [0] * N
for k in range(N // 2):
twiddle = cmath.exp(-2j * math.pi * k / N) * odd[k]
result[k] = even[k] + twiddle
result[k + N // 2] = even[k] - twiddle
return result
Теперь в алгоритме Кули -Туки мы разделяем образцы на нечетное и равно и применяем DFT на каждом образце, как это -
Таким образом, в основном у меня есть этот код FFT, реализованный в Python для 2^m образцов. < /p> [code]def fft(x): N = len(x) if N == 1: return x even = fft(x[0::2]) odd = fft(x[1::2])
result = [0] * N for k in range(N // 2): twiddle = cmath.exp(-2j * math.pi * k / N) * odd[k] result[k] = even[k] + twiddle result[k + N // 2] = even[k] - twiddle return result [/code] Теперь в алгоритме Кули -Туки мы разделяем образцы на нечетное и равно и применяем DFT на каждом образце, как это -
Я вручную проанализировал треугольную волну, используя ряд Фурье, а затем используя пакет scipy.fft. Я получаю одинаковые абсолютные значения коэффициентов, но с противоположными знаками.
Вручную:
Я взял интервал , вычислил интеграл, чтобы...
При использовании функции torch.fft.rfft PyTorch я заметил, что указание выходного тензора с помощью параметра out происходит медленнее, чем позволить PyTorch управлять выходными данными внутри страны. Вот простой тест:
input_len = 2_000_000
x =...
При использовании функции torch.fft.rfft PyTorch я заметил, что указание выходного тензора с помощью параметра out происходит медленнее, чем позволить PyTorch управлять выходными данными внутри страны. Вот простой тест:
input_len = 2_000_000
x =...