倒谱计算与分析文档格式.docx

上传人:b****5 文档编号:19550516 上传时间:2023-01-07 格式:DOCX 页数:15 大小:316.77KB
下载 相关 举报
倒谱计算与分析文档格式.docx_第1页
第1页 / 共15页
倒谱计算与分析文档格式.docx_第2页
第2页 / 共15页
倒谱计算与分析文档格式.docx_第3页
第3页 / 共15页
倒谱计算与分析文档格式.docx_第4页
第4页 / 共15页
倒谱计算与分析文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

倒谱计算与分析文档格式.docx

《倒谱计算与分析文档格式.docx》由会员分享,可在线阅读,更多相关《倒谱计算与分析文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

倒谱计算与分析文档格式.docx

被处理的信号想x(n)必须是最小相位信号。

实际上许多信号就是最小相位信号,或可以看作是最小相位信号。

语音信号的模型就是极点都在z平面单位圆内的全极点模型,或者极零点都在z平面单位圆内的极零点模型。

设信号x(n)的z变换为X(z)=N(z)/D(z),则有

根据z变换的微分特性有

若x(n)是最小相位信号,则必然是稳定的因果序列。

由Hilbert变换的性质可知,任一因果复倒谱序列都可分解为偶对称分量和奇对称分量之和:

其中

这两个分量的傅里叶变换分别为的傅里叶变换的实部和虚部。

从而可得

此即复倒谱的性质3,也就是说一个因果序列可由其偶对称分量来恢复。

如果引入一个辅助因子g(n),上式可写作

最小相位信号法求复倒谱原理框图如下

递归法

这种方法仅限于是最小相位信号的情况。

根据z变换的微分特性得

对上式求逆z变换,根据z变换的微分特性,有

所以

设x(n)是最小相位序列,而最小相位信号序列一定为因果序列,所以有

由于及可得递推公式

递归运算后由复倒谱定义

可知

如果x(n)是最大相位序列,则变为

2、基音检测;

语音的倒谱是将语音的短时谱取对数后再进行IDFT得到的,所以浊音信号的周期性激励反映在倒谱上是同样周期的冲激。

借此,可从倒谱波形中估计出基音周期。

一般把倒谱波形中第二个冲激,认为是对应激励源的基频。

下面给出一种倒谱法求基音周期的框图及流程图如下

3.共振峰检测

倒谱将基音谐波和声道的频谱包络分离开来。

对倒谱进行低时窗选,通过语音倒谱分析系统的最后一级,进行DFT后的输出即为平滑后的对数模函数,这个平滑的对数谱显示了特定输入语音段的谐振结构,即谱的峰值基本上对应于共振蜂频率,对平滑过的对数谱中的峰值进行定位,即可估计共振峰。

原理框图及流程图如下。

四、实验步骤(包括主要步骤、代码分析等)

1.倒谱MATLAB实现代码段

clearall;

%倒谱

[s,fs,nbit]=wavread('

beijing.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:

ylen/2;

sal(i)=sa(ylen/2+1-i);

end

fori=(ylen/2+1):

ylen;

sal(i)=sa(i+1-ylen/2);

%绘图

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:

200];

plot(time2,sa1);

%axis([-200,200,-0.5,0.5])

截取语音的倒谱'

运行结果如图:

2.倒谱法求浊音、清音的基音周期

functions=p5_2pitchdetect

waveFile='

[y,fs,nbits]=wavread(waveFile);

time1=1:

length(y);

time=(1:

length(y))/fs;

frameSize=floor(50*fs/1000);

%帧长

startIndex=round(5000);

%起始序号

endIndex=startIndex+frameSize-1;

%结束序号

frame=y(startIndex:

endIndex);

%取出该帧

frameSize=length(frame);

frame2=frame.*hamming(length(frame));

%加汉明窗

rwy=rceps(frame2);

%求倒谱

ylen=length(rwy);

cepstrum=rwy(1:

ylen/2);

cepstrum1(i)=rwy(ylen/2+1-i);

cepstrum1(i)=rwy(i+1-ylen/2);

%基因检测

LF=floor(fs/500);

%基因周期的范围是70~500Hz

HF=floor(fs/70);

cn=cepstrum(LF:

HF);

[mx_cepind]=max(cn);

ifmx_cep>

0.08&

ind>

LF;

a=fs/(LF+ind);

else

a=0;

pitch=a

%画图

subplot(3,1,1);

plot(time1,y);

语音波形'

%axistight

ylim=get(gca,'

ylim'

line([time1(startIndex),time1(startIndex)],ylim,'

color'

'

r'

line([time1(endIndex),time1(endIndex)],ylim,'

subplot(3,1,2);

plot(frame);

一帧语音'

subplot(3,1,3);

plot(time2,cepstrum1);

一帧语音的倒谱'

运行结果如下图:

倒谱法求浊音的基音周期

清音的倒谱

3.共振峰检测程序

qinghua.wav'

frameSize=floor(40*fs/1000);

startIndex=round(15000);

%加汉明窗

%倒谱求

%基音检测

[mx_cepind]=max(cn);

%找到最大的突起的位置

%共振峰检测核心代码

NN=ind+LF;

ham=hamming(NN);

cep=cepstrum(1:

NN);

ceps=cep.*ham;

%汉明窗

formant1=20*log(abs(fft(ceps)));

formant(1:

2)=formant1(1:

2);

fort=3:

NN

%dosomemedianfiltering

z=formant1(t-2:

t);

md=median(z);

formant2(t)=md;

fort=1:

NN-1

ift<

=2

formant(t)=formant1(t);

else

formant(t)=formant2(t-1)*0.25+formant2(t)*0.5+formant2(t+1)*0.25;

end

plot(cepstrum);

倒谱'

%axis([0,220,-0.5,0.5])

spectral=20*log(abs(fft(frame2)));

xj=(1:

length(spectral)/2)*fs/length(spectral);

plot(xj,spectral(1:

length(spectral)/2));

频谱'

频率/Hz'

幅度/dB'

%axis([0,500,-100,50])

xi=(1:

NN/2)*fs/NN;

plot(xi,formant(1:

NN/2));

平滑对数幅度谱'

%axis([0,5500,-80,0])

运行结果如图所示:

五、结果分析与总结

对语音信号进行同态分析可得到语音信号的倒谱参数。

语音的倒谱是将语音的短时谱取对数后再进行IDFT得到的,所以浊音信号的激励反映在倒谱上是同样周期的冲激,借此,可从倒谱波形中估计出基音周期。

对倒谱进行低时窗选,通过语音倒谱分析的最后一级,进行DFT后的输出即为平滑后的对数模函数,这个平滑的对数谱显示了特定输入语音段的谐振结构,即谱的峰值基本上对应于共振峰频率,对于平滑过的对数谱中的峰值进行定位,即可估计共振峰。

教师签名:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1