Spectre de choc

python, sciences, numpy

a marqué ce sujet comme résolu.

Bonjour,

J’essaye de réaliser un programme qui calcule le spectre de choc d’un signal, en utilisant la transformée de Fourier.

Voici comment je procède actuellement :

import numpy as np

#signal test destiné à être remplacé par un tableau de points (venant d'une feuille excel, ou autre)
x = np.linspace(0,2*np.pi,100)
y = np.sin(x)

spectre = np.fft.fft(y)

frequences = np.fft.fftfreq(t.shape[-1])

for freq, amp in zip(spectre,frequences):
    print(f'fréquence : {freq} ; amplitude : {amp]')

Là-dessus, j’aimerais réaliser un graphique de l’amplitude en fonction de la fréquence, mais je me trouve dans une impasse : les nombres de ma liste spectre sont des nombres complexes !

Sauriez-vous comment m’aider ?

Merci d’avance,

@flopy78

Salut,

Ben… C’est normal, qu’est-ce que tu pensais obtenir ? En général, on représente la norme des coefficients np.abs(spectre)**2, j’imagine que c’est ce que tu veux. Par ailleurs, comme ton signal est réel, tu peux utiliser rfft et rfftfreq.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte