Bonjour à tous,
je travaille sur projet en matlab pour détecter l'énergie en se basant sur le spectrogramme et j'ai quelques questions car je viens de commencer à travailler avec matlab.
mon signal est échantillonné à 16000Hz, il a un longueur de 43 191, j'applique la fonction specgram :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 h=Hamming(512); fe=16000; nfft=512; t=(1:n)/fe;% Axe des temps f = (0:n-1)*fe/n; %axe des frequences A= specgram(s,nfft,fe,h)
j'obtiens une matrice 'A' de 513*167 , je calcule son module (B=abs(A)) puis la transformée en decibel(C=20*log10(B))
1) à l'affichage de C (image(t,f,C)), j'obtiens l'image dans fig comme dans la piece jointe. J'ai remarqué que l'image est renversée, pourquoi le 0 est en haut et le 16000Hz en bas?
2) Je dois travailler avec C(t,f) en fonction de f et t mentionnés si dessus, ou avec un simple C?
3) que représentent réellement les 513 et 167? (si je comprends bien soit v= C(513,20), à t=(513*20)/1600 s l'énergie est égale à v ).
remarque
si la fonction specgram calcule les ftt des fenêtres, logiquement j'aurai une Matrice de Cij et i*j= (length(signal)/length(w)) non?
merci de m'éclaircir sur ces points
Partager