lpc1.m
上传用户:luvkyhj
上传日期:2013-06-25
资源大小:3k
文件大小:1k
源码类别:

屏幕保护

开发平台:

Matlab

  1. function lpc=lpc1(x)
  2. x=double(x);
  3. x=x/max(abs(x));
  4. x=filter([1 -0.9375],1,x);
  5. w=1/6+sin(pi*[1:12]./12);
  6. w=w/max(w);
  7. w=w*0.375;
  8. [x1,x2]=vad(x);
  9. y=enframe(x,160,80);
  10. x2=floor(x2);
  11. r=zeros(x2-x1+1,320-1);
  12. for m=x1:x2
  13.     xs=y(m,:);
  14.     r(m-x1+1,:)=xcorr(xs,'biased');
  15. end
  16. rr=zeros(x2-x1+1,13);
  17. for m=1:x2-x1+1
  18.     rr(m,:)=r(m,160:172);
  19. end
  20. for i=1:x2-x1+1
  21.     k(1)=rr(i,2)/rr(i,1);
  22.     a(1,1)=k(1);
  23.     lamg(1)=(1-k(1)*k(1))*rr(i,1);
  24.     for m=2:12
  25.         sum=0;
  26.         for j=1:m-1
  27.             sum=sum+a(j,m-1)*rr(i,m-j+1);
  28.         end
  29.         k(m)=(rr(i,m+1)-sum)/lamg(m-1);
  30.         a(m,m)=k(m);
  31.         for p=1:m-1
  32.             a(p,m)=a(p,m-1)-k(m)*a(m-p,m-1);
  33.         end
  34.         lamg(m)=(1-k(m)*k(m))*lamg(m-1);
  35.     end
  36.     for m=1:12
  37.         lpc(i,m)=-a(m,12);
  38.     end
  39. end
  40.