《2022年MATLAB课程设计方案报告.docx》由会员分享,可在线阅读,更多相关《2022年MATLAB课程设计方案报告.docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源 2007 级同学MATLAB课程设计MATLAB课程设计报告书课题名称基于 MATLAB的语音信号采集与处理冀鹏超070306210三系电子信息工程田爱君姓名学号院、系、部专业指导老师2021 年 5 月 31 日欢迎下载精品学习资源基于 MATLAB的语音信号采集与处理一、实践的目的和要求1. MATLAB 软件功能简介MATLAB的名称源自 Matrix Laboratory,1984年由美国Mathworks公司推向市场;它是一种科学运算软件,特地以矩阵的形式处理数据;MATLAB将高性能的数值运算和可视化集成在一起,并供应了大量的内置函数,从而被广泛的应用于科学运算、把握
2、系统和信息处理等领域的分析、仿真和设计工作;MATLAB 软 件 包 括 五 大 通 用 功 能 , 数 值 计 算 功 能 ( Nemeric ) 、 符 号 运 算 功 能(Symbolic )、数据可视化功能( Graphic )、数字图形文字统一处理功能( Notebook )和建仿照真可视化功能( Simulink );其中,符号运算功能的实现是通过请求 MAPLE内核运算并将结果返回到 MATLAB命令窗口;该软件有三大特点,一是功能强大;二是界面友善、语言自然;三是开放性强;目前, Mathworks 公司已推出 30 多个应用工具箱; MATLAB在线性代数、矩阵分析、数值及优
3、化、数值统计和随机信号分析、电路与系统、系统动力学、次那好和图像处理、把握理论分析和系统设计、过程把握、建模和仿真、通信系统以及财政金融等众多领域的理论争论和工程设计中得到了广泛应用;MATLAB在信号与系统中的应用主要包括符号运算和数值运算仿真分析;由于信号与系 统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱供应的符号运算功能,能基本中意信号与系统课程的需求;例如解微分方程、傅里叶正反变换、拉普拉斯正反变换和 z 正反变换等; MATLAB在信号与系统中的另一主要应用是数值运算与仿真分析, 主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的
4、频谱分析、系统的 S 域分析和零极点图绘制等内容;数值运算仿真分析可以帮忙同学更深化地懂得理论学问,并为将来使用MATLAB进行信号处理领域的各种分析和实际应用打下基础;2. 此题目的意义本次课程设计的课题为基于MATLAB的语音信号采集与处理,学会运用MATLAB的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观看其时域和频域特性,加深对信号处理理论的懂得,并为今后娴熟使用MATLAB进行系统的分析仿真和设计奠定基础;此次实习课程主要是为了进一步熟识对matlab 软件的使用,以及学会利用matlab 对声欢迎下载精品学习资源音信号这种实际问题进行处理,将理论应用于实际,加深对
5、它的懂得;二、实践原理:1. 理论原理利用 MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,复原原信号;语音信号的“短时谱”对于非平稳信号,它是非周期的 ,频谱随时间连续变化,因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性;假如利用加窗的方法从语音流中取出其中一个短断,再进行傅里叶变换 ,就可以得到该语音的短时谱;2. 具体流程(1). 语音信号的采集及分析基于声卡进行数字信号的采集;将话筒插入运算机的语音输入插口上, 启动录音机;按下录音按钮,对话筒
6、说话, 说完后停止录音;要储存文件时, 利用了运算机上的A/D 转换器 , 把模拟的声音信号变成了离散的量化了的数字信号, 放音时 , 它又通过 D/A 转换器 , 把储存的数字数据复原为原先的模拟的声音信号;在Matlab软件平台下可以利用函数wavread对语音信号进行采样 , 得到了声音数据变量x1, 同时把 x1 的采样频率fs=22050Hz和数据位Nbits=16Bit放进了 MATALB的工作空间;图figure 1为原始语音信号的时域图形;从图 中可以看出在时域环境下, 信号显现出 6 不规章的信号峰值;通过freqz函数绘制原始语音信号的频率响应图figure 2;然后对语音
7、信号进行频谱分析, 在 Matlab中可以利用函数fft对信号行快速傅里叶变换, 得到信号的频谱图figure 3,从图中可以看出对各个频点上 的随机信号在频域进行抽样, 抽样频率为 22050Hz ;(2). 给原始信号加上一个高频噪声在 Matlab中人为设计一个固定频率5500Hz 的噪声干扰信号;噪声信号通常为随机序列, 在本设计中用正弦序列代替, 干扰信号构建命令函数为d=Au*sin2*pi*5500*t,给出的干扰信号为一个正弦信号,针对上面的语音信号, 采集了其中一段;再对噪音信号进行频谱变换得到其频谱图, 从图中可以看出干扰信号,在4000Hz 和 6000Hz频点处有一高峰
8、 , 其中 5500Hz正是本设计所要利用的;(3). 设计一个滤波器,滤除高频噪声由模拟滤波器变换为数字滤波器时 , 接受的是双线性变换法 , 它保留的是从模拟到数字域的系统函数表示;在滤波器的选取时 , 由于设计方法的侧重点不同 , 作出比较是困难的;假如 FIR 滤波器情形下 , 最优的设计将是椭圆滤波器;用双线性变换法设计低通滤波欢迎下载精品学习资源器;的本设计是用双线性变换法设计BW带阻型滤波器;在MATLAB 中 , 可以利用函数butterworth,设计 FIR 滤波器 , 利用 MATLAB 中的函数 freqz画出各滤波器的频率响应;用设计好的带阻滤波器对含噪语音信号进行滤
9、波, 在 Matlab中 FIR滤波器利用函数fftfilt对信号进行滤波 ,FIR 滤波器利用函数 filter对信号进行滤波;在一个窗口同时画 出滤波前后的波形及频谱;从图中可以看出,5500Hz看到的高峰消逝了, 语音信号与开头的一样 , 滤波器成功的滤除了干扰信号;利用MATLAB对语音信号进行分析和处理,采集 语音信号后,利用MATLAB 软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,复原原信号;三、实践步骤1. 用 MATLAB对原始语音信号进行分析,画出它的时域波形和频谱程序:fs=22050 ;%语音信号采样频率
10、为22050桌面 声音文件 .wav;%读取语音信号的数据,赋给变量x1, soundx1,22050;%播放语音信号y1=fftx1,1024;%对信号做 1024 点 FFT 变换f=fs*0:511/1024;%将 0 到 511,步长为 1 的序列的值与fs 相乘并除以 1024的值,赋值给 ffigure1%创建图形窗 1plotx1%做原始语音信号的时域图形title原始语音信号 ;xlabeltime n;%x轴的名字是“ time n ” ylabelfuzhi n;%y轴的名字是“ fuzhi n” figure2freqzx1%绘制原始语音信号的频率响应图title频率响应
11、图 figure3subplot2,1,1;plotabsy11:512%创建两行一列绘图区间的第1 个绘图区间做原始语音信号的FFT 频谱图欢迎下载精品学习资源title原始语音信号FFT 频谱 subplot2,1,2;plotf,absy11:512;%abs是确定值, plot是直角坐标下线性刻度曲线title原始语音信号频谱 xlabelHz;ylabel幅值 ;时域波形和频谱:图 1原始语音信号欢迎下载精品学习资源语音信号频率响应图图 2图 3原始语音信号 FFT与信号频谱2. 给原始的语音信号加上一个高频余弦噪声,频率为5500hz;对加噪后的语音进行分析,并画出其信号时域和频谱
12、图;欢迎下载精品学习资源程序:fs=22050 ;桌面 声音文件 .wav;%读取语音信号的数据,赋给变量x1f=fs*0:511/1024;%将 0 到 511,步长为 1 的序列的值与 fs相乘并除以1024 的值,赋值给 ft=0:1/fs:lengthx1-1/fs; %将 0 到 x1 的长度减 1 后的值除以 fs 的值,且步长为1/fs的值,的序列的值,赐予tAu=0.03 ;d=Au*sin2*pi*5500*t x2=x1+d;%;%噪声幅值所加的噪声是正弦信号将正弦信号噪声加在语音信号上soundx2,22050;%播放语音信号y1=fftx1,1024;y2=fftx2,
13、1024;%对信号 y1 做 1024 点 FFT 变换对信号 y2 做 1024 点 FFT 变换figure1;plott,x2;%创建图形窗 1做加噪后的信号时域图形(绘出t 对 x2 的线性图)title加噪后的信号xlabeltime n; ;%x轴的名字是“ time n ”ylabelfuzhi n; %y 轴的名字是“ fuzhi n”figure2%创建图形窗 2subplot2,1,1;%创建两行一列绘图区间的第1 个绘图区间plotf,absy11:512;%做原始语音信号的频谱图title原始语音信号频谱 ;xlabelHz; %x 轴的名字是“ time n ”yla
14、belfuzhi;% y轴的名字是“ fuzhi ”subplot2,1,2;%创建两行一列绘图区间的第2 个绘图区间plotf,absy21:512;%做加噪后的语音信号的频谱图(abs是确定值,plot是直角坐标下线性刻度曲线)title加噪后的信号频谱xlabelHz; ;%x轴的名字是“ time n ”欢迎下载精品学习资源ylabelfuzhi;% y轴的名字是“ fuzhi ”时域波形和频谱:4加噪后的信号时域图图图 5原始信号与加噪后信号频谱对比欢迎下载精品学习资源与原始信号对比,区分:先原始信号没加噪音之前0 到 2000 有幅值,在 4000 到 6000 之间没有幅值,但是
15、在加了噪音之后 4000 到 6000 之间显现最大幅值12,超出正常值;如图5 原始信号与加噪后信号频谱对比图所示;3. 设计合适的滤波器,滤除高频噪声,绘出滤波后的信号频域和时域波形: 程序:%用双线性变换法设计巴特沃思低通滤波器wp=0.25*pi;%通带截止频率ws=0.3*pi;%阻带截止频率Rp=1;Rs=15;%通带最大衰减(%阻带最大衰减(db)db)Fs=22050;Ts=1/Fs ;wp1=2/Ts*tanwp/2;%将模拟指标转换成数字指标ws1=2/Ts*tanws/2; %将模拟指标转换成数字指标N,Wn=buttordwp1,ws1,Rp,Rs,s;%选择滤波器的最
16、小阶数(估算得到Butterworth低通滤波器的最小阶数N 和 3dB 截止频率Wc )Z,P,K=buttapN;%创建 Butterworth 低通滤波器原型Bap,Aap=zp2tfZ,P,K;%将零极点增益转换为普遍分子,分母 b,a=lp2lpBap,Aap,Wn; %将普遍的分子和分母转换为以Wn 为截止频率bz,az=bilinearb,a,Fs;% 用双线性变换法实现模拟滤波器到数字滤波器的转换(模拟转换为数字)H,W=freqzbz,az;%求频率响应figure9plotW*Fs/2*pi,absH%绘制 Butterworth 低通滤波器频率响应曲线grid %添加图格
17、xlabel频率 Hzylabel频率响应幅度 欢迎下载精品学习资源titleButterworthf1=filterbz,az,z; % 利用上面已做好的滤波器(已bz 和 az 为特点的滤波器)对x2信号进行滤波,赋值给f1figure10subplot2,1,1%创建两行一列绘图区间的第1 绘图区间plott,z%做加噪后的信号时域图形title滤波前的时域波形 ;subplot2,1,2%创建两行一列绘图区间的第2 绘图区间plott,f1;title滤波后的时域波形 ;soundf1,22050;%播放语音信号p=lengthf1;F0=fftf1,p;f=0:fs/p:fs*s-1
18、/p;figure11y2=fftz,1024; %对信号 y2 做 1024 点 FFT 变换subplot2,1,1; %创建两行一列绘图区间的第1 绘图区间plotf,absy4;title滤波前的频谱 xlabelHz;%x轴的名字是“ Hz” ylabelfuzhi;%y轴的名字是“ fuzhi ” subplot2,1,2F1=plotf,absF0;title滤波后的频谱 xlabelHz;ylabelfuzhi;欢迎下载精品学习资源时域波形和频谱:低通滤波器频率响应曲线图 6图 7滤波前后时域波形图欢迎下载精品学习资源图 8滤波前后频谱图与原噪音信号对比,区分:通过对比分析可知
19、,滤波后的输出波形和原始语音加噪声信号的图形发生了一些变化,在 3000-6000Hz 之间的信号消逝,显现0-1000 和 7000-8000 之间的信号;滤波后的输出波形明显在对应时间幅度比原语音加噪声信号的要小,而且滤波的成效也与滤波器的选择有关,可以看出滤波器的性能差异以及参数的调剂会对滤波器产生确定的影响,并且通过回放可以发觉滤波前后的声音有变化. 低通滤波后 , 已很接近原先的声音,人耳几乎辨别不出;从频谱图中我们仍可以看出声音的能量信号主要集中在低频部分,说明高频语音信号被滤出,滤波器达到既定要求;四、心得体会正所谓“纸上得来终觉浅,觉知此事要躬行;”学习任何学问,仅从理论上去求
20、知,而不去实践、探究是不够的;因此在学期末来临之际,我们迎来了MATLAB课程设计;通过为期一周半的MATLAB课程设计,我对MATLAB这个仿真软件有了更进一步的熟识和明白;在这一周半时间里,我通过自己摸索,查阅资料,并且在指导老师田老师的指导下完成了:语音信号的采集及分析;给原始信号加上一个高频噪声;设计一个滤波器,滤除高频噪声;并最终将课程设计报告总结完毕;欢迎下载精品学习资源在整个设计过程中我懂得了许多东西,也培养了独立摸索和设计的才能,树立了对知 识应用的信心,信任会对今后的学习工作和生活有特殊大的帮忙,并且提高了自己的动手 实践操作才能,使自己充分体会到了在设计过程中的成功欢快;虽
21、然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收成和财宝,使我终身受益;在没有做课程设计以前,觉得课程设计只是对学问的单纯总结,但是通过这次课程设计发觉自己的看法有点太片面,课程设计不仅是对前面所学学问的一种检验,也是对自己才能的一种提高,通过这次课程设计使自己明白了原先的那点学问是特殊欠缺的,要学习的东西仍许多,通过这次课程设计,明白学习是一个长期积存的过程,在以后的工作和生活中都应当不断的学习,努力提高自己的学问和综合素养;期望以后像这样的课程设计在多一点;参考文献 :1. 姚东 .MATLAB及在电子信息课程中的应用M. 其次版 . 北京:北京电子工业出版社,20002. 张智星 .MATLAB程序设计与应用 . 北京:清华高校出版社,20023. 陈怀琛 .MATLAB 及其在理工课程中的应用指南. 西安:西安电子科技高校出版社,1999.104. 肖伟、刘忠 . MATLAB 程序设计与应用 M. 北京:清华高校出版社2005欢迎下载