当前位置:文档之家› 基于MATLAB的语音信号时域特征分析

基于MATLAB的语音信号时域特征分析

,在矩形窗+k w m k)()]开始录音1)短时能量(1)加矩形窗a=wavread('C:\Users\k01\WEI.wav'); subplot(6,1,1),plot(a);N=32;for i=2:6h=linspace(1,1,2.^(i-2)*N);En=conv(h,a.*a);subplot(6,1,i),plot(En);if(i==2) legend('N=32');elseif(i==3) legend('N=64');elseif(i==4) legend('N=128');elseif(i==5) legend('N=256');elseif(i==6) legend('N=512');endend00.51 1.52 2.53 3.54x 105-0.200.200.51 1.52 2.53 3.54x 105012 N=3200.51 1.52 2.53 3.54x 105024 N=6400.51 1.52 2.53 3.54x 10505 N=12800.51 1.52 2.53 3.54x 1050510 N=25600.51 1.52 2.53 3.54x 10501020 N=512(2)加汉明窗a=wavread('C:\Users\k01\WEI.wav');subplot(6,1,1),plot(a);N=32;for i=2:6h=hanning(2.^(i-2)*N);%形成一个汉明窗,长度为2.^(i-2)*N En=conv(h,a.*a);% 求短时能量函数Ensubplot(6,1,i),plot(En);if(i==2) legend('N=32');elseif(i==3) legend('N=64');elseif(i==4) legend('N=128');elseif(i==5) legend('N=256');elseif(i==6) legend('N=512');endend00.51 1.52 2.53 3.54x 105-0.200.200.51 1.52 2.53 3.54x 10500.51 N=3200.51 1.52 2.53 3.54x 105012 N=6400.51 1.52 2.53 3.54x 105024 N=12800.51 1.52 2.53 3.54x 10505 N=25600.51 1.52 2.53 3.54x 1050510 N=51200.51 1.52 2.53 3.5x 105-0.500.53) 自相关函数N=240Y=WAVREAD('C:\Users\k01\WEI.wav');x=Y(13271:13510);x=x.*rectwin(240);R=zeros(1,240);for k=1:240for n=1:240-kR(k)=R(k)+x(n)*x(n+k);endendj=1:240; plot(j,R); grid;短时谱1)短时谱cleara=wavread('C:\Users\k01\Desktop\WENWEI.wav');subplot(2,1,1),plot(a);title('original signal');gridN=256;h=hamming(N);for m=1:Nb(m)=a(m)*h(m)endy=20*log(abs(fft(b)))subplot(2,1,2)plot(y);title('短时谱');grid00.51 1.52 2.53 3.5x 105-0.500.5original signal050100150200250300-200-100100短时谱2)语谱图[x,fs,nbits]=wavread('C:\Users\k01\Desktop\WENWEI.wav ')specgram(x,512,fs,100);xlabel('时间(s)');ylabel('频率(Hz)');title('语谱图');3)倒谱和复倒谱(1)加矩形窗时的倒谱和复倒谱cleara=wavread('C:\Users\k01\Desktop\WENWEI.wav',[4000,4350]); N=300;h=linspace(1,1,N);for m=1:Nb(m)=a(m)*h(m);endc=cceps(b);c=fftshift(c);d=rceps(b);d=fftshift(d);subplot(2,1,1)plot(d);title('加矩形窗时的倒谱')subplot(2,1,2)plot(c);title('加矩形窗时的复倒谱')050100150200250300-6-4-22加矩形窗时的倒谱050100150200250300-505加矩形窗时的复倒谱(2)加汉明窗时的倒谱和复倒谱cleara=wavread('C:\Users\k01\Desktop\WENWEI.wav',[4000,4350]); N=300;h=hamming(N);for m=1:Nb(m)=a(m)*h(m);endc=cceps(b);c=fftshift(c);d=rceps(b);d=fftshift(d);subplot(2,1,1)plot(d);title('加汉明窗时的倒谱')subplot(2,1,2)plot(c);title('加汉明窗时的复倒谱')050100150200250300-6-4-22加汉明窗时的倒谱050100150200250300-505加汉明窗时的复倒谱段的起始点;而过零率分析仅仅是表明清音的过零率高于浊音,对噪声的存在比较敏感,如果背景中有反复穿越坐标轴的随机噪声,会产生大量的虚假过零率,影响检测结果。

对于背景噪声和清音的区分则显得无能为力。

将这两种方法结合起来,通过短时能量分析去除高频环境噪声的干扰,用过零率分析去除低频的干扰,检测效果较好。

但综合考虑后,由于这两种方法本身的局限性以及过零率门限值和短时能量门限值的选取,使得检测的范围和精度仅限于单个单词,而对整个句子的检测还达不到令人满意的效果。

复倒谱一个函数的傅里叶变换的对数的傅里叶反变换。

对褶积信号的线性分离作用,在实际信号处理中很有用处,例如可应用于通信、建筑声学、地震分析、地质勘探和语音处理等领域。

尤其在语音处理方面,应用复倒谱算法可制成同态预测声码器系统,用于高度保密的通信。

在离散信号x(n)情况下,用z变换表示复倒谱,可以写作复倒谱可以利用同态系统中一种特定的特征系统来求得,如图所示。

为了区别于用一般方法所求得的频谱(spectrum),将spectrum这一词前半部(spec)字母顺序颠倒即成cepstrum,根据词形定名为倒谱。

又因频谱一般为复数谱,故称为复倒谱。

为了说明复倒谱的性质,假设已知两信号x1(n)和x2(n)相褶积而得到的时间函数x(n),对它们分别求其离散傅里叶变换,写作X(ω)=DFT【x(n)】X1(ω)=DFT【x1(n)】X2(ω)=DFT【x2(n)】按上述定义,可得到如下关系式=IDFT{log 【X1(ω)】}+IDFT{log【X2(ω)】}由此可见,通过复倒谱的运算可将x1(n)和x2(n)的褶积关系变换为相加关系,再采用一般线性系统对它们进行滤波处理。

倒谱功率谱的对数值的逆傅氏变换称为倒谱,又称作功率倒频谱。

广泛应用于语音信号处理。

倒频谱函数C(q)(power cepstrum)其数学表达式为:C(q) = | IF(log(s(f))) |^2.其中,s(f)是信号s(t)的傅里叶变换,log()为取对数,IF为逆傅里叶变换。

自相关函数(Autocorrelation Function)在不同的领域,定义不完全等效。

在某些领域,自相关函数等同于自协方差(autocovariance)。

统计学信号处理,其中“*”是卷积算符,为取共轭。

同一时间函数在瞬时t和t+a的两个值相乘积的平均值作为延迟时间t的函数,它是信号与延迟后信号之间相似性的度量。

延迟时间为零时,则成为信号的均方值,此时它的值最大。

短时傅里叶变换(STFT,short-time Fourier transform,或short-term Fourier transform))是和傅里叶变换相关的一种数学变换,用以确定时变信号其局部区域正弦波的频率与相位。

它的思想是:选择一个时频局部化的窗函数,假定分析窗函数g(t)在一个短时间间隔内是平稳(伪平稳)的,移动窗函数,使f(t)g(t)在不同的有限时间宽度内是平稳信号,从而计算出各个不同时刻的功率谱。

短时傅里叶变换使用一个固定的窗函数,窗函数一旦确定了以后,其形状就不再发生改变,短时傅里叶变换的分辨率也就确定了。

如果要改变分辨率,则需要重新选择窗函数。

短时傅里叶变换用来分析分段平稳信号或者近似平稳信号犹可,但是对于非平稳信号,当信号变化剧烈时,要求窗函数有较高的时间分辨率;而波形变化比较平缓的时刻,主要是低频信号,则要求窗函数有较高的频率分辨率。

短时傅里叶变换不能兼顾频率与时间分辨率的需求。

短时傅里叶变换窗函数受到W.Heisenberg不确定准则的限制,时频窗的面积不小于2。

这也就从另一个侧面说明了短时傅里叶变换窗函数的时间与频率分辨率不能同时达到最优。

相关主题