?? matlab求倒譜問(wèn)題.m
字號(hào):
matlab求倒譜問(wèn)題
讀入一個(gè)語(yǔ)音文件wav
加窗,窗長(zhǎng)256,對(duì)窗內(nèi)的信號(hào)進(jìn)行倒譜計(jì)算
使用matlab帶的cceps,求出的圖像在附件里所示
但是我在書(shū)上看到,“由周期激勵(lì)信號(hào)在復(fù)倒譜中形成的分量只出現(xiàn)在各沖激之間間隔的整數(shù)倍各點(diǎn)上,則可以預(yù)期在基本周期的整數(shù)倍各點(diǎn)上,復(fù)倒譜中能夠發(fā)現(xiàn)沖激”
為何在我的圖像上看不到周期激勵(lì)信號(hào)產(chǎn)生的周期分量呢,只看到間隔為窗信號(hào)長(zhǎng)度的峰值?
以下是matlab程序
y= readwav('d:\1.wav');
length_y = length(y);
plot([1:length(y)],y);
title('語(yǔ)音信號(hào)');
%加窗
ceps_frame_len =500;
window = (hamming(ceps_frame_len)); % Window type
n_frame = round(length_y/ceps_frame_len);
y_result_m =zeros(n_frame*ceps_frame_len,1);
for ifrm=1:n_frame %n_frame為幀數(shù),frame_shift為每次滑動(dòng)的點(diǎn)數(shù)
n1 = ceps_frame_len*(ifrm-1)+1;
n2 = ceps_frame_len*(ifrm-1)+ceps_frame_len;
y(n1:n2) = window.*y(n1:n2);
y_result_m(n1:n2) = cceps(y(n1:n2));
end
figure;
plot([1:length(y)],y);
title('加窗');
figure;
plot([1:length(y_result_m)],y_result_m);
title('倒譜);
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -