电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

用MATLAB实现语音信号的时域分析

用MATLAB实现语音信号的时域分析_第1页
1/10
用MATLAB实现语音信号的时域分析_第2页
2/10
用MATLAB实现语音信号的时域分析_第3页
3/10
实验一、用 MATLAB 实现语音信号的时域分析 1 1. 实验目的 观察并验证语音信号的时域特性,理解并掌握典型的语音信号时域分析方法和时域特征,为深入学习语音信号处理的各种应用奠定基础。 2. MATLAB 程序代码 (1)由麦克风采集语音数据,将采集的数据存成WAV 文件(采样率为8000Hz),存在本人的文件夹中。所用程序代码为: clear; close all; Fs=8000; y=wavrecord(5*Fs,Fs,'double'); wavwrite(y,'f:\\a'); soundview(y,Fs,'name') (2)读取 WAV 文件,显示语音信号的波形。所用程序代码为: x = wavread('f:\\a.wav'); figure; plot(x); axis([0,size(x,1),-0.35,0.3]); %坐标轴范围 title(' 语音信号时域波形 ');xlabel('样点数 '); ylabel('幅度');( 3)读取 WAV 文件,计算并显示语音的短时能量(窗函数为矩形窗,帧长为20)。所用程序代码为: x = wavread('f:\\a.wav'); x = double(x); f = enframe(x,20, 100); energy = sum(abs(f), 2); subplot(2,2,1);plot(x); axis([0,size(x,1),-0.7,0.9]); title('语音信号时域波形');xlabel('样点数'); ylabel('幅度'); subplot(2,2,2);plot(energy); title('语音信号的短时能量'); legend('帧长 LEN = 20'); f = enframe(x,20, 200); energy = sum(abs(f), 2); subplot(2,2,3);plot(energy); title('语音信号的短时能量'); legend('帧长 LEN = 100'); f = enframe(x,20, 400); energy = sum(abs(f), 2); subplot(2,2,4);plot(energy); title('语音信号的短时能量'); legend('帧长 LEN = 200'); 2 (4)读取WAV 文件,计算并显示语音的短时过零率(窗函数为矩形窗,帧长为256,帧移为128),所用程序代码为: x = wavread('f:\\a.wav'); x = double(x); LEN =100; INC=100; f = enframe(x, LEN, INC); %分帧 % 计算短时过零率 z = zeros(size(f,1),1); difs =0.01; for i=1:size(f,1) s=f(i,:); for j=1:(length(s)-1) if s(j)* s(j+1)<0&abs(s(j)-s(j+1))>difs; z(i)= z(i)+1; end end end subplot(2,1,1); plot(x); axis([0,size(x,1),-0.35,0.3]); title('语音信号时域波形'); xlabel('样点数'); ylabel('幅度'); subplot(2,1,2);plot(z); title('语音信号的短时过零率');xlabel('帧数'); ylabel('短时过零率'); (5)读取WAV 文件,当窗函数...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

用MATLAB实现语音信号的时域分析

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部