Bonjour,
Je suis étudiant en 2eme année de prépa intégrée à une école d'ingénieur, et souhaite utiliser Matlab dans le cadre de mes TIPE. Je me charge du traitement d'un signal audio, je m'explique:
J'ai un son wave qui est l'enregistrement d'une note de musique (LA3 du diapason (440Hz)) dans un environnement bruyant (le LA ne s'entend pas, ou très peu, à l'oreille nue) et souhaite, à l'aide de filtre (passe bande 400Hz-500Hz par exemple) et de fft prouver la présence du LA 440Hz (montrer qu'il y a bien la composante à 440Hz lors de la FFT).
Caractéristiques du son wav: Durée=1,00 s ; Freq d'échantillonnage=44100Hz
J'ai lu l'aide de Matlab ainsi que beaucoup de sujets sur le forum mais après de nombreux essais je n'arrive toujours pas à mes fins:
1) Tout d'abord, question "bête", je ne comprend pas pourquoi je n'obtient pas la même échelle (abscisses) que celle de Regressi (1sec, cf pièce jointe) avec le code de base suivant:
2) Après lecture de l'aide j'ai donc essayer de définir le "time vector" mais j'ai du mal à saisir ce qu'il représente réellement, du coup, malgré mes nombreux tests, je n'ai jamais reussi à représenter plus de 0,25 sec de mon enregistrement avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 >> [x,fs]=wavread('son wav'); >> plot(x)
Si vous pouviez m'expliquer pourquoi le vecteur "t" est définit comme ceci je vous en serai très reconnaissant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 [x,fs]=wavread('son wav'); T=1/fs; %Sample Time L=1e5; %Length of signal t=(0:L-1)*T; %Time vector plot (t(1:1e4),x(1:1e4))
3) FFT: J'aimerai ensuite arriver un retrouver un résultat similaire à celui de la pièce jointe qui est le résultat de la fonction FFT de Regressi, j'ai essayer d'utiliser le code donné ici http://www.developpez.net/forums/d66...t-sous-matlab/ mais sans succès.
Je cherche à avoir les fréquences en fonction de leur amplitude, ou de leur magnitude, pour pouvoir conclure quant à la présence du 440Hz
4) En ce qui concerne le filtre, je m'y essaierai une fois les 3 premiers points assimilés
Etant débutant en Matlab et n'ayant que 3 semaines pour faire mon programme, je voudrais savoir s'il était possible d'avoir de l'aide par rapport à mes différents (mais simples j'imagine) problemes.
Merci de votre compréhension
Partager