MATLAB FFT ANALYSE DU SON

sophiep Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
 nabila09 -
Salut les professionnels de la programmation et de matlab,

j'ai une petite question. Voila, j'ai enregistré du son (en laboratoire) avec le logiciel adobe audition, avec une fréquence d'échantillonnage de 44100Hz, et cet échantillon dure 20 seconde.
Je voudrais analyser les différentes fréquences de cet échantillon, il faut donc que je trace l'amplitude en fonction de la fréquence, et donc utiliser la fft. Mais je ne sais comment programmer cela sur matlab.
quelqu'un aurait il une solution ?

Merci à tous
A voir également:

5 réponses

tomtom
 
Salut sophie,
comme tu le sais surement un son de 44Khz pese extremement lourd, si tu veux faire une FFT sous matlab pour un son 44Khz de 20 Sec je te conseille de le lancer le matin tres tot, et de revenir a peu pres 1 heure plutard voir plus (FFT = operation couteuse en temps et en ressource). Non serieusement, decoupe ton son en plusieurs morceau ca sera plus gerable.
Sinon la fonction s est
fft(signal,Npoint)
Npoint = nombre de point que tu souhaite
3
Gatien
 
Bonjour ,

Il existe une fonction 'fft' dans Matlab permettant de réaliser cela , fais help fft pour plus de précisions. La fonction 'fft' utilise un vecteur de valeurs (ton signal sonore). Le problème va être et ca ne je sais pas t'aider de rapatrier les données sous Matlab. La meilleure solution reste de sauver ton fichier sous l'extension 'wav' qui est lisible par matlab !

Voici la fonction : [Y,FS,NBITS]=WAVREAD(FILE)

tu dois donc juste spécifier le path et le nom du fichier.

Bien à toi ,

Gatien
1
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Je pense pas que ça soit si long, du peut que j'ai fait, j'ai pas eu de problème.
Les fft sont rapide compte tenu de la tache à effectuer.
et si mes souvenir sont bon, il me semble justement que Npoint permet de réduire le nombre de point, et donc le temps de calcul.
après ça dépend de la résolution souhaité.
Il existe aussi une "libtool" matlab permettant de faire des images temps fréquence.C'est a dire que tu as l'échantillonage de fréquance tout au long du temps. Selon l'info rechercher ça peut être intéressant.
Bonne chance.
-2
wembley
 
Bonjour,
je me greffe dans ce sujet pour poser une question... Comment ponderer chaque gamme de fréquence (par exemple par tiers d'octave) une fois cette fft effectuée ? en fait, ce que je voudrais faire, c'est de reproduire ce qu'entend réellement l'oreille humaine, ce qui dépend de la fréquence entendue...

merci d'avance
-2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
Tu veux faire un filtre en fait.
l'oreille humaine a une sensibilité dépendante de la fréquence. Supposons que tu ais cette fonction sens(F) comprise entre 0 et 1, 1 dans les fréquences les mieux perçues (autour 1kHz, je crois) jusqu'à 0 pour les fréquence inférieur à 50 Hz et supérieur à 20kHz. il suffit alors de multiplier chaque valeur du spectre par cette valeur, et tu aura le spectre perçu par un homme.
-2
gloubi
 
Bonjour,

N'oublie pas de pondérer -par du hanning par exemple- ton signal temporel avant de lancer la fft.
0
nabila09
 
svp aidez moi j'ai afficher mon spectre du signal mais comment Réalisez le calcul de ce spectre?!!!
0