课程设计(论文)-基于MATLAB的语音信号录制采集和分析的程序设计.doc

上传人:yyf 文档编号:3292677 上传时间:2019-08-08 格式:DOC 页数:18 大小:1.72MB
返回 下载 相关 举报
课程设计(论文)-基于MATLAB的语音信号录制采集和分析的程序设计.doc_第1页
第1页 / 共18页
课程设计(论文)-基于MATLAB的语音信号录制采集和分析的程序设计.doc_第2页
第2页 / 共18页
课程设计(论文)-基于MATLAB的语音信号录制采集和分析的程序设计.doc_第3页
第3页 / 共18页
课程设计(论文)-基于MATLAB的语音信号录制采集和分析的程序设计.doc_第4页
第4页 / 共18页
课程设计(论文)-基于MATLAB的语音信号录制采集和分析的程序设计.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《课程设计(论文)-基于MATLAB的语音信号录制采集和分析的程序设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)-基于MATLAB的语音信号录制采集和分析的程序设计.doc(18页珍藏版)》请在三一文库上搜索。

1、I 摘要摘要 随着计算机和信息科学的飞速发展,数字信号处理逐渐发展成为 一门独立的学科,成为信息科学的重要组成部分,在语音处理、雷达、 图像处理、通信、生物医学工程等众多领域中得到广泛应用。 Matlab 语言是一种广泛应用于工程计算及数值分析领域的新型高 级语言,Matlab 功能强大、简单易学、编程效率高,深受广大科技工 作者的喜爱。特别是 Matlab 还具有信号分析工具箱,不需具备很强 的编程能力,就可以很方便地进行语音信号分析、处理和设计。语音 信号的抽样、频谱分析,滤波器的设计及语音信号的滤波,通过数字 信号处理课程的理论知识的综合运用。从实践上初步实现对数字信号 的处理。 关键词

2、: 语音处理 抽样 频谱分析 滤波器 目目 录录 摘要摘要.I 第一节 设计要求1 第二节 设计方案1 第二章第二章 语音信号的采集及加噪语音信号的采集及加噪2 第一节 语音信号的录制2 第二节 语音信号的时域分析3 第三节 语音信号加噪和频谱分析5 第三章第三章 滤波器设计滤波器设计7 第一节 FIR 和 IIR 数字滤波器的选择 7 第二节 用 FIR 滤波器语音信号进行滤波9 一 滤波器的程序设计9 二 滤波前后信号比较.10 第三节 比较回放语音信号.12 第四章第四章 心得体会心得体会13 参考文献参考文献14 1 第一章 课程设计方案提出 第一节第一节 设计要求设计要求 要求录制一

3、段自己的语音信号后,在 MATLAB 软件中采集语音信 号、回放语音信号并画出语音信号的时域波形和频谱图;对所采集的信 号加入干扰噪声,对加入噪声进行播放,并进行时域和频谱分析;对比 及早前后的时域图和频谱图,分析讨论采用什么的滤波器进行滤除噪声。 第二节第二节 设计方案设计方案 Windows 自带的录音机 声音麦克风声卡滤波采样A/D 转换 Wav 图 1.1 语音信号录制流程图 首先,录制一段语音信号(如图 1.1);然后,利用 MATLAB 中 的 wavread 命令来读入(采集)语音信号,将它赋值给某一向量。再将 该向量看作一个普通的信号,对其进行 FFT 变换实现频谱分析;随后,

4、 利用 MATLAB 中的随机函数(rand 或 randn)产生噪声加入到语音信号中, 模仿语音信号被污染,并对其频谱分析。最后;再依据实际情况对它进 行滤波。对于波形图与频谱图(包括滤波前后的对比图)都可以用 MATLAB 画出。我们还可以通过 sound 命令来对语音信号进行回放, 以便在听觉上来感受声音的变化。 2 第二章第二章 语音信号的采集及加噪语音信号的采集及加噪 第一节第一节 语音信号的录制语音信号的录制 利用 PC 机上的声卡和 WINDOWS 操作系统可以进行数字信号的 采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按 钮,接着对话筒说话“语音信号处理”,说完

5、后停止录音,屏幕左侧将显示 所录声音的长度,点击放音按钮,可以实现所录音的重现。以文件名 “shijiebei”保存入 D: MATLAB work 中。文件存储器的后缀默认为. wav ,这是 WINDOWS 操作系统规定的声音文件存的标准。具体操作如 下: a.打开 开始/程序/附件/娱乐/录音机(如图 3.1); 图 3.1 b.用 windows media player 播放一首音乐并用 MIC 对着耳机录音或 自已说话录音(按键) ,到 10 秒时停止(按键) (如图 3.1) ; 3 图 3.2 图 3.3 c.将录制文件加存为 D:/MATLAB7/work 中,文件名为 sh

6、ijiebei.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 中,fs

7、 表 4 示采样频率(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,其

8、调用格 式如下: 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(y,N); %傅里叶

9、变换 subplot(2,1,1); plot(y);title(原始信号波形); 5 subplot(2,1,2); plot(abs(Y); title(原始信号频谱) 程序运行结果如下图: 012345678 x 10 4 -1 -0.5 0 0.5 1 信 信 信 信 信 信 信 信 信 012345678 x 10 4 0 500 1000 1500 2000 信 信 信 信 信 信 信 图3.5 原始信号波形及频谱 第三节第三节 语音信号加噪和频谱分析语音信号加噪和频谱分析 MATLAB 中产生高斯白噪声非常方便,有两个产生高斯白噪声的 两个函数 。我们可以直接应用两个函数:一个是

10、 WGN,另一个是 AWGN。WGN 用于产生高斯白噪声,AWGN 则用于在某一信号中加入 高斯白噪声。也可直接用 randn 函数产生高斯分布序列。 在本次课程设计中,我们是利用 MATLAB 中的随机函数(rand 或 randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱 6 分析。Randn 函数有两种基本调用格式:Randn(n)和 Randn(m,n),前 者产生 nn 服从标准高斯分布的随机数矩阵,后者产生 mn 的随机 数矩阵。在这里,我们选用 Randn(m,n)函数。语音信号添加噪声及 其频谱分析的主要程序如下: y,fs,nbits=wavread ( E:

11、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(加噪语音信号的频域波形); 程序运行结果如下图: 7 图3.6 加噪后的波形及频谱分析 第三章第三章 滤波器设计滤波器设计 第一节第一节 FIR 和和 IIR 数字滤波器数字滤波器的

12、选择的选择 IIR 滤波器和 FIR 滤波器的设计方法完全不同。IIR 滤波器设计方 法有间接法和直接法,间接法是借助于模拟滤波器的设计方法进行的。 其设计步骤是:先设计过渡模拟滤波器得到系统函数 H(s) ,然后将 H(s)按某种方法转换成数字滤波器的系统函数 H(z)。FIR 滤波器必须 采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼 近法。对于线性相位滤波器,经常采用 FIR 滤波器。 数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数 8 的时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤波器和无限冲激响应( I

13、IR,Infinite Impulse Response)滤波器。 FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈 , 系统函数H (z)在极点处收敛,极点全部在 z = 0处(因果系统) ,因 而只能用较高的阶数达到高的选择性。 FIR数字滤波器的幅频特性精 度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信 号经过fir滤波器后他们的时间差不变,这是很好的性质。 FIR数字 滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用 于计算的时延也小,这对实时的信号处理很重要。 FIR滤波器因具 有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等 优点收

14、到人们的青睐。 IIR滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运 算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接 型、正准型、级联型、并联型四种结构形式,都具有反馈回路。同时, IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃 斯、契比雪夫和椭圆滤波器等,在设计一个IIR数字滤波器时,我们根 据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器 的公式转换成数字滤波器的公式。 下面我们着重介绍用窗函数法设计 FIR 滤波器的步骤。如下: (1)根据对阻带衰减及过渡带的指标要求,选择串窗数类型(矩 形窗、三角窗、汉宁窗、汉明窗、凯塞窗等)

15、 ,并估计窗口长度 N。先 按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况 下,尽量选择主瓣的窗函数。 (2)构造希望逼近的频率响应函数。 9 (3)计算 h(n).。 (4)加窗得到设计结果。 接下来,我们根据语音信号的特点给出有关滤波器的技术指标: 低通滤波器的性能指标: fp=1000Hz,fc=1200Hz,As=100db ,Ap=1dB 高通滤波器的性能指标: fp=3500Hz,fc=4000Hz,As=100dB,Ap=1dB; 带通滤波器的性能指标: fp1=1200Hz,fp2=3000hZ,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap

16、 =1dB 在 Matlab 中,可以利用函数 fir1 设计 FIR 滤波器,利用函数 butter,cheby1 和 ellip 设计 IIR 滤波器,利用 Matlab 中的函数 freqz 画出 各步步器的频率响应。 hn=fir1(M,wc,window),可以指定窗函数向量 window。如果缺 省 window 参数,则 fir1 默认为哈明窗。其中可选的窗函数有 Rectangular Barlrtt Hamming Hann Blackman 窗,其相应的都有实现函数。 函数 butter,cheby1 和 ellip 设计 IIR 滤波器时都是默认的双线性变换 法,所以在设

17、计滤波器时只需要代入相应的实现函数即可 第二节第二节 用用 FIR 滤波器语音信号进行滤波滤波器语音信号进行滤波 一一 滤波器的程序设计滤波器的程序设计 由频谱图可以看出信号能量集中在低频部分,为了减少无用的高频 分量我设计了以下的 FIR 低通滤波器将其滤除。 10 该设计采用窗函数法(汉明窗)来完成以下指标的低通滤波器。 通带截频 fp=3000Hz,阻带截频 fs=3500Hz,通带最大衰减 0.3dB,阻 带最小衰减 50dB,采样频率 fs 为信号源采样频率 22050Hz。源程序如 下: Wp=3000*2*pi;Ws=3500*2*pi;Ap=0.3;As=50;fs=22050

18、; wp=Wp/fs;ws=Ws/fs; %归一化通带截频,阻带截频 wdelta=ws-wp; %过渡带宽 %由阻带最小衰减指标确定选用汉明窗,并确定其阶数 N=ceil(6.6*pi/wdelta) Nw=N; n=0:N-1; m=n-alpha+eps;%理想滤波器脉冲响应 wc=(wp+ws)/2; %理想截频 hd=sin(wc*m)./(pi*m); %采用汉明窗设计 win=hamming(Nw); h=hd.*win; b=h; H,f=freqz(b,1,512,fs); %绘制滤波器的幅频响应图 plot(f,20*log10(abs(H) xlabel(频率);ylab

19、el(幅度); title(滤波器幅频特性);grid on; 幅频特性曲线如下所示: 11 020004000600080001000012000 -120 -100 -80 -60 -40 -20 0 20 信 信 信 信 信 信 信 信 信 信 信 图 3.7 滤波器幅频特性曲线 二二 滤波前后信号比较滤波前后信号比较 源程序如下: x,fs,bits=wavread( E:shejishijiebei );%信号读取 sound(x,fs); y=fftfilt(b,y); %滤波输出 figure(2) subplot(2,1,1); plot(x),title(输入信号) %绘制输

20、入信号 subplot(2,1,2);plot(y) % 绘制输出信号 xlabel(时间/s),title(输出信号) sound(y,fs);%输入输出频谱 X=fft(x); Y=fft(y); 12 figure(3); subplot(2,1,1);plot(abs(X); xlabel(频率);ylabel(幅度); title(输入信号频谱);grid on; subplot(2,1,2);plot(abs(Y); xlabel(频率);ylabel(幅度); title(输出信号频谱);grid on; 时域图如下: 012345678 x 10 4 -1 -0.5 0 0.5

21、 1 信 信 信 信 012345678 x 10 4 -1 -0.5 0 0.5 1 信 信 /s 信 信 信 信 图 3.8 原信号与滤波后时域波形比较 频谱图如下: 13 012345678 x 10 4 0 500 1000 1500 2000 信 信 信 信 信 信 信 信 信 信 012345678 x 10 4 0 500 1000 1500 2000 信 信 信 信 信 信 信 信 信 信 图 3.9 原信号与滤波后信号频谱图比较 第三节第三节 比较回放语音信号比较回放语音信号 经过以上的加噪声滤波处理后,可在 Matlab 中用函数 sound 对声 音进行回放。其调用格式:

22、sound(y,Fs),sound(y)和 sound(y,Fs,bits)。可 以察觉滤波前后的声音有明显的变化。通过上面的频谱图可以很清晰地 观察到经过滤波后与滤波前存在明显差别,滤波后的频谱比加噪语音信 号的频谱清晰,滤波后的声音显得比较低沉,因为原始信号经过低通滤 波器后,低通滤波器已经把信号高频部分滤掉了,只剩下低频部分。 14 第四章第四章 心得体会心得体会 这次课程设计历时一个星期,可以说是苦多于甜,但是可以学的到 很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很 多在书本上所没有学到过的知识。通过这次设计,进一步加深了对数字 信号处理的了解,让我对它有了更加浓厚的

23、兴趣。但是在编写程序时, 也遇到了不少问题,特别是程序语法,总是有错误,在细心的检查下, 终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒 了一口气。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有 理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从 理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。同 时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得 不够深刻,掌握得不够牢固。 总的来说,这次课程设计还是比较成功的,在设计中遇到了很多问 题,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感, 终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的 目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的 路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给过 我帮助的所有同学和各位指导老师再次表示忠心的感谢 15 参考文献参考文献 1、陈怀琛.MATLAB及在电子信息课程中的应用M.北京:电子工业 出版设,2008.1 2、张文.基于MATLAB的语音信号的滤波与实现J.山西电子技术出 版社.2008.2 3、徐靖涛.基于MATLAB的语音信号分析与处理J重庆科技学院学报 2008.1 16

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1