logo资料库

复倒谱技术.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
复倒谱的计算 和 matlab 实现 一、计算原理 在复倒谱分析中,z 变换后得到的是复数,所以取对数时要进行复对 数运算。这时存在相位的多值性问题,称为“相位卷绕” 设信号为 )( nx  )( nx 1  )( nx 2 则其傅里叶变换为 ( eX ) j   ( eX 1 ) j   ( eX 2 ) j  对上式取复对数为 ln ( eX j )   ln ( eX 1 j )   ln ( eX 2 j )  则其幅度和相位分别为 ln ( eX  j ln )  ) (  ( eX 1 ) ( ln )  j )    ( 1 ( eX 2 j )  )    ( ) ) ( ( 1 2 2 上式中,虽然 的值可能超过 (1  ) (2  ) , ( , ) 的范围均在  , 之内,但 ( ) 范围。计算机处理时总相位值只能用其主 值 ) ( 表示,然后把这个相位主值“展开”,得到连续相位。所 以存在情况:  k2)   ( ( ) (k 为整数) 此时即产生了相位卷绕。这会是后面求复倒谱以及由复倒谱恢 复语音带来不确定性产生错误 改进方法 1、最小相位信号法 适用条件: 被处理的信号想 x(n)必须是最小相位信号。实际上许多信号就 是最小相位信号,或可以看作是最小相位信号。语音信号的模型就是
极点都在 z 平面单位圆内的全极点模型,或者极零点都在 z 平面单位 圆内的极零点模型。 设信号 x(n)的 z 变换为 X(z)=N (z)/ D(z) ,则有 根据 z 变换的微分特性有 n    )(ˆ znxn n   ln )( zN )( zD   )(ˆ zX )(ˆ ln )( zX zX )(   dz zN dz   )( dz dz zD       )( )( )( zDzN zNzDz  )( )( zDzN )( ln  若 x(n)是最小相位信号,则 必然是稳定的因果序列。 )(ˆ nx 由 Hilbert 变换的性质可知,任一因果复倒谱序列都可分解为偶对称 分量和奇对称分量之和: 其中   )(ˆ nx )(ˆ nxo )(ˆ nxe )(ˆ nx  o (ˆ nx  (ˆ nx  )(ˆ nx e  )(ˆ nx  )(ˆ nx  )(ˆ nx  2/)  2/) 这两个分量的傅里叶变换分别为 的傅里叶变换的实部和虚 部。 (ˆ eX j )     n  )(ˆ enx  jn   (ˆ eX R j )   (ˆ eXj I j )  所以: )(ˆ nx  0   )(ˆ nx  e  )(ˆ2 nx  e n n n    0 0 0 此即复倒谱的性质 3,也就是说一个因果序列可由其偶对称分量来恢 )(ˆ )( nxng e 复。如果引入一个辅助因子 g(n),上式可写作 )(ˆ nx   其中: ( ) g n      0 1 2 n n n    0 0 0 原理框图: )(nx DFT ( jeX ) 复对数 lg( ) (ˆ eX R ) j   lg ( eX ) j  实部 IDFT )(ˆ nx )(ˆ nxe  )(ng
2.递归法 同样只能适用于 x(n)是最小相位信号的情况。 dz dz 对上式求逆 z 变换,根据 z 变换的微分特性,有 根据 z 变换的微分特性得 dz )( dz  )( zX  zX  ; )( zX   )(ˆ nxn   )( nx  )( nxn 所以: ( nx )   k     k n    (ˆ ( nxkx )  k ) n  0 ; 设 x(n)是最小相位序列,而最小相位信号序列一定为因果序列 ,所 以有 )( nx  n  k  0 ( k n ()(ˆ) knxkx  )  n 1   k  0    k n    ()(ˆ knxkx  )  )0()(ˆ xnx 由于 )(ˆ kx  (0 k  )0 及 )(ˆ nx (ˆ knx  )( nx )0( x   )  1 n  k  0 ) n (0 k  k knxkx    )(ˆ   )0( n   ,可得递推公式 ( x ) ; 递归运算后由复倒谱定义: 可知: x )0( 1   z  ln  xz )0( )(ˆ nx    1   z  ln  )( nxz    ln x )()0( n   ln x z 1   ln[   )0(  n  nznx  )( ;  ]   同理 若 x(n)是最大相位序列: )( ng     0 0 n   1 0 n   2 0 n  knxkx  )(ˆ) )0( ( x ) n  0 0  1 nk  ( k n )(ˆ nx  )( nx )0( x  其中的 )0(ˆ x  ln x )0( 。 二.Matlab 实现 M程序clear all;
%读入一段语音 %将s转置 %取400点语音 %读入语音的长度 %对x进行傅立叶变换 %log为以e为底的对数 %对Sa进行傅立叶逆变换 %倒谱 [s,fs,nbit]=wavread('yuyin.wav'); b=s'; x=b(5000:5399); N=length(x); S=fft(x); Sa=log(abs(S)); sa=ifft(Sa); ylen=length(sa); for i=1:ylen/2 sa1(i)=sa(ylen/2+1-i); end for i=(ylen/2+1):ylen sa1(i)=sa(i+1-ylen/2) end %绘图 figure(1); subplot(2,1,1); plot(x); axis([0,400,-0.5,0.5]) title('截取的语音段'); xlabel('样点数'); ylabel('幅度'); subplot(2,1,2); time2=[-199:1:-1,0:1:200]; plot(time2,sa1); axis([-200,200,-0.5,0.5]) title('截取语音的倒谱'); xlabel('样点数'); ylabel('幅度'); 采集的是普通室内的语音 hello world 采样率8KHZ 单声道 试验结果 0. 5 截取的语音段 幅 度 0 -0. 5 0 0. 5 幅 度 0 -0. 5 -20 0 5 0 10 0 15 0 20 0 样点数 截取语音的倒谱 25 0 -15 0 -10 0 -5 0 0 样点数 5 0 30 0 10 0 35 0 15 0 40 0 20 0
081182039 朱熹 参考书籍 1.《数字语音处理及仿真》 张雪英 2.《语音信号处理》 韩纪庆 张磊 郑铁然
分享到:
收藏