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