ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:188KB ,
资源ID:1031380      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-1031380.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于matlab的语音信号的采集和处理设计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

基于matlab的语音信号的采集和处理设计.doc

1、基于MATLAB的语音信号的采集和处理摘要:本文介绍了一种基于matlab的语音信号的采集和处理设计实现方案。声音是由物体的振动产生,以声波的形式在介质中传播,介质主要可分为固 体, 液体以及气体。 声波振动内耳的听小骨, 这些振动被转化为微小的电子脑波, 它就是我们觉察到的声音。 内耳采用的原理与麦克风捕获声波或扬声器的发音一 样,它是移动的机械部分与气压波之间的关系。在国际标准中,人声的频率范围 是 300Hz3400Hz,不同的人或乐器产生的声音频率不一致,通过对声音信号的 研究能够更好的处理声音信号的处理以及传输。Matlab 作为一款主要面对科学 计算、可视化以及交互式程序设计的高科

2、技计算软件,能够很好的完成对声音信 号的分析和处理,快速的得出声音信号的时域图以及频域图。关键字:声音|、频率、时域图、频域图1绪 论1.1课题研究目的及意义 掌握语音信号采集的方法 掌握一种语音信号基音周期提取方法 了解Matlab的编程方法 1.2本课题的设计要求及设计方案概述一:使用wavrecord录入自己的语音信号,使用save函数进行保存后使用wavplay 函数进行播放。二:使用plot再画出该语音信号的时域波形,对原始波形进行用fft函数傅里叶 变换后,使用plot画出其频谱。三:设计切比雪夫的低通,高通,带通滤波器对原始信号进行滤波。四: 画出滤波后的信号时域、频域图五:考虑

3、到国际标准人声的频率范围在300Hz3400Hz,于是给原始语音信号加入 3800hz的正弦高频噪声,再分析语音信号的特点。六:设计低通计滤波器将高频噪声滤除。2设计过程2.1本课题的设计要求1,使用wavrecord录入自己的语音信号,保存到一个数组后,再使用save函数进行保存文件,后使用wavplay函数进行播放。程序实现如下:fs=8000;%采样频率为8000hzy=wavrecord(3*fs,fs);%录入3s的声音wavplay(y,fs);%播放已录入的声音信号file=voice.mat;%创建一个数据文件,且赋给变量filesave(voice.mat,y);%将语音数据

4、保存到数据文件voice.mat中load voice.mat; %读出voicet.mat的语音数据2,使用plot再画出该语音信号的时域波形程序代码为:subplot(211);%对图形窗口进行分割plot(y);xlabel(time n);ylabel(amplitude);title(原始语音信号);%标出横纵坐标和图像名称再对原始波形进行用fft函数傅里叶变换后得到向量,使用plot画出其频谱。因为直接用fft得出的数据与频率不是对应的,由于fftshift可以将fft的直流分量移到频谱中心,即让正半轴部分和负半轴部分的图像分别关于各自的中心对称。故再使用fftshift对fft进

5、行变换。程序代码为:a=fftshift(fft(y,l)/l);%对语音信号进行离散时间傅里叶变换,且将fft的直流分量移到频谱中心fd=fs/l;fx=fd*(-l/2:l/2-1);%将横轴变为频率轴fy=abs(a);%将纵轴变为频率幅度轴subplot(212);plot(fx,fy);xlabel(频率Hz);ylabel(幅度);title(原始信号频谱);如图所示:3,设计切比雪夫滤波器对原始信号进行滤波时,利用cheb1ord计算滤波器阶数:N, Wn =cheb1ord(Wp, Ws, Rp, Rs);利用cheby1计算滤波器系数:b,a = cheby1(N,Wn)。其

6、中设计了通带截止频率为1000hz,阻带截止频率为1200hz的低通滤波器,如图所示 程序为:fph=1000; fsh=1200; rp=2; rs=15; omegaph=fph/(fs/2); %归一化 omegash=fsh/(fs/2); N,wn=cheb1ord(omegaph,omegash,rp,rs); BZ,AZ=cheby1(N,rp,wn,low); yl=filter(BZ,AZ,y);subplot(211);plot(yl);xlabel(time n);ylabel(amplitude);title(低通滤波后语音信号时域波形);al=fftshift(fft

7、(yl,l)/l;%对低通滤波后信号进行傅里叶变换fdl=fs/l;fxl=fdl*(-l/2:l/2-1);fyl=abs(al);subplot(212);plot(fxl,fyl);xlabel(频率Hz);ylabel(幅度);title(低通滤波后信号频谱);设计了通带截止频率为2000hz,阻带截止频率为1600hz的高通滤波器,如图所示 fph=2000; fsh=1600; rp=2; rs=15; omegaph=fph/(fs/2); omegash=fsh/(fs/2); N,wn=cheb1ord(omegaph,omegash,rp,rs); BZ,AZ=cheby1

8、(N,rp,wn,high); %计算切比雪夫高通滤波器系数 yh=filter(BZ,AZ,y);subplot(211);plot(yh);xlabel(time n);ylabel(amplitude);title(高通滤波后语音信号时域波形);ah=fftshift(fft(yh,l)/l;fdh=fs/l;fxh=fdh*(-l/2:l/2-1);fyh=abs(ah); subplot(212);plot(fxh,fyh);xlabel(频率Hz);ylabel(幅度);title(高通滤波后信号频谱);设计了截止频率Wp1000Hz 2000Hz;阻带截止频率Ws800Hz 25

9、00Hz;的带通滤波器,如图所示程序为: fph=1000,2000; fsh=800,2500; rp=3; rs=20; omegaph=fph/(fs/2); omegash=fsh/(fs/2); N,wn=cheb1ord(omegaph,omegash,rp,rs); BZ,AZ=cheby1(N,rp,wn,bandpass); yb=filter(BZ,AZ,y); subplot(211);plot(yb);xlabel(time n);ylabel(amplitude);title(带通滤波后语音信号时域波形);ab=fftshift(fft(yb,l)/l;fdb=fs/

10、l;fxb=fdb*(-l/2:l/2-1);fyb=abs(ab);subplot(212);plot(fxb,fyb);xlabel(频率Hz);ylabel(幅度);title(带通滤波后信号频谱);4,使用wavplay函数播放滤波前后的语音信号程序为:wavplay(y,fs); %播放原始语音信号wavplay(yl,fs); %播放低通滤波后语音信号wavplay(yh,fs); %播放高通滤波后语音信号wavplay(yb,fs); %播放带通滤波后语音信号可以明显地听到经过低通后声音明显较先前低沉但音量减小,如下一、二图所示,低通滤波后信号高频部分明显大幅衰,即信号只剩余低音

11、部分;经过高通滤波后声音较原始信号刺耳但音量减小,如下一、三图所示,高通滤波后信号低频部分明显大幅衰,剩下高频部分,即信号只剩余高音部分;经过带通滤波后声音较原始信号无明显区别但音量明显减小,如下一、四图所示,带通滤波后信号低频和高频部分明显大幅衰,剩下中频部分,即信号只剩余中音部分;如图所示,分别为原始信号,低滤波后信号,高通滤波后信号,带通滤波后信号频谱5,考虑到国际标准人声的频率范围在300Hz3400Hz,于是给原始语音信号加入频率为3800hz的正弦高频噪声,如图所示,为加入高频噪声后的信号时域波形和频谱图,由图可以看出,加入信号后的时域波形明显幅度加大,使用wavplay函数播放也

12、可明显听到明显滴声,频谱图中也可看到较原信号而言,加噪声后频谱在3800hz和-3800hz处增加了一高峰。程序为:Au=1;t=0:1/fs:(l-1)/fs;d=Au*sin(2*pi*3800*t); %构造频率为3800hz的正弦信号,且取其一段d=d;yy=y+d; %将所得噪音信号加入原始信号中subplot(211);plot(yy); %绘制加入噪音后波形xlabel(time n);ylabel(amplitude);title(加入噪音后语音信号时域波形);ay=fftshift(fft(yy,l)/l;fdy=fs/l;fxy=fdy*(-l/2:l/2-1);fyy=a

13、bs(ay);subplot(211);plot(yy);%绘制加入噪音后频谱xlabel(time n);ylabel(amplitude);title(加入噪音后语音信号时域波形);6,设计阻带截止频率为3600,通带截止频率为3400的切比雪夫低通计滤波器将高频噪声滤除。所得信号时域波形及频谱图如下:程序为:fph=3400; fsh=3600; rp=2; rs=60; omegaph=fph/(fs/2); omegash=fsh/(fs/2); N,wn=cheb1ord(omegaph,omegash,rp,rs); BZ,AZ=cheby1(N,rp,wn,low); yyy=

14、filter(BZ,AZ,yy);subplot(211);plot(yyy);xlabel(time n);ylabel(amplitude);title(对加噪信号滤波后语音信号时域波形);ayy=fftshift(fft(yyy,l)/l);fdyy=fs/l;fxyy=fdyy*(-l/2:l/2-1);fyyy=abs(ayy);subplot(212);plot(fxyy,fyyy);xlabel(频率Hz);ylabel(幅度);title(加入噪音滤波后信号频谱);3本课题的设计原理1、采样定理: 在进行模拟与数字信号的转换过程中,当采样大于最高频率的 2 倍 时,则采样之后的

15、数字信号完整的保留了原始信号中的信息,一般实际 应用中保证采样频率为信号最高频率的 510 倍。 2、采样频率: 采样频率是指计算机每秒钟采样多少个声音样本, 是描述声音文件 的音质、音频、衡量声卡、声音文件的质量标准。采样频率越高,即采 样的时间间隔越短,则在单位时间内计算机得到的声音样本数据越多,对声音波形的表示也越准确。 3、采样位数与采样频率: 采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指 声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。 采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声 音的还原就越真实越自然。 采样位数和采样率对于音频接口来

16、说是最为 重要的两个指标。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。采样位数越多则捕捉到的信号越精确。 4、利用MATLAB对语音信号进行分析 和处理: 采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析, 设计合适的滤波器滤除噪声,恢复原信号。4 总结和心得体会在为期一周的设计中我遇到不少的问题,主要有以下两点:1,刚开始时对fft函数的本质不是很了解,导致画出的波形有一半是人声无法发出的高频。后来经过复习信号与系统的课本,与同学讨论后才发现这部分看起来是高频的成分实际是-w,因为直接用fft得出的数

17、据与频率不是对应的,由于fftshift可以将fft的直流分量移到频谱中心,即让正半轴部分和负半轴部分的图像分别关于各自的中心对称。故再使用fftshift对fft进行变换。2,加入噪声时发现直接加入频率为5500hz的正弦信号后所得信号频率不再是实际的5500hz,再次翻阅书本才回忆起采样的原则是Ws2Wm,若采样频率为fs=8000,则5000hz频谱将会出现重叠现象,信号无法恢复,即所得噪音信号频率改变,考虑到国际标准人声的频率范围在300Hz3400Hz,于是改为给原始语音信号加入频率为3800hz的正弦高频噪声。通过这一个星期的课程设计, 同时我学到了很多的东西,不仅巩固了我以前所

18、学过的知识, 还让我学到很多在书本上所没有学到过的知识。 同时进一步加深了对语音信号的了解和熟练了对 Matlab 的使用。 也深深地体会到作为工科女独有的骄傲,因为以前都是基于课本上所学的理论知识,很少将所学知识运用于实际,而通过这次课程设计之后更加感觉到只是会做题并不代表真正理解了课本的知识,必须要在实际中才能真正地理解。同时,这次设计也让我感受到了书本的知识也很重要,做任何一个工程,再小都需要足够的理论知识作为垫脚石。 5参考文献【1】Alan.V.Oppenheim,Signal and System,电子工业出版社,2009.【2】数学实验讲义,电子科技大学出版社,2010.【3】刘

19、树棠, 信号与系统计算机练习利用 MATLAB,西安交通大学出版社,2006【4】 谢云荪,数学实验,科学出版社,1999.【5】苏金明,MATLAB 实用教程,电子工业出版社,2005.【6】徐全智,概率论与数理统计,高等教育出版社,2004. 【7】杨克昌,计算机程序设计典型例题精解,国防科技大学出版社程序清单fs=8000;%采样频率为8000hzy=wavrecord(3*fs,fs);%录入3s的声音wavplay(y,fs);%播放已录入的声音信号file=voice.mat;%创建一个数据文件,且赋给变量filesave(voice.mat,y);%将语音数据保存到数据文件voi

20、ce.mat中load voice.mat; %读出voicet.mat的语音数据subplot(211);%对图形窗口进行分割plot(y);xlabel(time n);ylabel(amplitude);title(原始语音信号);%标出横纵坐标和图像名称a=fftshift(fft(y,l)/l);%对语音信号进行离散时间傅里叶变换,且将fft的直流分量移到频谱中fd=fs/l;fx=fd*(-l/2:l/2-1);%将横轴变为频率轴fy=abs(a);%将纵轴变为频率幅度轴subplot(212);plot(fx,fy);%画出原始信号频谱图xlabel(频率Hz);ylabel(幅

21、度);title(原始信号频谱);fph=1000; %低通滤波程序开始 fsh=1200; rp=2; rs=15; omegaph=fph/(fs/2); %归一化 omegash=fsh/(fs/2); N,wn=cheb1ord(omegaph,omegash,rp,rs); %计算滤波器阶数 BZ,AZ=cheby1(N,rp,wn,low);%计算滤波器系数 yl=filter(BZ,AZ,y);%对原始信号低通滤波subplot(211);plot(yl);xlabel(time n);ylabel(amplitude);title(低通滤波后语音信号时域波形);al=fftsh

22、ift(fft(yl,l)/l);%对低通滤波后信号进行傅里叶变换fdl=fs/l;fxl=fdl*(-l/2:l/2-1);fyl=abs(al);subplot(212);plot(fxl,fyl);xlabel(频率Hz);ylabel(幅度);title(低通滤波后信号频谱);fph=2000; %高通滤波程序开始 fsh=1600; rp=2; rs=15; omegaph=fph/(fs/2); omegash=fsh/(fs/2); N,wn=cheb1ord(omegaph,omegash,rp,rs); BZ,AZ=cheby1(N,rp,wn,high); %计算切比雪夫高

23、通滤波器系数 yh=filter(BZ,AZ,y);subplot(211);plot(yh);xlabel(time n);ylabel(amplitude);title(高通滤波后语音信号时域波形);ah=fftshift(fft(yh,l)/l);fdh=fs/l;fxh=fdh*(-l/2:l/2-1);fyh=abs(ah); subplot(212);plot(fxh,fyh);xlabel(频率Hz);ylabel(幅度);title(高通滤波后信号频谱);fph=1000,2000; %带通滤波程序开始 fsh=800,2500; rp=3; rs=20; omegaph=fp

24、h/(fs/2); omegash=fsh/(fs/2); N,wn=cheb1ord(omegaph,omegash,rp,rs); BZ,AZ=cheby1(N,rp,wn,bandpass); yb=filter(BZ,AZ,y); subplot(211);plot(yb);xlabel(time n);ylabel(amplitude);title(带通滤波后语音信号时域波形);ab=fftshift(fft(yb,l)/l);fdb=fs/l;fxb=fdb*(-l/2:l/2-1);fyb=abs(ab);subplot(212);plot(fxb,fyb);xlabel(频率H

25、z);ylabel(幅度);title(带通滤波后信号频谱);wavplay(y,fs); %播放原始语音信号wavplay(yl,fs); %播放低通滤波后语音信号wavplay(yh,fs); %播放高通滤波后语音信号wavplay(yb,fs); %播放带通滤波后语音信号Au=1;t=0:1/fs:(l-1)/fs;d=Au*sin(2*pi*3800*t); %构造频率为3800hz的正弦信号,且取其一段d=d;yy=y+d; %将所得噪音信号加入原始信号中subplot(211);plot(yy); %绘制加入噪音后波形xlabel(time n);ylabel(amplitude)

26、;title(加入噪音后语音信号时域波形);ay=fftshift(fft(yy,l)/l);fdy=fs/l;fxy=fdy*(-l/2:l/2-1);fyy=abs(ay);subplot(211);plot(yy);%绘制加入噪音后频谱xlabel(time n);ylabel(amplitude);title(加入噪音后语音信号时域波形);fph=3400; %对加入噪音后信号进行低通滤波,滤除噪音 fsh=3600; rp=2; rs=60; omegaph=fph/(fs/2); omegash=fsh/(fs/2); N,wn=cheb1ord(omegaph,omegash,rp,rs); BZ,AZ=cheby1(N,rp,wn,low); yyy=filter(BZ,AZ,yy);subplot(211);plot(yyy);xlabel(time n);ylabel(amplitude);title(对加噪信号滤波后语音信号时域波形);ayy=fftshift(fft(yyy,l)/l);fdyy=fs/l;fxyy=fdyy*(-l/2:l/2-1);fyyy=abs(ayy);subplot(212);plot(fxyy,fyyy);xlabel(频率Hz);ylabel(幅度);title(加入噪音滤波后信号频谱);

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922