我试图通过遵循这个来实现 MFCC ,我发现有一个步骤将信号分成帧,然后传递给 Hamming 窗口过程。给出的原因是为了纠正帧的开始和最后一个样本的不连续性。好的,听起来不错,然后窗口的输出被馈送到 FFT 过程。所以我想单独做这个示例代码。
我的代码:-
%Creating a signal to perform hamming windowing on.
fs=8000;
ts=1/fs;
N=1000;
t=(0:ts:(N-1)*ts);
x=sin(2*pi*60*t);
figure,subplot(221),plot(t,x,'.-'),title('Original Speech'),xlabel('Time');grid on
f=(-fs/2:fs/(N-1):fs/2);
subplot(223),plot(f,fftshift(abs(fft(x)))),title('Frequency Spectrum'),xlabel('Freq (Hz)');grid on
windowed=x.*hamming(length(x))';
subplot(222),plot(t,windowed,'.-'),title('Hamming Window Applied'),xlabel('Time');grid on
subplot(224),plot(f,fftshift(abs(fft(windowed)))),title('Frequency Spectrum After Hamming'),xlabel('Freq (Hz)');grid on
生成的情节是: -
我的问题是:-
Hamming Windowing 的优点是什么?我是一个菜鸟,所以根据我的说法,首先,我们在时域中失去了信号开始和结束时的幅度,其次,在频域中,差异很小。那么做这么多计算有什么好处。请尽可能详细地解释。
如果有人能指出更详细的(根据他们的)教程然后我正在参考或他们在自己学习 MFCC 时阅读的内容,那就太好了。


