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