📄 cp.m
字号:
% ================================================================
% Filename : CP.M
% ----------------------------------------------------------------
% Speech Feature Extractor ( Using Cepstrum parameter )
% ----------------------------------------------------------------
% sp : speech wave ( using PCM coding )
% ================================================================
function CP=cp(sp);
global fft_point CBF fr_sz win_sz std_fr_num order
% ----------------------------------------------------------------
% Magnitude Normalize ( using maximum peak for normalize )
% ----------------------------------------------------------------
a=max(sp);
sp=(sp./a)*100;
% ----------------------------------------------------------------
hamming_win=hamming(win_sz);
sp_l=length(sp);
fr_num=fix(sp_l/fr_sz);
sp(sp_l+1:fr_sz*(fr_num-1)+win_sz)=zeros(fr_sz*(fr_num-1)+win_sz-sp_l,1);
ltw_rate=fr_num/std_fr_num;
cp_p=zeros(fr_num,order);
% ----------------------------------------------------------------
for fr_no=1:fr_num
fr_begin=fr_sz*(fr_no-1)+1;
fr_end=fr_sz*(fr_no-1)+win_sz;
fr_sp=sp(fr_begin:fr_end).*hamming_win;
fft_fr=fft(fr_sp,fft_point);
csw=log10(abs(fft_fr(1:fft_point/2-1)));
for ch=1:20
Yt(fr_no,ch)=sum(csw'.*CBF(ch,:));
end
for n=1:order
cp_p(fr_no,n)=sum(Yt(fr_no,:).*cos(n*((1:20)-.5)*pi/20));
end
end
% --------------------------------------------------------
% Linear Time Normalize
% --------------------------------------------------------
for m=1:std_fr_num
x=ltw_rate*m;
x1=fix(x);
if x1==0,
A1=0;
else
A1=cp_p(x1,:);
end;
if (x1+1)>fr_num,
A2=0;
else
A2=cp_p(x1+1,:);
end;
std_cp_p(m,:)=A1+(x-x1)*(A2-A1);
end
% ========================================================
CP=std_cp_p;
% ========================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -