lsp.m
上传用户:shodew
上传日期:2014-10-29
资源大小:6k
文件大小:1k
源码类别:

语音合成与识别

开发平台:

Matlab

  1. function [P_w,Q_w,H]=lsp(s,p,num)
  2. %此函数的功能是求语音信号的线谱对参数
  3.               
  4. a=lpc_coefficients(s,p);              %求线性预测系数
  5. a=a';                                 %将a转化为行向量
  6. p=length(a); 
  7. P_c=[1,-a-a(p:-1:1),1];               %多项式P(Z)的系数
  8. Q_c=[1,-a+a(p:-1:1),-1];              %多项式Q(Z)的系数
  9. P_root=roots(P_c);                    %多项式P(Z)=0的根
  10. Q_root=roots(Q_c);                    %多项式Q(Z)=0的根
  11. P_r_angle=sort(angle(P_root));        %多项式P(Z)=0的根的辐角,并按升序排列
  12. Q_r_angle=sort(angle(Q_root));        %多项式Q(Z)=0的根的辐角,并按升序排列
  13. P_w=P_r_angle(p/2+1:p);               
  14. Q_w=Q_r_angle(p/2+2:p+1);             %为线谱对系数
  15. for k=1:num
  16.     H(k)=2^((1-p)/2)/(sin(pi/num*k).^2*prod((cos(2*pi/num*k*ones(p/2,1))-cos(Q_w)).^2)+cos(pi/num*k).^2*prod((cos(2*pi/num*k*ones(p/2,1))-cos(P_w)).^2));
  17. end