0% ont trouvé ce document utile (0 vote)
9 vues2 pages

Comparaison des fenêtres FFT en Python

Ce document présente un code Python qui génère un signal sinusoïdal et applique deux types de fenêtres (rectangulaire et Hanning) avant de calculer leur transformée de Fourier (FFT). Il compare les spectres des signaux fenêtrés pour illustrer la différence de fuite spectrale entre les deux fenêtres. Enfin, il affiche les résultats sous forme de graphique avec les amplitudes en décibels.

Transféré par

luckardo0112
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues2 pages

Comparaison des fenêtres FFT en Python

Ce document présente un code Python qui génère un signal sinusoïdal et applique deux types de fenêtres (rectangulaire et Hanning) avant de calculer leur transformée de Fourier (FFT). Il compare les spectres des signaux fenêtrés pour illustrer la différence de fuite spectrale entre les deux fenêtres. Enfin, il affiche les résultats sous forme de graphique avec les amplitudes en décibels.

Transféré par

luckardo0112
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd

import numpy as np

import [Link] as plt

from [Link] import get_window

# Paramètres du signal

fs = 1000 # Fréquence d'échantillonnage (Hz)

N = 1024 # Nombre d'échantillons

t = [Link](N) / fs

f0 = 50.5 # Fréquence du signal sinusoïdal non multiple de fs/N

# Génération du signal sinusoïdal

signal = [Link](2 * [Link] * f0 * t)

# Appliquer les fenêtres

window_rect = [Link](N) # Fenêtre rectangulaire (pas de fenêtrage)

window_hann = get_window("hann", N) # Fenêtre de Hanning

# Fenêtrage du signal

signal_rect = signal * window_rect

signal_hann = signal * window_hann

# Calcul des FFT

fft_rect = [Link](signal_rect)

fft_hann = [Link](signal_hann)
# Fréquences associées

freqs = [Link](N, 1/fs)

# Spectres (on ne garde que la moitié utile)

half = N // 2

[Link](figsize=(12, 6))

[Link](freqs[:half], 20*np.log10([Link](fft_rect[:half]) / [Link]([Link](fft_rect))),


label='Rectangulaire')

[Link](freqs[:half], 20*np.log10([Link](fft_hann[:half]) / [Link]([Link](fft_hann))), label='Hanning')

[Link]("Comparaison de la fuite spectrale : Hanning vs Rectangulaire")

[Link]("Fréquence (Hz)")

[Link]("Amplitude (dB)")

[Link]()

[Link]()

plt.tight_layout()

[Link]()

Vous aimerez peut-être aussi