function [txx,fxx,f] = ctfe(x,y,fs,nfft,fasesw)
%function [txx,fxx,f] = ctfe(x,y,fs,nfft,fasesw)
% Estima 'nfft' puntos de la TFE de 'x' e 'y' muestreada a 'fs' Hz
% ctfe(x,y,fs,nfft) Traza la TFE en escala lienal
% ctfe(x,y,fs,nfft,fasesw) Si fasesw==1 también se traza la fase
% [txx,fxx,f] = ctfe(x,y,fs,nfft) Devuelve la TFE en 'txx',
%   la fase en 'fxx' y el vector de frecuencias en 'f'
  if nargin < 4
    disp('Formato: ctfe(x,y,fs,nfft)');
  else
  if nargin == 4, fasesw = 0; end
% Cálculo de la TFE y FASE
    w=hanning(nfft);
    [p,fvec] = psd(x,nfft,fs,w,nfft/2,'none');
    c = csd(x,y,nfft,fs,w,nfft/2,'none');
    tfe = abs(c)./abs(p);
    fase = unwrap(angle(c));
    if nargout == 0
      fase = fase / pi;
      if fasesw == 1
        subplot(2,1,1)
          plot(fvec,20*log10(tfe));
          ylabel('TFE (dB)');
          xlabel('Frecuencia (Hz)');
        subplot(2,1,2);
          plot(fvec,fase);
          xlabel('Frecuencia (Hz)');
          ylabel('Fase (xPI)');
      else
        plot(fvec,20*log10(tfe));
        ylabel('TFE (dB)');
        xlabel('Frecuencia (Hz)');
      end
    else
      txx = tfe;
      fxx = fase;
      f   = fvec;
    end
  end
%end
