欢迎来到天天文库
浏览记录
ID:56912755
大小:207.00 KB
页数:5页
时间:2020-07-23
《复倒谱的计算 和matlab实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、复倒谱的计算和matlab实现一、计算原理在复倒谱分析中,z变换后得到的是复数,所以取对数时要进行复对数运算。这时存在相位的多值性问题,称为“相位卷绕”设信号为则其傅里叶变换为对上式取复对数为则其幅度和相位分别为上式中,虽然,的范围均在之内,但的值可能超过范围。计算机处理时总相位值只能用其主值表示,然后把这个相位主值“展开”,得到连续相位。所以存在情况:(k为整数)此时即产生了相位卷绕。这会是后面求复倒谱以及由复倒谱恢复语音带来不确定性产生错误改进方法1、最小相位信号法适用条件:被处理的信号想x(n)必须是最小相位信号。实际上许多信号就是最小相位信号,或可以看作是最小相位信号。语音信号的模
2、型就是极点都在z平面单位圆内的全极点模型,或者极零点都在z平面单位圆内的极零点模型。设信号x(n)的z变换为X(z)=N(z)/D(z),则有根据z变换的微分特性有若x(n)是最小相位信号,则必然是稳定的因果序列。由Hilbert变换的性质可知,任一因果复倒谱序列都可分解为偶对称分量和奇对称分量之和:其中这两个分量的傅里叶变换分别为的傅里叶变换的实部和虚部。所以:此即复倒谱的性质3,也就是说一个因果序列可由其偶对称分量来恢复。如果引入一个辅助因子g(n),上式可写作其中:原理框图:2.递归法同样只能适用于x(n)是最小相位信号的情况。根据z变换的微分特性得;对上式求逆z变换,根据z变换的微
3、分特性,有所以:;设x(n)是最小相位序列,而最小相位信号序列一定为因果序列,所以有;由于及,可得递推公式;递归运算后由复倒谱定义:可知:同理若x(n)是最大相位序列:其中的。二.Matlab实现M程序clearall;%倒谱[s,fs,nbit]=wavread('yuyin.wav');%读入一段语音b=s';%将s转置x=b(5000:5399);%取400点语音N=length(x);%读入语音的长度S=fft(x);%对x进行傅立叶变换Sa=log(abs(S));%log为以e为底的对数sa=ifft(Sa);%对Sa进行傅立叶逆变换ylen=length(sa);fori=1
4、:ylen/2sa1(i)=sa(ylen/2+1-i);endfori=(ylen/2+1):ylensa1(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('
5、幅度');采集的是普通室内的语音helloworld采样率8KHZ单声道050100150200250300350400-0.500.5截取的语音段样点数幅度-200-150-100-50050100150200-0.500.5截取语音的倒谱样点数幅度试验结果朱熹参考书籍1.《数字语音处理及仿真》张雪英2.《语音信号处理》韩纪庆张磊郑铁然
此文档下载收益归作者所有