Transformée de Fourier discrète d’un signal numérique#

Le signal temporel est une porte :

../_images/1370d305e4b963db5347c5cd3aae05aeb1a1b58d78f57c0491048ca1e3cc7b08.png

Attention ! Le signal contient 100 échantillons (de 0 à 99) et l’échantillon en \(n=50\) est nul !

Spectre non centré, en fonction des échantillons#

Par simplicité et lisibilité, les spectres sont tracés avec plot mais ils restent discrets !

Z1 = fft.fft(z)
k1 = np.arange(N)
../_images/7ad2439971ef0d09527abef8e8393e0de4f0c93ecdb9233e1f63dc70f27c41d4.png

Spectre centré, en fonction des échantillons#

k2 = k1 - np.floor(N/2)
Z2 = fft.fftshift(Z1)
../_images/0b8309eaf3e1ddad63217fbd3b794ac1aa99dc28046c8b861ba510033e5b4af2.png

Spectre centré, en fonction de la fréquence#

On vérifie que les abscisses représentent bien une période du spectre (entre \(-f_e/2\) et \(f_e/2\)).

f = k2/(N*Te)
../_images/fd1d87d24b24485f700525ab8d00ec4c13ccc148530d04ed93becb76aef1cacc.png

Application#

Le signal temporel est :

../_images/500bd86e076710067e5660521e2d93ab53cd65a96e8397c8ca1177a3fab0533f.png

Son spectre est :

../_images/4030b6bbf2a50ce1a9bc05d460024cc0e286196d4706ce5634770b96d2490d66.png

La fonction matplotlib.pyplot.xlim permet de zoomer sur la partie intéressante :

../_images/8cd309c71ad91c0fdff59f0b12befe2c653bd3b94447da56cbeec6aaea5ccb85.png

La fréquence principale du signal est donc à 100 Hz.