function f=spectrogramme(w,s,M);

%                 f=spectrogramme(w,s,M);
%
% Calcule la transformée de Fourier à fenêtre d'un signal digital réel s
% donné en colonne à travers une fenêtre digitale h donnée elle aussi en
% colonne avec length(w)=N < length(s); le calcul de la transformée de
% Fourier est effectué via un calcul de M-dft avec M supérieur ou égal à N.
% L'axe des fréquences est l'axe des ordonnées, l'intervalle utile étant 
% ici [0,pi] (de haut en bas). 

Ns=length(s);
N=length(w);
m=fix(M/2);
A=ones(Ns-N,N);
for j=(N+1):Ns,
  y=s(j-N:j-1).*w;
    for k=1:N,
     A(j-N,k)=y(k);
    end
 end
B=abs(fft(conj(A'),M));
f=B(1:m,:); 