首先 我们要先了解一下,我们为什么要进行分帧,原因大致如下:
首先我们收集到的语音信号,在时间变化上我们认为是不稳态的信号,但是当我们要提取feature的时候,我们需要的是从稳态的信号里提取,所以我们要把不稳态的信号,分解为稳态的信号,语音信号在短时,我们认为是稳态的,所以我们要对其进行分帧的操作。
程序1:
[y, fs, nbits]=wavread('s2.wav');
%分帧
framelength=256;
step=128;
frame_array2=enframe(y,hamming(framelength),step);
figure,plot(frame_array),xlabel('帧'),ylabel('分帧加窗后矩阵');
save('frame_array2.mat');
程序2:
[y,fs,bits]=wavread('s1.wav');
N=fs*20*10.^(-3);
frame_shift=N/3;
frame_array=enframe(sound(:,2),hamming(N),frame_shift);
figure,plot(frame_array),xlabel('帧'),ylabel('分帧加窗后矩阵');
save('frame_array.mat');
voiceframe_array=reshape(frame_array,N,[]);
程序1和程序2都实现了分帧的问题,但是从程序中,我们能明显的看到一些不一样的地方,那么到底有什么区别的