⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gbfenlpcc.m

📁 用MATLAB编程
💻 M
字号:
%%%%%文件"lpcc.m"
function ccc=gbfenlpcc(x,alpha)
%归一化倒谱提升窗口
w=1+6*sin(pi*[1:12]./12);
w=w/max(w);

%预加重滤波器
xx=double(x);
xx=filter([1 -1],1,xx);
xx=x;   %zhang add

%语音信号分帧
xppl=length(xx);
j=1;
for i=65:80:xppl-256,
    xx1(j,:)=xx(i:i+256-1)';
    j=j+1;
end
xx=xx1;

%计算每帧的lpc参数
for i=1:size(xx,1)
    y=xx(i,:);
    s=y'.*hamming(256);
    c1=lpc(s,12);
    c10=real(c1(2:13));
    c12=frft(c10,alpha);
    c11=c12';
    c2=c11.*w;m(i,:)=c2;  %采用归一化倒谱提升窗口
    %m(i,:)=c11;            %不采用归一化倒谱提升窗口
end
%差分参数
dtm=zeros(size(m));
for i=3:size(m,1)-2
    dtm(i,:)=-2*m(i-2,:)-m(i-1,:)+m(i+1,:)+2*m(i+2,:);
end
dtm=dtm/3;

%合并lpc参数和一阶差分lpc参数
%ccc=[m dtm];
ccc=[m];
%去除首尾两帧,因为这两帧的一阶差分参数为0
%ccc=ccc(3:size(m,1)-2,:);   %取12个lpc系数及12个差分系数
ccc=ccc(3:size(m,1)-2,1:12); %只取12个lpc系数
return

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -