当前位置:首页 > 大学本科语音信号处理实验讲义8学时(DOC)
title('加矩形窗的自相关函数') xlabel('延时k')
ylabel('自相关函数R(k)') axis([0,320,-1,1]);
subplot(3,1,3) plot(B1)
title('加汉明窗的自相关函数') xlabel('延时k')
ylabel('自相关函数R(k)') axis([0,320,-1,1]);
图2-1 浊音信号加不同窗时的自相关函数
2、仍选取上题中的语音信号,改变窗长和截取语音段的长度,计算修正的短时自相关函数。取值分别为: (1)N=320,M=640; (2)N=160,M=320; (3)N=70,M=140;
[x,fs,nbits]=wavread('speech_dsp.wav');
s1=x(2500:3139); b=s1;
%窗长640,自相关运算取320个点。 b1=b(1:640); N=320;
9
A=[];
for k=1:320 sum=0; for m=1:N
sum=sum+b1(m)*b1(m+k-1); end
A(k)=sum; end
for k=1:320
A1(k)=A(k)/A(1); end %画图 figure(1)
subplot(3,1,1) plot(A1);
xlabel('延时k') ylabel('R(k)') legend('N=320')
axis([0,320,-0.5,1])
%窗长320,自相关运算取160个点。 b2=b(1:320); N=160; A=[];
for k=1:160 sum=0; for m=1:N
sum=sum+b2(m)*b2(m+k-1); end
B(k)=sum; end
for k=1:160
B1(k)=B(k)/B(1); end %画图 figure(1)
subplot(3,1,2) plot(B1);
xlabel('延时k') ylabel('R(k)') legend('N=160')
axis([0,320,-0.5,1])
%窗长140,自相关运算取70个点。
10
b3=b(1:140); N=70; A=[];
for k=1:70 sum=0; for m=1:N
sum=sum+b3(m)*b3(m+k-1); end
C(k)=sum; end
for k=1:70
C1(k)=C(k)/C(1); end %画图 figure(1)
subplot(3,1,3) plot(C1);
xlabel('延时k') ylabel('R(k)') legend('N=70')
axis([0,320,-0.5,1])
图2-2 修正的自相关函数(参加自相关运算的点数N取不同值) 四、思考题
1、自相关函数的作用是什么?互相关函数的作用是什么? 2、浊音信号分别加矩形窗和汉明窗时自相关函数有什么不同? 3、清音信号的自相关函数和浊音信号的有什么区别?
11
实验三 语音信号频域特征分析
一、实验目的
1、了解语音信号进行短时傅里叶分析的基础。
2、画出浊音信号加不同窗时的时域波形和频谱,并进行比较。
3、画出清音信号加不同窗时的时域波形和频谱,并与浊音信号进行比较。 二、实验原理
语音信号本质上是非平稳信号,其非平稳特性是由发声器官的物理运动产生的。发声器官的运动由于存在惯性,所以可以假设语音信号在10~30ms这样短的时间段内是平稳的,这是短时傅里叶分析的基础。
某一帧的短时傅里叶变换的定义式如下:
Xn(e)?jwm????x(m)w(n?m)e???jwm
式中,w(n?m)是窗函数,不同的窗函数,可得到不同的傅里叶变换的结果。在式中,短时傅里叶变换有两个变量,即离散时间n及连续频率w,若令w?2k?/N,则可得到离散的短时傅里叶变换如下:
Xn(ej2k?N)?m????x(m)w(n?m)e???j2k?mN,0?k?N?1
对于w(n?m)窗来说,它除了具有选出x(m)序列中被分析部分的作用外,它的形状对时变傅里叶变换的特性也有重要作用。采用矩形窗时,基音谐波的各个峰都比较尖锐,而整个频谱图显得比较破碎,这是因为矩形窗的主瓣较窄,具有较高的频率分辨率,但它也具有较高的旁瓣,因而使基音的相邻谐波之间的干扰比较严重。相邻谐波之间的这种“泄露”的现象,抵消了矩形窗主瓣窄的优点,因此,在语音短时频谱分析中极少采用矩形窗。当加汉明窗时,得到的短时频谱要平滑得多,因而在语音分析中汉明窗用得比较普遍。 三、实验内容
1、根据给出的浊音语音,画出它分别加矩形窗和汉明窗的时域波形和短时频谱。 %函数文件fra.m,对语音信号进行帧长为frame,重叠为shift的分帧 function output=fra(frame,shift,x) len=length(x);
frame_num=floor((len-frame)/shift)+1; y=zeros(frame_num,frame); for i=1:frame_num
y(i,:)=x((shift*(i-1)+1):(shift*(i-1)+frame))'; end
output=y;
%浊音的波形和短时频谱图(窗长256)
[x,fs,nbits]=wavread('speech_dsp.wav'); e=fra(256,128,x); ee=e(20,:); subplot(2,2,1)
12
共分享92篇相关文档