← retour aux snippets

numpy: rfft/irfft

FFT réelle et inverse pour signaux 1D.

python numpy #numpy#fft#signal

objectif

FFT réelle et inverse pour signaux 1D.

code minimal

import numpy as np
x = np.sin(np.linspace(0, 2*np.pi, 64))
X = np.fft.rfft(x)
xr = np.fft.irfft(X, n=len(x))
print(np.allclose(x, xr, atol=1e-6))

utilisation

import numpy as np
x = np.ones(8)
print(len(np.fft.rfft(x)))

variante(s) utile(s)

import numpy as np
X = np.array([1+0j, 0+0j])
print(np.fft.irfft(X, n=2).tolist())

notes

  • rfft exploite la symétrie pour réels (vite et compact).