mfcc.m
上传用户:jzquartz
上传日期:2008-06-09
资源大小:389k
文件大小:1k
源码类别:

Audio

开发平台:

Matlab

  1. function r = mfcc(s, fs)
  2. % MFCC
  3. %
  4. % Inputs: s  contains the signal to analize
  5. %         fs is the sampling rate of the signal
  6. %
  7. % Output: r contains the transformed signal
  8. %
  9. %
  10. %%%%%%%%%%%%%%%%%%
  11. %
  12. % Author:     Amin Koohi(Sohrevardi)
  13. %              AminSohrevardi@yahoo.com , AminKoohi@yahoo.com
  14. m = 100;
  15. n = 256;
  16. l = length(s);
  17. nbFrame = floor((l - n) / m) + 1;
  18. for i = 1:n
  19.     for j = 1:nbFrame
  20.         M(i, j) = s(((j - 1) * m) + i);
  21.     end
  22. end
  23. h = hamming(n);
  24. M2 = diag(h) * M;
  25. for i = 1:nbFrame
  26.     frame(:,i) = fft(M2(:, i));
  27. end
  28. t = n / 2;
  29. tmax = l / fs;
  30. m = melfb(20, n, fs);
  31. n2 = 1 + floor(n / 2);
  32. z = m * abs(frame(1:n2, :)).^2;
  33. r = dct(log(z));