MATLAB课程设计方案报告9_第1页
MATLAB课程设计方案报告9_第2页
MATLAB课程设计方案报告9_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、探次2007级学生次MATLAB课程设计MATLAB程设计报告书课题名称基于MATLAB勺语音信号米集与处理姓名冀鹏超学号070306210院、系、部二系专 业电子信息工程指导教师田爱君2009年5月31日基于MATLAB的语音信号采集与处理一、实践的目的和要求1. MATLAB软件功能简介MATLA啲名称源自 Matrix Laboratory,1984 年由美国Mathworks公司推向市场。它是 一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起, 并提供了大量的内置函数, 从而被广泛的应用于科学计算、 控制系统和信息处理 等领域的分析、仿真和设

2、计工作。MATLAB件包括五大通用功能, 数值计算功能(Nemeric )、符号运算功能(Symbolic )、 数据可视化功能(Graphic )、数字图形文字统一处理功能(Notebook)和建模仿真可视化功 能(Simulink )。其中,符号运算功能的实现是通过请求MAPLE内核计算并将结果返回到MATLAB命令窗口。该软件有三大特点,一是功能强大;二是界面友善、语言自然;三是开 放性强。目前,Mathworks公司已推出30多个应用工具箱。MATLAB在线性代数、矩阵分析、 数值及优化、数值统计和随机信号分析、电路与系统、系统动力学、次那好和图像处理、控 制理论分析和系统设计、 过程

3、控制、 建模和仿真、 通信系统以及财政金融等众多领域的理论 研究和工程设计中得到了广泛应用。MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。由于信号与系 统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能,能基本满足信号与系统课程的需求。 例如解微分方程、 傅里叶正反变换、 拉普拉斯正反变换 和z正反变换等。MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包 括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析和零极点图绘制等内容。数值计算仿真分析可以帮助学生更深入地理解理论

4、知识,并为将来使用 MATLAB进行信号处理领域的各种分析和实际应用打下基础。2. 本题目的意义本次课程设计的课题为基于MATLA啲语音信号采集与处理,学会运用MATLAB的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观察其时域和 频域特性,加深对信号处理理论的理解,并为今后熟练使用MATLAB进行系统的分析仿真和设计奠定基础。此次实习课程主要是为了进一步熟悉对 matlab 软件的使用,以及学会利用 matlab 对声 音信号这种实际问题进行处理,将理论应用于实际,加深对它的理解。二、实践原理:1. 理论原理利用MATLAB寸语音信号进行分析和处理,采集语音信号后,利用MAT

5、LAB件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分 析,设计合适的滤波器滤除噪声,恢复原信号。语音信号的“短时谱” 寸于非平稳信号 ,它是非周期的 , 频谱随时间连续变化 , 因此由傅里叶变换得到的频谱无法获知其在各个时 刻的频谱特性。 如果利用加窗的方法从语音流中取出其中一个短断 , 再进行傅里叶变换 , 就 可以得到该语音的短时谱。2. 具体流程(1) . 语音信号的采集及分析基于声卡进行数字信号的采集。将话筒插入计算机的语音输入插口上, 启动录音机。按下录音按钮,寸话筒说话 , 说完后停止录音。要保存文件时 ,利用了计算机上的 A/D 转换器 , 把模

6、拟的声音信号变成了离散的量化了的数字信号,放音时,它又通过D/A转换器,把保存的数字数据恢复为原来的模拟的声音信号。 在 Matlab 软件平台下可以利用函数 wavread 寸语 音信号进行采样 , 得到了声音数据变量 x1, 同时把 x1 的采样频率 fs=22050Hz 和数据位 Nbits=16Bit放进了 MATALB勺工作空间。图figure 1为原始语音信号的时域图形。从图中 可以看出在时域环境下 , 信号呈现出 6 不规则的信号峰值。通过 freqz 函数绘制原始语音信 号的频率响应图 figure 2 。然后寸语音信号进行频谱分析 ,在 Matlab 中可以利用函数 fft

7、寸信号行快速傅里叶变换 , 得到信号的频谱图 figure 3,从图中可以看出寸各个频点上的随 机信号在频域进行抽样 , 抽样频率为 22050Hz 。(2) . 给原始信号加上一个高频噪声在Matlab中人为设计一个固定频率 5500Hz的噪声干扰信号。噪声信号通常为随机序列, 在本设计中用正弦序列代替 , 干扰信号构建命令函数为 d=Au*sin(2*pi*5500*t)', 给出的 干扰信号为一个正弦信号, 针寸上面的语音信号 , 采集了其中一段。 再寸噪音信号进行频谱 变换得到其频谱图,从图中可以看出干扰信号,在4000Hz和6000Hz频点处有一高峰,其中5500Hz 正是本

8、设计所要利用的。(3) . 设计一个滤波器,滤除高频噪声由模拟滤波器变换为数字滤波器时 , 采用的是双线性变换法 , 它保留的是从模拟到数字 域的系统函数表示。在滤波器的选取时 , 由于设计方法的侧重点不同 , 作出比较是困难的。 如果 FIR 滤波器情况下 , 最优的设计将是椭圆滤波器。用双线性变换法设计低通滤波器。的本设计是用双线性变换法设计BW带阻型滤波器。在MATLAB中,可以利用函数butterworth,设计 FIR 滤波器 , 利用 MATLAB 中的函数 freqz 画出各滤波器的频率响应。 用设计好的带阻 滤波器对含噪语音信号进行滤波 , 在 Matlab 中 FIR 滤波器

9、利用函数 fftfilt 对信号进行滤 波,FIR滤波器利用函数filter对信号进行滤波。在一个窗口同时画出滤波前后的波形及频谱。从图中可以看出 ,5500Hz 看到的高峰消失了 , 语音信号与开始的一样 , 滤波器成功的 滤除了干扰信号。利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的 信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。三、实践步骤1用MATLA对原始语音信号进行分析,画出它的时域波形和频谱程序:fs=22050;%语音信号采样频率为 22050桌面 声音文件%读取语音信号的

10、数据,赋给变量x1,sound(x1,22050);%播放语音信号y1=fft(x1,1024);%对信号做1024点FFT变换f=fs*(0:511)/1024;%将 0 到 511,步长为 1的序列的值与 fs的值,赋值给 ffigure(1)%创建图形窗 1plot(x1)%做原始语音信号的时域图形title(' 原始语音信号 ');xlabel('time n');%x轴的名字是“ time n ”ylabel('fuzhi n');%y轴的名字是“ fuzhi n ”figure(2)freqz(x1)%绘制原始语音信号的频率响应图ti

11、tle(' 频率响应图')figure(3)subplot(2,1,1);%创建两行一列绘图区间的第 1个绘图区间plot(abs(y1(1:512)%做原始语音信号的 FFT频谱图.wav');相乘并除以 1024title('原始语音信号FFT频谱')是绝对值,plot是直角坐标下线性刻度曲线subplot(2,1,2);plot(f,abs(y1(1:512); %abs title(' 原始语音信号频谱') xlabel('Hz');ylabel('幅值');时域波形和频谱:图1原始语音信号*ALF

12、igurE 2回段1Eile Edit M i er Ijis t X&ols Itsktop indioii 雎 Ip*51D GS O BgQF?® 宾Id 目 Q频率响f应图图2语音信号频率响应图图3 原始语音信号FFT与信号频谱2.给原始的语音信号加上一个高频余弦噪声,频率为5500hz。对加噪后的语音进行分析,并画出其信号时域和频谱图。程序:fs=22050;桌面 声音文件 .wav');%读取语音信号的数据,赋给变量 x1f=fs*(0:511)/1024;%将0到 511,步长为 1的序列的值与fs 相乘并除以 1024的值,赋值给 ft=0:1/fs:

13、(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(1);%创建图形窗 1plot(t,x2);%做加噪后的信号时域图形(绘出 t对 x2 的线性图)

14、title(' 加噪后的信号');xlabel('time n');%x轴的名字是“ time n ”ylabel('fuzhi n');%y轴的名字是“ fuzhi n ”figure(2)%创建图形窗 2subplot(2,1,1);%创建两行一列绘图区间的第 1 个绘图区间plot(f,abs(y1(1:512);%做原始语音信号的频谱图title(' 原始语音信号频谱 ');xlabel('Hz');%x轴的名字是“ time n ”ylabel('fuzhi');% y轴的名字是“ fuz

15、hi ”subplot(2,1,2);%创建两行一列绘图区间的第 2 个绘图区间plot(f,abs(y2(1:512);%做加噪后的语音信号的频谱图( abs 是绝对值, plot是直角坐标下线性刻度曲线)title(' 加噪后的信号频谱 ');xlabel('Hz');%x轴的名字是“ time n ”ylabel('fuzhi');% y时域波形和频谱:轴的名字是"fuzhi图4加噪后的信号时域图图5原始信号与加噪后信号频谱对比与原始信号对比,区别:先原始信号没加噪音之前 0 到 2000 有幅值,在 4000 到 6000 之间

16、没有幅值,但是在加 了噪音之后 4000 到 6000 之间出现最大幅值 12,超出正常值。如图 5 原始信号与加噪后信 号频谱对比图所示。3. 设计合适的滤波器,滤除高频噪声,绘出滤波后的信号频域和时域波形:程序:%用双线性变换法设计巴特沃思低通滤波器 wp=0.25*pi;ws=0.3*pi;Rp=1;Rs=15;Fs=22050;Ts=1/Fs;wp1=2/Ts*tan(wp/2);ws1=2/Ts*tan(ws/2);N,Wn=buttord(wp1,ws1,Rp,Rs,'s');Z,P,K=buttap(N);Bap,Aap=zp2tf(Z,P,K);b,a=lp2l

17、p(Bap,Aap,Wn);bz,az=bilinear(b,a,Fs);H,W=freqz(bz,az);figure(9)plot(W*Fs/(2*pi),abs(H)%通带截止频率%阻带截止频率%通带最大衰减( db)%阻带最大衰减( db)%将模拟指标转换成数字指标%将模拟指标转换成数字指标%选择滤波器的最小阶数(估算得到Butterworth低通滤波器的最小阶数 N 和 3dB 截止频率 Wc )%创建 Butterworth 低通滤波器原型%将零极点增益转换为普遍分子,分母% 将普遍的分子和分母转换为以 Wn 为截止频率%用双线性变换法实现模拟滤波器到数字滤波器的转换(模拟转换为数

18、字)%求频率响应%绘制 Butterworth 低通滤波器频率响应曲线%添加图格gridxlabel(' 频率 Hz') ylabel(' 频率响应幅度 ') title('Butterworth')f1=filter(bz,az,z); % 利用上面已做好的滤波器 (已 bz 和 az 为特征的 滤波器)对 x2 信号进行滤波,赋值给 f1figure(10)subplot(2,1,1)%创建两行一列绘图区间的第1 绘图区间plot(t,z)%做加噪后的信号时域图形title(' 滤波前的时域波形 ');subplot(2,1,

19、2)%创建两行一列绘图区间的第2 绘图区间plot(t,f1);title(' 滤波后的时域波形 ');sound(f1,22050);%播放语音信号p=length(f1);F0=fft(f1,p);f=0:fs/p:fs*(s-1)/p;figure(11)y2=fft(z,1024);%对信号 y2 做 1024 点 FFT 变换subplot(2,1,1);%创建两行一列绘图区间的第 1 绘图区间plot(f,abs(y4);title(' 滤波前的频谱 ')xlabel('Hz');%x轴的名字是“ Hz”ylabel('fuz

20、hi');%y轴的名字是“ fuzhi ”subplot(2,1,2)F1=plot(f,abs(F0);title(' 滤波后的频谱')xlabel('Hz');ylabel('fuzhi');时域波形和频谱:) Figure 9口叵®Eidity-L1Ms er Insert X*oli Utskt-op jiirLdiOHU芒lpB k題富鋼込宦El目叵频率/ Hz4218 6 420 L V cjD.D.ci悭Is圉曾<枭图6低通滤波器频率响应曲线JF土guruD- T X图7滤波前后时域波形图图8滤波前后频谱图与

21、原噪音信号对比,区别:通过对比分析可知,滤波后的输出波形和原始语音加噪声信号的图形发生了一些变化,在3000-6000HZ之间的信号消失,出现 0-1000和7000-8000之间的信号。滤波后的输出波形明显在对应时间幅度比原语音加噪声信号的要小,而且滤波的效果也与滤波器的选择有关,可以看出滤波器的性能差异以及参数的调节会对滤波器产生一定的影响,并且通过回放可以发现滤波前后的声音有变化低通滤波后,已很接近原来的声音,人耳几乎辨别不出。从频谱图中我们还可以看出声音的能量信号主要集中在低频部分,说明高频语音信号被滤 出,滤波器达到既定要求。四、心得体会正所谓“纸上得来终觉浅,觉知此事要躬行。”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的。因此在学期末来临之际,我们迎来了MATLAB

温馨提示

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

评论

0/150

提交评论