Bonjour,

En complément du topic traitant de la création du .wav monofréquence, je passe actuellement à l'étape clé de la FFT. Grace à l'aide de oiffrig , la création du fichier .wav se fait de la sorte:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import math, numarray as NA, wave, numarray as NA2
 
freq = 200.
freqech = 44100
duree = 10.
omega = 2 * math.pi * freq
son = NA.arange(0., duree, 1./freqech, NA.Float64)
son = NA.sin(omega * son)
son *= 32768.
son = son.astype(NA.Int16)
 
 
wavfile = wave.open('AutreAmplitude200.wav','w')
wavfile.setparams((1, 2, freqech , len(son), 'NONE', 'not compressed'))
wavfile.writeframes(son.tostring())
wavfile.close()
 
 
Valeurs = son[0:222]
Dans la varable Valeur, je sauvegarde les valeurs prises par la fonction sinus (avec f = 200Hz) sur 1 période environ.
En appliquant la fonction fft issue du module numarray, je devrais donc obtenir quelque chose me disant qu'effectivement j'ai un signal de l'ordre de 200Hz.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
from numarray import fft
print fft.fft(Valeurs,450).real
Or le résultat obtenu est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
3.51000000e+02   3.02301824e+06   2.29319478e+05  -1.96406314e+06
  -1.23762282e+04  -4.48999295e+05  -1.02429368e+04  -2.03945581e+05
  -9.59045653e+03  -1.15423303e+05  -9.26517011e+03  -7.30000882e+04
  -9.02794648e+03  -4.93465665e+04  -8.82407680e+03  -3.47937512e+04
  -8.63322297e+03  -2.52527407e+04  -8.44808818e+03  -1.86411046e+04
  -8.24596904e+03  -1.39443011e+04  -8.04285242e+03  -1.04709028e+04
  -7.82704600e+03  -7.87677142e+03  -7.59881077e+03  -5.88953325e+03
  -7.36427447e+03  -4.36747628e+03  -7.11766236e+03  -3.17780670e+03
ETC...
La première valeur correspond à la composante continue du signal, autrement sa valeur moyenne, OK
Mais Quid des autres valeurs? Amplitudes de quelles harmoniques, fréquences(cos, sin)? Pourquoi des valeurs négatives?

Si vous avez des suggestions....