本文程序来源于宋知用老师编著的《MATLAB在语音信号分析与合成中的应用》
function ccc=mfcc_m(x,fs,p,frameSize,inc)
% % % % % % % % % % % % % % % % % % % % % % % % % % % %
% function ccc=mfcc_m(x);
%对输入的语音序列x进行MFCC参数的提取,返回MFCC参数和一阶
%差分MFCC参数,Mel滤波器的个数为p,采样频率为fs
%对x每frameSize点分为一帧,相邻两帧之间的帧移为inc
% FFT的长度为帧长
% % % % % % % % % % % % % % % % % % % % % % % % % % % %
% 按帧长为frameSize,Mel滤波器的个数为p,采样频率为fs
% 提取Mel滤波器参数,用汉明窗函数
bank=melbankm(p,frameSize,fs,0,0.5,’m’);
% 归一化Mel滤波器组系数
bank=full(bank);
bank=bank/max(bank(:));
%——————————————————————————————————-
%MATLAB中对稀疏矩阵的存储有两种方法:一是八所有的元素都存储;另一种是只储存非0元素。函数full将稀疏矩阵转化为全矩阵,把矩阵中所有的元素都存储,方便以后运算。
%输出参数bank是滤波器的频率响应,是一个p *(n/2+1)维的矩阵
%——————————————————————————————————-
% DCT系数,12*p
for k=1:12
n=0:p-1;