function emd_visu(x,y,imfs,fig,nbimfs,titre);

% Visualisation des IMFs (Intrinsic Mode Function) extraites du signal
% y=f(x)
%
% Appel a emd_visu :
%    emd_visu(x,y,imfs,fig,,nbimfs,titre)
%
% Entrees :
%    x : vecteur des abscisses des echantillons du signal a analyser
%    y : vecteur des ordonnees des echantillons du signal a analyser
%    imfs : matrice contenant les IMFs extraites (une IMF par ligne) ainsi
%           que le residu
%    fig (optionnel) : numero de la figure dans laquelle visualiser les
%                      IMFs
%    nbimfs (optionnel) : nbre de modes a visualiser
%    titre (optionnel) : titre a donner a la figure


if (nargin==3)
   fig=1;
   nbimfs=size(imfs,1);
   titre='';
end

if (nargin==4)
   nbimfs=size(imfs,1);
   titre='';
end

if (nargin==5)
   titre='';
end

figure(fig)
subplot(1,1,1)

My=max(abs(y));
if My==0,
   My=0.5;
end

M=max(max(abs(imfs)));
if M==0,
   M=0.5;
end

%[m n]=size(imfs);
n=size(imfs,2);

%subplot(m+1,1,1)
subplot(nbimfs+1,1,1)
plot(x,y,'k')
axis([x(1) x(n) -My My])
set(gca,'YTick',[])
set(gca,'XTick',[])
ylabel(['signal'])

%for j=1:m,
for j=1:nbimfs,
%   subplot(m+1,1,j+1)
   subplot(nbimfs+1,1,j+1)
   plot(x,imfs(j,:),'b')
   axis([x(1) x(n) -M M])
   set(gca,'YTick',[])
   set(gca,'XTick',[])
   ylabel(['imf',int2str(j)])
end

%subplot(m+1,1,1)
subplot(nbimfs+1,1,1)
title(titre)

%subplot(m+1,1,m+1)
subplot(nbimfs+1,1,nbimfs+1)
%plot(x,imfs(m,:),'r')
plot(x,imfs(nbimfs,:),'r')
axis([x(1) x(n) -M M])
set(gca,'YTick',[])
set(gca,'XTick',[])
ylabel('res.')
