Transformation De Fourier, Fft Et Dft — Cours Python
Transformée De Fourier Python Examples
linspace ( tmin, tmax, 2 * nc) x = np. exp ( - alpha * t ** 2) plt. subplot ( 411) plt. plot ( t, x) # on effectue un ifftshift pour positionner le temps zero comme premier element plt. subplot ( 412) a = np. ifftshift ( x) # on effectue un fftshift pour positionner la frequence zero au centre X = dt * np. fftshift ( A) # calcul des frequences avec fftfreq n = t. size f = np. fftshift ( freq) # comparaison avec la solution exacte plt. subplot ( 413) plt. plot ( f, np. real ( X), label = "fft") plt. sqrt ( np. pi / alpha) * np. exp ( - ( np. pi * f) ** 2 / alpha), label = "exact") plt. subplot ( 414) plt. imag ( X)) Pour vérifier notre calcul, nous avons utilisé une transformée de Fourier connue. En effet, pour la définition utilisée, la transformée de Fourier d'une gaussienne \(e^{-\alpha t^2}\) est donnée par: \(\sqrt{\frac{\pi}{\alpha}}e^{-\frac{(\pi f)^2}{\alpha}}\) Exemple avec visualisation en couleur de la transformée de Fourier ¶ # visualisation de X - Attention au changement de variable x = np.
Transformée De Fourier Python Web
Exemples simples ¶ Visualisation de la partie réelle et imaginaire de la transformée ¶ import numpy as np import as plt n = 20 # definition de a a = np. zeros ( n) a [ 1] = 1 # visualisation de a # on ajoute a droite la valeur de gauche pour la periodicite plt. subplot ( 311) plt. plot ( np. append ( a, a [ 0])) # calcul de A A = np. fft. fft ( a) # visualisation de A B = np. append ( A, A [ 0]) plt. subplot ( 312) plt. real ( B)) plt. ylabel ( "partie reelle") plt. subplot ( 313) plt. imag ( B)) plt. ylabel ( "partie imaginaire") plt. show () ( Source code) Visualisation des valeurs complexes avec une échelle colorée ¶ Pour plus d'informations sur cette technique de visualisation, voir Visualisation d'une fonction à valeurs complexes avec PyLab. plt. subplot ( 211) # calcul de k k = np. arange ( n) # visualisation de A - Attention au changement de variable plt. subplot ( 212) x = np. append ( k, k [ - 1] + k [ 1] - k [ 0]) # calcul d'une valeur supplementaire z = np. append ( A, A [ 0]) X = np.
b=0. 1 return (-t**2/a**2)*(2. 0**t/b) t = (start=-5, stop=5, step=0. 01) u = signal(t) plot(t, u) xlabel('t') ylabel('u') Dans ce cas, il faut choisir une fréquence d'échantillonnage supérieure à 2 fois la fréquence de la sinusoïde, c. a. d. fe>2/b. fe=40 2. c. Fenêtre rectangulaire Soit une fenêtre rectangulaire de largeur a: if (abs(t) > a/2): return 0. 0 else: return 1. 0 Son spectre: fe=50 Une fonction présentant une discontinuité comme celle-ci possède des composantes spectrales à haute fréquence encore non négligeables au voisinage de fe/2. Le résultat du calcul est donc certainement affecté par le repliement de bande. 3. Signal à support non borné Dans ce cas, la fenêtre [-T/2, T/2] est arbitrairement imposée par le système de mesure. Par exemple sur un oscilloscope numérique, T peut être ajusté par le réglage de la base de temps. Considérons par exemple un signal périodique comportant 3 harmoniques: b = 1. 0 # periode w0=1* return (w0*t)+0. 5*(2*w0*t)+0. 1*(3*w0*t) La fréquence d'échantillonnage doit être supérieure à 6/b pour éviter le repliement de bande.