基于matlab的语音信号的采集与处理_第1页
基于matlab的语音信号的采集与处理_第2页
基于matlab的语音信号的采集与处理_第3页
基于matlab的语音信号的采集与处理_第4页
基于matlab的语音信号的采集与处理_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录第1章前言 -1-第2章语音信号分析处理的目的和要求 -2-2.1MATLAB软件功能简介 -2-2.2课程设计意义 -2-第3章语音信号的仿真原理 -3-第4章语音信号的具体实现 -4-4.1语音信号的采集 -4-4.2语音信号加噪与频谱分析 -5-4.3设计巴特沃斯低通滤波器 -6-4.4用滤波器对加噪语音滤波 -7-4.5比较滤波前后语音信号波形及频谱 -8-第5章总结 -9-参考文献 -10-附录 -11-:语音信号的采集与处理10-1-语音信号的采集与处理第1章前言数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、度快等优点。数字滤波器,是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(FIR,FiniteImpulseResponse)滤波器和无限冲激响应(IIR,InfiniteImpulseResponse)滤波器。FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H(z)在处收敛,极点全部在z=0处(因果系统),因而只能用较高的阶数达到高的选择性。FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。FIR数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐[1]。IIR滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯滤波器等。第2章语音信号分析处理的目的和要求2.1MATLAB软件功能简介MATLAB的名称源自MatrixLaboratory,1984年由美国Mathworks公司推向市场。它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛的应用于科学计算、控制系统和信息处理等领域的分析、仿真和设计工作。MATLAB软件包括五大通用功能,数值计算功能(Nemeric)、符号运算功能(Symbolic)、数据可视化功能(Graphic)、数字图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。其中,符号运算功能的实现是通过请求MAPLE内核计算并将结果返回到MATLAB命令窗口。该软件有三大特点,一是功能强大;二是界面友善、语言自然;三是开放性强。目前,Mathworks公司已推出30多个应用工具箱。MATLAB在线性代数、矩阵分析、数值及优化、数值统计和随机信号分析、电路与系统、系统动力学、次那好和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能,能基本满足信号与系统课程的需求。例如解微分方程、傅里叶正反变换、拉普拉斯正反变换和z正反变换等。MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析和零极点图绘制等内容。数值计算仿真分析可以帮助学生更深入地理解理论知识,并为将来使用MATLAB进行信号处理领域的各种分析和实际应用打下基础[2]。2.2课程设计意义本次课程设计的课题为《基于MATLAB的语音信号采集与处理》,学会运用MATLAB的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观察其时域和频域特性,加深对信号处理理论的理解,并为今后熟。第3章语音信号的仿真原理利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。语音信号的“短时谱”对于非平稳信号,它是非周期的,频谱随时间连续变化,因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。如果利用加窗的方法从语音流中取出其中一个短断,再进行傅里叶变换,就可以得到该语音的短时谱。MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能,能基本满足信号与系统课程的需求。例如解微分方程、傅里叶正反变换、拉普拉斯正反变换和z正反变换等。MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析和零极点图绘制等内容。数值计算仿真分析可以帮助学生更深入地理解理论知识,并为将来使用MATLAB进行信号处理领域的各种分析和实际应用打下基础[3]。滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。随着MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件。它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化。利用MATLAB中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析;设计巴特沃斯滤波器,并对被噪声污染的语音信号进行滤波,对滤波前后信号进行时域分析。第4章语音信号的具体实现4.1语音信号的采集基于声卡进行数字信号的采集。将话筒插入计算机的语音输入插口上,启动录音机。按下录音按钮,对话筒说话,说完后停止录音。要保存文件时,利用了计算机上的A/D转换器,把模拟的声音信号变成了离散的量化了的数字信号,放音时,它又通过D/A转换器,把保存的数字数据恢复为原来的模拟的声音信号。在Matlab软件平台下可以利用函数wavread对语音信号进行采样,得到了声音数据变量x1,同时把x1的采样频率fs=22050Hz和数据位Nbits=16Bit放进了MATALB的工作空间。图4.1为原始语音信号的时域图形。图4.1原始语音信号从图中可以看出在时域环境下,信号呈现出不规则的信号峰值。通过freqz函数绘制原始语音信号的频率响应图4.2。图4.2语音信号频率响应图然后对语音信号进行频谱分析,在Matlab中可以利用函数fft对信号行快速傅里叶变换,得到信号的频谱图4.3,图4.3原始语音信号FFT与信号频谱从图中可以看出对各个频点上的随机信号在频域进行抽样,抽样频率为22050Hz。4.2语音信号加噪与频谱分析图4.4加噪后的信号时域图在Matlab中人为设计一个固定频率5500Hz的噪声干扰信号。噪声信号通常为随机序列,在本设计中用正弦序列代替,干扰信号构建命令函数为d=[Au*sin(2*pi*5500*t)],给出的干扰信号为一个正弦信号,针对上面的语音信号,采集了其中一段。再对噪音信号进行频谱变换得到其频谱图,从图中可以看出干扰信号,在4000Hz和6000Hz频点处有一高峰,其中5500Hz正是本设计所要利用的。4.3设计巴特沃斯低通滤波器图4.5原始信号与加噪后信号频谱对比由模拟滤波器变换为数字滤波器时,采用的是双线性变换法,它保留的是从模拟到数字域的系统函数表示。在滤波器的选取时,由于设计方法的侧重点不同,作出比较是困难的。如果FIR滤波器情况下,最优的设计将是椭圆滤波器。用双线性变换法设计低通滤波器。的本设计是用双线性变换法设计BW带阻型滤波器。在MATLAB中,可以利用函数butterworth,设计FIR滤波器,利用MATLAB中的函数freqz画出各滤波器的频率响应。用设计好的带阻滤波器对含噪语音信号进行滤波,在Matlab用FIR滤波器利用函数fftfilter对信号进行滤波,FIR滤波器利用函数filter对信号进行滤波。在一个窗口同时画出滤波前后的波形及频谱。从图中可以看出,5500Hz看到的高峰消失了,语音信号与开始的一样,滤波器成功的滤除了干扰信号。利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号[4]。4.4用滤波器对加噪语音滤波图4.6低通滤波器频率响应曲线给原始的语音信号加上一个高频余弦噪声,频率为5500Hz。对加噪后的语音进行分析,并画出其信号时域和频谱图。与原始信号对比,区别:先原始信号没加噪音之前0到2000有幅值,在4000到6000之间没有幅值,但是在加了噪音之后4000到6000之间出现最大幅值12,超出正常值。4.5比较滤波前后语音信号波形及频谱图4.7滤波前后时域波形图通过对比分析可知,滤波后的输出波形和原始语音加噪声信号的图形发生了一些变化,在3000-6000Hz之间的信号消失,出现0-1000和7000-8000之间的信号。滤波后的输出波形明显在对应时间幅度比原语音加噪声信号的要小,而且滤波的效果也与滤波器的选择有关,可以看出滤波器的性能差异以及参数的调节会对滤波器产生一定的影响,并且通过回放可以发现滤波前后的声音有变化.低通滤波后,已很接近原来的声音,人耳几乎辨别不出。从频谱图中我们还可以看出声音的能量信号主要集中在低频部分,说明高频语音信号被滤出,滤波器达到既定要求。信噪比为0.62。第5章总结通过用巴特沃斯滤波器对原始信号进行滤波,对滤波前后的波形分析对比可知,总体可以恢复原始信号波形,效果很明显,稍有点误差,在以后的设计中需要改进。滤波后的输出波形明显在对应时间幅度比原语音加噪声信号的要小,而且滤波的效果也与滤波器的选择有关,可以看出滤波器的性能差异以及参数的调节会对滤波器产生一定的影响,并且通过回放可以发现滤波前后的声音有变化.低通滤波后,已很接近原来的声音,人耳几乎辨别不出。通过为期两周的MATLAB课程设计,我对MATLAB这个仿真软件有了更进一步的认识和了解。在这两周时间里,我通过自己摸索,查阅资料,并且在指导老师朱老师的指导下完成了:语音信号的采集及分析;给原始信号加上一个高频噪声;设计一个滤波器,滤除高频噪声;并最终将课程设计报告总结完毕。在整个设计过程中我懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦。虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。在没有做课程设计以前,觉得课程设计只是对知识的单纯总结,但是通过这次课程设计发现自己的看法有点太片面,课程设计不仅是对前面所学知识的一种检验,也是对自己能力的一种提高,通过这次课程设计使自己明白了原来的那点知识是非常欠缺的,要学习的东西还很多,通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。参考文献周利清,苏菲.数字信号处理基础.北京:北京邮电大学出版社,2005姚东.MATLAB及在电子信息课程中的应用[M].第二版.北京:北京电子工业出版社,2000高西全,丁玉美.数字信号处理.第3版.北京:西安电子科技大学出版社,2008肖伟、刘忠.MATLAB程序设计与应用[M].北京:清华大学出版社2005张智星.MATLAB程序设计与应用.北京:清华大学出版社,2002附录fs=22050;%语音信号采样频率为22050 x1=wavread('H:\nn\yy.wav'); %读取语音信号的数据,赋给变量x1,sound(x1,22050);%播放语音信号y1=fft(x1,1024);%对信号做1024点FFT变换 f=fs*(0:511)/1024;%将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给ffigure(1)%创建图形窗1plot(x1)%做原始语音信号的时域图形title('原始语音信号');xlabel('timen');%x轴的名字是“timen”ylabel('fuzhin');%y轴的名字是“fuzhin”figure(2)freqz(x1)%绘制原始语音信号的频率响应图title('频率响应图')figure(3)subplot(2,1,1);%创建两行一列绘图区间的第1个绘图区间plot(abs(y1(1:512)))%做原始语音信号的FFT频谱图title('原始语音信号FFT频谱')subplot(2,1,2);plot(f,abs(y1(1:512)));%abs是绝对值,plot是直角坐标下线性刻度曲线title('原始语音信号频谱')xlabel('Hz');ylabel('幅值');fs=22050; x1=wavread('H:\nn\yy.wav'); %读取语音信号的数据,赋给变量x1 f=fs*(0:511)/1024;%将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给f t=0:1/fs:(length(x1)-1)/fs;%将0到x1的长度减1后的值除以fs的值,且步长为1/fs的值,的序列的值,赋予tAu=0.03;%噪声幅值d=[Au*sin(2*pi*5500*t)]';%所加的噪声是正弦信号x2=x1+d;%将正弦信号噪声加在语音信号上sound(x2,22050);%播放语音信号y1=fft(x1,1024);%对信号y1做1024点FFT变换y2=fft(x2,1024);%对信号y2做1024点FFT变换figure(4);%创建图形窗1plot(t,x2);%做加噪后的信号时域图形(绘出t对x2的线性图)title('加噪后的信号');xlabel('timen');%x轴的名字是“timen”ylabel('fuzhin');%y轴的名字是“fuzhin”figure(5)%创建图形窗2subplot(2,1,1);%创建两行一列绘图区间的第1个绘图区间plot(f,abs(y1(1:512)));%做原始语音信号的频谱图title('原始语音信号频谱');xlabel('Hz');%x轴的名字是“timen”ylabel('fuzhi');%y轴的名字是“fuzhi”subplot(2,1,2);%创建两行一列绘图区间的第2个绘图区间 plot(f,abs(y2(1:512)));%做加噪后的语音信号的频谱图(abs是绝对值,plot是直角坐标下线性刻度曲线)title('加噪后的信号频谱');xlabel('Hz');%x轴的名字是“timen”ylabel('fuzhi');%y轴的名字是“fuzhi”wp=0.25*pi;%通带截止频率ws=0.3*pi;%阻带截止频率Rp=1;%通带最大衰减(db)Rs=15;%阻带最大衰减(db)Fs=22050;Ts=1/Fs;wp1=2/Ts*tan(wp/2);%将模拟指标转换成数字指标ws1=2/Ts*tan(ws/2);%将模拟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论