1、语音信号的时域特性和频域特性2. 实验类型验证性实验3. 实验目的观察并验证语音信号的时域特性和频域特性,理解并掌握典型的语音信号时域分析方法和频域分析方法,为深入学习数字语音信号处理的相关理论奠定基础。4. 实验设备安装有MATLAB的计算机5. 实验内容1. 输入并运行MATLAB代码。2. 观察语音信号的时域特性(1)发一个清音和一个浊音,由麦克风采集语音数据,参考实验内容1中的程序将这些数据分别存成两个“.wav”文件(例如a的语音存为“a.wav”,要求采样率为8000),存在本人的文件夹中。(2)读取WAV文件,显示语音波形,观察清音和浊音波形的差异。(3)读取WAV文件,计算并显
2、示语音的短时能量(要求分帧加窗的帧长为256,帧移为128),观察并分析清音和浊音短时能量的差异。(4)读取WAV文件,计算并显示语音的短时过零率(要求分帧加窗是的帧长为256,帧移为128),观察并分析清音和浊音短时过零率的差异。3. 观察语音信号的频域特性(1)读取WAV文件,计算并显示一帧语音的原始信号、加窗信号、短时频谱(要求分帧加窗的窗函数为汉明窗、帧长为256,帧移为128),观察并分析清音 和浊音短时频谱的差异。(2)读取WAV文件,计算并显示不同窗函数情况下一帧语音的加窗信号、短时频谱(要求分帧加窗的窗函数分别为矩形窗和汉明窗、帧长为256,帧移为128),观察并分析不同的窗函
3、数对短时谱分析的影响。6. 相关函数wavread、plot、fft7. MATLAB程序代码1. 输入并运行以下MATLAB代码。(1) 短时能量 clear;close all;Fs=11025;y=wavrecord(5*Fs,Fs,double);wavwrite(y,f:asoundview(y,Fs);x = wavread(a.wavx = double(x);x = filter(1 -0.9375, 1, x); % 预加重FrameLen = 256;FrameInc = 128;s = enframe(x, FrameLen, FrameInc);energy = sum
4、(abs(s), 2);figure;subplot(2,1,1);plot(x);title(语音信号时域波形xlabel(样点数ylabel(幅度subplot(2,1,2);plot(energy);语音信号的短时能量帧数短时能量legend(帧长FrameLen = 240(2) 短时过零率FrameInc =128;tmp1 = enframe(x(1:end-1), FrameLen, FrameInc);tmp2 = enframe(x(2:end) , FrameLen, FrameInc);signs = (tmp1.*tmp2)0.02;zcr = sum(signs.*d
5、iffs, 2);plot(zcr);短时过零率语音信号的短时过零率(3) 短时傅里叶变换 FrameLen =256;ss=s(50,: %选取一帧语音信号(可以通过观察短时能量的分布来判断哪一帧是清音段还是浊音段)f=ss.*hamming(length(ss);r=fft(f,512);r1=abs(r); r1=r1/max(r1);yuanlai=20*log10(r1);signal(1:256)=yuanlai(1:256);pinlv=(0:1:255)*11025/512;subplot(3,1,1);plot(ss);axis(0,256,-1,1)截取的语音段subplo
6、t(3,1,2);plot(f);窗选语音信号subplot(3,1,3);plot(pinlv,signal);频率/Hz对数幅度/dBtitle (加Hamming窗时语音频谱(4) 显示清音短时过零率k.wav2:语音信号的频域分析1. 加汉明窗的浊音ss=s(125,:加Hamming窗时语音频谱2. 加汉明窗的清音ss=s(90,:3. 加矩形窗的浊音.*rectwin(length(ss);加矩形窗时语音频谱)8. 实验结果及其分析浊音 (1) 短时能量 (2) 短时过零率(3) 短时傅里叶变换清音(1) 短时能量加窗(1)加汉明窗的浊音(2)加汉明窗的清音(3)加矩形窗的浊音分析
7、:(1) 对于浊音与清音,浊音的幅值比较明显,有一个的波动,能清楚的看清楚它的周期;而清音类似于白噪声,没有明显的幅值,很平缓。(2) 浊音的短时能量高,轻音的短时能量低;浊音的短时过零率低,而清音的短时过零率高。(3) 总而言之,浊音对于分析语音信号是很有用的语音信号。9. 收获与体会从这次实验中,收获不少。能更进一步的了解浊音与清音的区别以及他们的相同点,他们的用途以及相关函数的表示方式与差别,例如:短时过零率、短时能量等。对MATLAB的使用方法与相关函数又有了新的认识与了解。这次实验让我学到了不少。更加掌握了知识,从某种程度上,也增加了我学习MATLAB的兴趣。也为我自己以后从事相关的事务做了一定的铺垫基础。