毕业设计论文基于MATLAB的语音信号录制采集和分析的程序设计.doc
《毕业设计论文基于MATLAB的语音信号录制采集和分析的程序设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于MATLAB的语音信号录制采集和分析的程序设计.doc(18页珍藏版)》请在三一办公上搜索。
1、学号:0809121055 20112012-学年 第 1学期 综合设计报告题 目:语音信号频谱分析及滤波简介 班 级: 08级电子信息班 姓 名: 指导教师: 成 绩: 电气工程系 2011年11月16日课 程 设 计 任 务 书学生班级: 08电子信息班 学生姓名:毕昌国 学号: 0809121055 设计名称:应用Matlab对语音信号进行频谱分析及滤波简介起止日期: 2011 年11月7日至2011年11月18 日 指导教师: 王银花 摘要随着计算机和信息科学的飞速发展,数字信号处理逐渐发展成为一门独立的学科,成为信息科学的重要组成部分,在语音处理、雷达、图像处理、通信、生物医学工程等
2、众多领域中得到广泛应用。 Matlab语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的喜爱。特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行语音信号分析、处理和设计。语音信号的抽样、频谱分析,滤波器的设计及语音信号的滤波,通过数字信号处理课程的理论知识的综合运用。从实践上初步实现对数字信号的处理。关键词: 语音处理 抽样 频谱分析 滤波器15目 录摘要第一节 设计要求1第二节 设计方案1第二章 语音信号的采集及加噪2第一节 语音信号的录制2第二节 语音信号的时域分析3第三节 语音信号加噪
3、和频谱分析5第三章 滤波器设计7第一节 FIR和IIR数字滤波器的选择7第二节 用FIR滤波器语音信号进行滤波9一 滤波器的程序设计9二 滤波前后信号比较10第三节 比较回放语音信号12第四章 心得体会13参考文献14第一章 课程设计方案提出第一节 设计要求要求录制一段的语音信号后,在MATLAB软件中采集语音信号、回放语音信号并画出语音信号的时域波形和频谱图;对所采集的信号加入干扰噪声,对加入噪声进行播放,并进行时域和频谱分析;对比及早前后的时域图和频谱图,分析讨论采用什么的滤波器进行滤除噪声。第二节 设计方案Windows自带的录音机声音麦克风声卡滤波采样A/D转换 Wav 图1.1 语音
4、信号录制流程图首先,录制一段语音信号(如图1.1);然后,利用MATLAB中的wavread命令来读入(采集)语音信号,将它赋值给某一向量。再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析;随后,利用MATLAB中的随机函数(rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。最后;再依据实际情况对它进行滤波。对于波形图与频谱图(包括滤波前后的对比图)都可以用 MATLAB画出。我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。第二章 语音信号的采集及加噪第一节 语音信号的录制利用PC 机上的声卡和WINDOWS 操作系
5、统可以进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说话“语音信号处理”,说完后停止录音,屏幕左侧将显示所录声音的长度,点击放音按钮,可以实现所录音的重现。以文件名“shijiebei”保存入D: MATLAB work 中。文件存储器的后缀默认为. wav ,这是WINDOWS 操作系统规定的声音文件存的标准。具体操作如下:a.打开 开始/程序/附件/娱乐/录音机(如图3.1); 图3.1 b.用windows media player播放一首音乐并用MIC对着耳机录音或自已说话录音(按键),到10秒时停止(按键)(如图3.1); 图3.2 图3.
6、3 c.将录制文件加存为D:/MATLAB7/work中,文件名为shijiebei.wav(如图3.2、图3.3和图3.4); 图3.4 第二节 语音信号的时域分析在MATLAB软件平台下,利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。再对其进行采样,记住采样频率和采样点数。通过使用wavread函数,可以深入理解采样频率、采样位数等概念,下面介绍Wavread 函数几种调用格式。(1)y=wavread(file);读取file所规定的wav文件,返回采样值放在向量y中。(2)y,fs,nbits=wavread(file) ;采样值放在向量y中,f
7、s表示采样频率(hz),nbits表示采样位数。(3)y=wavread(file,N);读取钱N点的采样值放在向量y中。(4)y=wavread(file,N1,N2);读取从N1到N2点的采样值放在向量y中。接下来,对语音信号shijiebei.wav进行采样。其采样程序如下: y,fs,nbits=wavered (E:shejishijiebei);即把语音信号加载入Matlab 仿真软件平台中。然后,画出语音信号的时域波形,再对语音信号进行频谱分析。MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:Xk=fft(xn,N)参数xn为被变换的时域序列向量
8、,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零。,当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。其程序如下:y,fs,nbits=wavread ( E:shejishijiebei);sound(y,fs,nbits); %回放语音信号N= length (y) ; %求出语音信号的长度Y=fft(y,N); %傅里叶变换subplot(2,1,1);plot(y);title(原始信号波形);subplot(2,1,2);plot(abs(Y);tit
9、le(原始信号频谱)程序运行结果如下图:图3.5 原始信号波形及频谱第三节 语音信号加噪和频谱分析MATLAB中产生高斯白噪声非常方便,有两个产生高斯白噪声的两个函数 。我们可以直接应用两个函数:一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。也可直接用randn函数产生高斯分布序列。在本次课程设计中,我们是利用MATLAB中的随机函数(rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。Randn函数有两种基本调用格式:Randn(n)和Randn(m,n),前者产生nn服从标准高斯分布的随机数矩阵,后者产生
10、mn的随机数矩阵。在这里,我们选用Randn(m,n)函数。语音信号添加噪声及其频谱分析的主要程序如下:y,fs,nbits=wavread ( E:shejishijiebei);N = length (y) ; %求出语音信号的长度Noise=0.01*randn(n,2); %随机函数产生噪声Si=y+Noise; %语音信号加入噪声 sound(Si);subplot(2,1,1);plot(Si);title(加噪语音信号的时域波形);S=fft(Si); %傅里叶变换subplot(2,1,2);plot(abs(S); title(加噪语音信号的频域波形);程序运行结果如下图:图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 MATLAB 语音 信号 录制 采集 分析 程序设计
链接地址:https://www.31ppt.com/p-4865743.html