基于matlab的语音处理

基于matlab的语音处理

ID:11877110

大小:312.01 KB

页数:12页

时间:2018-07-14

基于matlab的语音处理_第1页
基于matlab的语音处理_第2页
基于matlab的语音处理_第3页
基于matlab的语音处理_第4页
基于matlab的语音处理_第5页
资源描述:

《基于matlab的语音处理》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数字语音处理处理上机报告指导老师:陈振兴姓名:班级序号:071112-11日期:2014年09月30日12目录一、题目要求:3二、算法设计:31、加窗处理函数:32、计算能量函数:33、计算幅值函数44、计算过零率45、计算自相关函数56、运行脚本文件:5三、运行效果及分析:61.原始信号、能量谱及幅度谱效果对比(N=500):62.根据过零率判断清音及浊音:83.自相关函数效果:84.N=1000时重复实验效果:10四、实验小结1212一、题目要求:使用Matlab读取一段语音信号做如下处理:1)将语音信号加窗;2)

2、计算每一帧信号能量;3)计算每一帧信号幅度;4)计算过零率;5)计算自相关系数;二、算法设计:1、加窗处理函数:function[wav_out,R,C]=Add_win(wav_in,N)%输入原始语音数据和窗宽,输出加窗后语音数据[C,R]=size(wav_in);%获得语言信号矩阵尺寸wav_out=zeros(C/N/2+1,N);%创建新矩阵,用于存放结果cnt=1;fori=1:(N/2):(C-N)%遍历原始数据,根据N加窗forj=1:Nwav_out(cnt,j)=wav_in((cnt-1)*N/

3、2+j,1);endcnt=cnt+1;endend2、计算能量函数:function[wav_e]=Calculate_E(wav_in)%输入帧语音数据,输出帧能量[C,R]=size(wav_in);%获得语言信号矩阵尺寸temp=zeros(C,R);%创建新矩阵,用于缓存数据wav_e=zeros(1,C);%创建新矩阵,用于存放结果fori=1:Cforj=1:Rtemp(i,j)=wav_in(i,j)*wav_in(i,j);%计算每个数据的能量end12endfori=1:Cforj=1:Rwav_e

4、(1,i)=wav_e(1,i)+temp(i,j);%计算每帧数据能量endendend3、计算幅值函数function[wav_a]=Calculate_A(wav_in)%输入帧语音数据,输出帧幅度[C,R]=size(wav_in);%获得语言信号矩阵尺寸temp=zeros(C,R);%创建新矩阵,用于缓存数据wav_a=zeros(1,C);%创建新矩阵,用于存放结果fori=1:Cforj=1:Rtemp(i,j)=abs(wav_in(i,j));%计算每个数据的幅度endendfori=1:Cforj

5、=1:Rwav_a(1,i)=wav_a(1,i)+temp(i,j);%计算每帧数据幅值endendend4、计算过零率function[wav_rate]=Calculate_Rate(wav_in)%输入帧语音数据,输出帧过零率[C,R]=size(wav_in);%获得语言信号矩阵尺寸wav_rate=zeros(1,C);%创建新矩阵,用于存放结果fori=1:%遍历每一帧数据,将相邻数据相乘forj=1:R-1temp=wav_in(i,j)*wav_in(i,j+1);iftemp<012wav_rate

6、(1,i)=wav_rate(1,i)+1;%乘积小于零,则认为过零一次endendendend5、计算自相关函数function[wav_sr]=Calculate_sr(wav_in)%输入帧数据,输出自相关函数[C,R]=size(wav_in);%获得语言信号矩阵尺寸wav_sr=zeros(1,R-1);%创建新矩阵,用于存放结果fork=1:R-1%遍历每一帧数据,将间隔为k的数据相乘forj=1:R-kwav_sr(1,k)=wav_sr(1,k)+wav_in(20,j)*wav_in(20,j+k);

7、endendend6、运行脚本文件:clearall;closeall;wav_in=wavread('speech_Chinese.wav');%读取语言信号[wav_out,R,C]=Add_win(wav_in,500);%加窗处理plot(wav_in);holdon;%绘制原始信号图像figure;[wav_e]=Calculate_E(wav_out);%计算能量[wav_a]=Calculate_A(wav_out);%计算幅值[wav_rate]=Calculate_Rate(wav_out);%计算过

8、零率[wav_sr]=Calculate_sr(wav_out);%计算自相关函数plot(wav_e);holdon;%绘制能量谱figure;plot(wav_a);holdon;%绘制幅度谱figure;plot(wav_rate);holdon;%绘制过零率曲线figure;plot(wav_sr);holdon;%绘制自

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。