LPC特征提取--matlab

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

LPC特征提取I=wavread('1_1.wav');%读入原始语音subplot(3,1,1),;plot(I);title('原始语音波形')%对指定帧位置进行加窗处理Q=I';N=256;%窗长Hamm=hamming(N);%加窗frame=60;%需要处理的帧位置M=Q(((frame-1)*(N/2)+1):((frame-1)*(N/2)+N));Frame=M.*Hamm';%加窗后的语音帧[B,F,T]=specgram(I,N,N/2,N);[m,n]=size(B);fori=1:mFTframe1(i)=B(i,frame);endP=input('请输入预测器阶数=');ai=lpc(Frame,P);ai%计算lpc系数LP=filter([0-ai(2:end)],1,Frame);%建立语音帧的正则方程FFTlp=fft(LP);E=Frame-LP;%预测误差subplot(2,1,1),plot(1:N,Frame,1:N,LP,'-r');grid;title('原始语音和预测语音波形')subplot(2,1,2),plot(E);grid;title('预测误差');pausefLength(1:2*N)=[M,zeros(1,N)];Xm=fft(fLength,2*N);X=Xm.*conj(Xm);Y=fft(X,2*N);Rk=Y(1:N);PART=sum(ai(2:P+1).*Rk(1:P));G=sqrt(sum(Frame.^2)-PART);A=(FTframe1-FFTlp(1:length(F')))./FTframe1;subplot(2,1,1),plot(F',20*log(abs(FTframe1)),F',(20*log(abs(1./A))),'-r');grid;xlabel('频率/dB');ylabel('幅度');title('短时谱');subplot(2,1,2),plot(F',(20*log(abs(G./A))));grid;xlabel('频率/dB');ylabel('幅度');title('LPC谱');pause%求出预测误差的倒谱pitch=fftshift(rceps(E));M_pitch=fftshift(rceps(Frame));subplot(2,1,1),plot(M_pitch);grid;xlabel('语音帧');ylabel('/dB');title('原始语音帧倒谱');subplot(2,1,2),plot(pitch);grid;xlabel('语音帧');ylabel('/dB');title('预测误差倒谱');pause%画出语谱图ai1=lpc(I,P);%计算原始语音lpc系数LP1=filter([0-ai(2:end)],1,I);%建立原始语音的正则方程subplot(2,1,1);specgram(I,N,N/2,N);title('原始语音语谱图');subplot(2,1,2);specgram(LP1,N,N/2,N);title('预测语音语谱图');

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功