版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告 成绩 课程设计报告 题 目:基于matlab的语音信号采集与处理学生姓名: 学生学号: 系 别: 电气信息工程学院 专 业: 电子信息工程 届 别: 2013 指导教师: 基于matlab的语音信号采集与处理学生:指导教师:电气信息工程学院电子与通信工程系1 课程设计的任务与要求1.1 课程设计的任务 利用matlab对语音信号进行分析和处理,采集语音信号后,利用matlab软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。语音信号的“ 短时谱”对于非
2、平稳信号, 它是非周期的, 频谱随时间连续变化, 因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。如果利用加窗的方法从语音流中取出其中一个短断, 再进行傅里叶变换, 就可以得到该语音的短时谱。1.2 课程设计的要求本次课程设计的课题为基于matlab的语音信号采集与处理,学会运用matlab的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观察其时域和频域特性,加深对信号处理理论的理解,并为今后熟练使用matlab进行系统的分析仿真和设计奠定基础。此次实习课程主要是为了进一步熟悉对matlab软件的使用,以及学会利用matlab对声音信号这种实际问题进行处理,将理论应用于
3、实际,加深对它的理解。1.3 课程设计的研究基础信号与系统、matlab程序设计及应用2基于matlab的语音信号采集与处理方案的制定(1). 语音信号的采集及分析基于声卡进行数字信号的采集。将话筒插入计算机的语音输入插口上,启动录音机。按下录音按钮,对话筒说话,说完后停止录音。要保存文件时,利用了计算机上的a/d转换器,把模拟的声音信号变成了离散的量化了的数字信号,放音时,它又通过d/a转换器,把保存的数字数据恢复为原来的模拟的声音信号。在 matlab软件平台下可以利用函数wavread对语音信号进行采样,得到了声音数据变量x1,同时把x1的采样频率fs=22050hz和数据位nbits=
4、16bit放进了matalb的工作空间。图figure 1为原始语音信号的时域图形。从图中可以看出在时域环境下,信号呈现出6不规则的信号峰值。通过freqz函数绘制原始语音信号的频率响应图figure 2 。然后对语音信号进行频谱分析,在matlab中可以利用函数fft对信号行快速傅里叶变换,得到信号的频谱图figure 3,从图中可以看出对各个频点上的随机信号在频域进行抽样 ,抽样频率为 22050hz。(2). 给原始信号加上一个高频噪声在matlab中人为设计一个固定频率5500hz的噪声干扰信号。噪声信号通常为随机序列,在本设计中用正弦序列代替,干扰信号构建命令函数为d=au*sin(
5、2*pi*5500*t),给出的干扰信号为一个正弦信号,针对上面的语音信号 ,采集了其中一段。再对噪音信号进行频谱变换得到其频谱图,从图中可以看出干扰信号,在4000hz和 6000hz频点处有一高峰 ,其中 5500hz 正是本设计所要利用的。(3). 设计一个滤波器,滤除高频噪声由模拟滤波器变换为数字滤波器时,采用的是双线性变换法, 它保留的是从模拟到数字域的系统函数表示。在滤波器的选取时, 由于设计方法的侧重点不同, 作出比较是困难的。如果fir滤波器情况下,最优的设计将是椭圆滤波器。本设计是用双线性变换法设计bw带阻型滤波器的。在 matlab中 ,可以利用函数 butterworth
6、,设计fir滤波器,利用 matlab 中的函数freqz 画出各滤波器的频率响应。用设计好的带阻滤波器对含噪语音信号进行滤波,在matlab中 fir滤波器利用函数fftfilt对信号进行滤波,fir滤波器利用函数filter对信号进行滤波。在一个窗口同时画出滤波前后的波形及频谱。从图中可以看出 ,5500hz看到的高峰消失了 ,语音信号与开始的一样 ,滤波器成功的滤除了干扰信号。利用matlab对语音信号进行分析和处理,采集语音信号后,利用matlab软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。3 基于matl
7、ab的语音信号采集与处理方案的设计设计步骤:1)打开matlab软件;2)点击file新建m文件;3)在编辑框内写入系统matlab程序;4)点击保存并运行程序,显示仿真图形。4 基于matlab的语音信号采集与处理的仿真与调试4.1 仿真软件介绍matlab是一种交互式的、以矩阵为基础的软件开发环境,它用于科学和工程的计算与可视化。matlab的编程功能简单,并且很容易扩展和创造新的命令与函数。应用matlab可方便地解决复杂数值计算问题。matlab具有强大的simulink动态仿真环境,可以实现可视化建模和多工作环境间文件互用和数据交换。simulink支持连续、离散及两者混合的线性和非
8、线性系统,也支持多种采样速率的多速率系统;simulink为用户提供了用方框图进行建模的图形接口,它与传统的仿真软件包用差分方程和微分方程建模相比,更直观、方便和灵活。用户可以在matlab和simulink两种环境下对自己的模型进行仿真、分析和修改。用于实现通信仿真的通信工具包(communication toolbox,也叫commlib,通信工具箱)是matlab语言中的一个科学性工具包,提供通信领域中计算、研究模拟发展、系统设计和分析的功能,可以在matlab环境下独立使用,也可以配合simulink使用。另外,matlab的图形界面功能gui(graphical user inter
9、face)能为仿真系统生成一个人机交互界面,便于仿真系统的操作。因此,matlab在通信系统仿真中得到了广泛应用,本文也选用该工具对数字调制系统进行仿真。4.2 系统仿真实现 1用matlab对原始语音信号进行分析,画出它的时域波形和频谱程序:fs=22050; %语音信号采样频率为22050x1=readwav(c.wav); %读取语音信号的数据,赋给变量x1,sound(x1,22050); %播放语音信号y1=fft(x1,1024); %对信号做1024点fft变换f=fs*(0:511)/1024; %将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给ffigur
10、e(1) %创建图形窗1plot(x1) %做原始语音信号的时域图形title(原始语音信号);xlabel(time n); %x轴的名字是“time n”ylabel(fuzhi n); %y轴的名字是“fuzhi n”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是绝对值
11、,plot是直角坐标下线性刻度曲线title(原始语音信号频谱)xlabel(hz);ylabel(幅值);时域波形和频谱:图1 原始语音信号图2 语音信号频率响应图图3 原始语音信号fft与信号频谱2. 给原始的语音信号加上一个高频余弦噪声,频率为5500hz。对加噪后的语音进行分析,并画出其信号时域和频谱图。程序:fs=22050; x1=wavread(c.wav); %读取语音信号的数据,赋给变量x1f=fs*(0:511)/1024; %将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给ft=0:1/fs:(length(x1)-1)/fs; %将0到x1的长度减1
12、后的值除以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的线性图)title(加噪后的信号);xlabel(time n); %x轴的名字是“time n”ylabel(
13、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轴的名字是“fuzhi”subplot(2,1,2); %创建两行一列绘图区间的第2个绘图区间plot(f,abs(y2(1:512); %做加噪后的语音信号的频谱图(abs是绝对值,plot是直角坐标下线性刻度曲线)title(加噪后的信号频谱);x
14、label(hz); %x轴的名字是“time n”ylabel(fuzhi); % y轴的名字是“fuzhi”时域波形和频谱: 图4 加噪后的信号时域图图5 原始信号与加噪后信号频谱对比与原始信号对比,区别:先原始信号没加噪音之前0到2000有幅值,在4000到6000之间没有幅值,但是在加了噪音之后4000到6000之间出现最大幅值12,超出正常值。如图5原始信号与加噪后信号频谱对比图所示。3. 设计合适的滤波器,滤除高频噪声,绘出滤波后的信号频域和时域波形:程序:fs=22050;x,fs,nbit=readwav(c.wav);sound(x,fs);t=0:1/22050:(leng
15、th(x)-1)/22050;figure(1)plot(x)title(原始语音信号);xlabel(time n);ylabel(fuzhi);figure(2)freqz(x);title(频率响应图);n=length(x);y1=fft(x,n);y2=fftshift(x);f=0:fs/n:fs*(n-1)/n;figure(3)subplot(2,1,1);plot(abs(y2);title(原始语音信号fft频谱);subplot(2,1,2)plot(f,abs(y2);title(原始语音信号频谱); %加噪声k=1:1:n;c1=10*sin(2*pi*2000*k)
16、;figure(4)plot(k,c1)title(噪声时域图);figure(5)freqz(c1);title(噪声信号频率响应)s=length(c1);xc=fft(c1,s);xcc=fftshift(xc);f=0:fs/s:fs*(s-1)/s;figure(6)plot(f,abs(xcc)title(噪声信号频谱图); %噪声与原始信号叠加z=x+c1;y3=fft(z,s);y4=fftshift(y3);f=0:fs/s:fs*(s-1)/s;figure(7)plot(f,abs(y4);axis(0 8000 0 400);title(含语音信号的频谱);figure
17、(8)subplot(2,1,1);plot(f,abs(y4)title(加噪音后的语音频谱)%用双线性变换法设计巴特沃思低通滤波器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); %将模拟指标转换成数字指标n,wn=buttord(wp1,ws1,rp,rs,s); %选择滤波器的最小阶数(估算得到butterworth低通滤波器的最小阶数n和3db截止频率w
18、c)z,p,k=buttap(n); %创建butterworth低通滤波器原型bap,aap=zp2tf(z,p,k); %将零极点增益转换为普遍分子,分母b,a=lp2lp(bap,aap,wn); %将普遍的分子和分母转换为以wn为截止频率bz,az=bilinear(b,a,fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换(模拟转换为数字)h,w=freqz(bz,az); %求频率响应figure(9)plot(w*fs/(2*pi),abs(h) %绘制butterworth低通滤波器频率响应曲线grid %添加图格xlabel(频率hz)ylabel(频率响应幅度)ti
19、tle(butterworth)f1=filter(bz,az,z); %利用上面已做好的滤波器(已bz和az为特征的滤波器)对x2信号进行滤波,赋值给f1figure(10)subplot(2,1,1) %创建两行一列绘图区间的第1绘图区间plot(t,z) %做加噪后的信号时域图形title(滤波前的时域波形);subplot(2,1,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)
20、y2=fft(z,1024); %对信号y2做1024点fft变换subplot(2,1,1); %创建两行一列绘图区间的第1绘图区间plot(f,abs(y4); title(滤波前的频谱)xlabel(hz); %x轴的名字是“hz”ylabel(fuzhi); %y轴的名字是“fuzhi”subplot(2,1,2)f1=plot(f,abs(f0); title(滤波后的频谱)xlabel(hz);ylabel(fuzhi)时域波形和频谱: 图6 低通滤波器频率响应曲线图7 滤波前后时域波形图 图8 滤波前后频谱图与原噪音信号对比,区别:通过对比分析可知,滤波后的输出波形和原始语音加噪
21、声信号的图形发生了一些变化,在3000-6000hz之间的信号消失,出现0-1000和7000-8000之间的信号。滤波后的输出波形明显在对应时间幅度比原语音加噪声信号的要小,而且滤波的效果也与滤波器的选择有关,可以看出滤波器的性能差异以及参数的调节会对滤波器产生一定的影响,并且通过回放可以发现滤波前后的声音有变化.低通滤波后,已很接近原来的声音,人耳几乎辨别不出 。从频谱图中我们还可以看出声音的能量信号主要集中在低频部分,说明高频语音信号被滤出,滤波器达到既定要求。5 总结 5.1 设计小结 利用matlab对语音信号进行分析和处理,采集语音信号后,利用matlab软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。 5.2 收获体会 通过matlab课程设计,我对matlab这个仿真软件有了更进一步的认识和了解。在设计过程中,我通过自己摸索,查阅资料,并且在老师的指导下完成了:语音信号的采集及分析;给原始信号加上一个高频噪声;设计一个滤波器,滤除高频噪声;并最终将课程设计报告总结完毕。在整个设计过程中我懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024新版《药品管理法》培训课件
- 心脏手术的抗凝治疗与并发症防控
- 治疗阿尔茨海默病药
- 脑震荡的中医护理方案
- 吉林省2024七年级数学上册第2章整式及其加减阶段综合训练范围2.1~2.3课件新版华东师大版
- 分销管理模式
- 脚病调理培训课件
- 化学反应方向说课稿
- 红黄蓝说课稿
- 好玩的洞洞说课稿
- 大学生到教师的角色转变课件
- 挂网喷射混凝土基坑开挖支护专项施工方案
- 高三化学试卷讲评课件
- 半导体DIF是什么工艺
- 生涯发展报告 (第二版)
- 财务管理大学生的职业生涯规划
- 危化品运输安全培训-危险品与非危险品的混装与分装标准
- 扎实推进安全体系建设范文
- 启迪人才测评试卷
- 《专利及专利申请》课件
- 中国儿童注意缺陷多动障碍(ADHD)防治指南
评论
0/150
提交评论