课程设计(论文)-基于MATLAB的语音信号采集和双线性变换法滤波器设计.doc

上传人:yyf 文档编号:3292676 上传时间:2019-08-08 格式:DOC 页数:17 大小:127.01KB
返回 下载 相关 举报
课程设计(论文)-基于MATLAB的语音信号采集和双线性变换法滤波器设计.doc_第1页
第1页 / 共17页
课程设计(论文)-基于MATLAB的语音信号采集和双线性变换法滤波器设计.doc_第2页
第2页 / 共17页
课程设计(论文)-基于MATLAB的语音信号采集和双线性变换法滤波器设计.doc_第3页
第3页 / 共17页
课程设计(论文)-基于MATLAB的语音信号采集和双线性变换法滤波器设计.doc_第4页
第4页 / 共17页
课程设计(论文)-基于MATLAB的语音信号采集和双线性变换法滤波器设计.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《课程设计(论文)-基于MATLAB的语音信号采集和双线性变换法滤波器设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)-基于MATLAB的语音信号采集和双线性变换法滤波器设计.doc(17页珍藏版)》请在三一文库上搜索。

1、郑州轻工业学院 课课 程程 设设 计计 任任 务务 书书 题目题目 基于基于 MATLABMATLAB 的语音信号采集和双线性变换法滤波器的语音信号采集和双线性变换法滤波器 设计设计 专业、班级专业、班级 电子信息工程电子信息工程 学号学号 姓名姓名 主要内容、基本要求、主要参考资料等:主要内容、基本要求、主要参考资料等: 主要内容主要内容: 要求学生在 MATLAB 中采集语音信号,并对所采集的语音信号进行时域和 频谱分析。给定滤波器的性能指标,采用双线性变换法设计滤波器滤除高频 成分的信号,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行 对比,分析信号的变化。 基本要求基本要求:

2、1、学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。 2、在 MATLAB 下采集 Windows 自带的“Windows XP 关机.wav”语音信号。 3、掌握数字信号处理的基本概念、基本理论和基本方法。 4、利用 MATLAB 环境采用双线性变换法设计数字滤波器滤出高频成分。 5、学会用 MATLAB 对信号进行分析和处理。 主要参考资料:主要参考资料: 1、张文.基于 MATLAB 的语音信号的滤波与实现J.山西电子技术. 2008,2 2、徐靖涛.基于 MATLAB 的语音信号分析与处理J.重庆科技学院学报 2008,1 完完 成成 期期 限:限: 2011.6.27

3、2011.7.1 指指导导教教师师签签名名: 课程负责人签名:课程负责人签名: 2011 年年 6 月月 24 日日 1 摘要 本课程设计主要 Matlab 处理一段语音信号,绘制波形并观察其频 谱。给定相应技术指标,用双线性变换法设计一个满足指标的巴特沃斯 IIR 滤波器,对该语音信号进行滤波处理,比较滤波前后的波形和频谱并进行分 析,根据结果和学过的理论得出合理的结论。 关键词关键词 matlab;语音信号;双线性;滤波器 目目 录录 1 语音信号的采集语音信号的采集1 1.1 语音信号的特点1 1.2 语音信号的采集2 2 语音信号的分析语音信号的分析3 2.1 语音信号分析技术3 2.

4、2 语音信号的时域分析4 2.3 语音信号的频域分析5 3 滤波器的设计滤波器的设计5 3.1 IIR 滤波器5 3.2 巴特沃斯滤波器6 4 语音信号处理语音信号处理7 4.1 滤波前语音信号7 4.2 滤波后的语音信号8 5 设计思路设计思路10 6 心得体会心得体会11 参考文献参考文献12 1 00.511.522.533.544.55 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 Time(s) 00.511.522.5 x 10 4 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 Frequency(Hz) 附录附录 源程

5、序源程序12 1 语音信号的采集语音信号的采集 1.1 语音信号的特点语音信号的特点 一般来说,人的听觉能感知的声音频率范围为 2020000Hz,在这一频率范围 内可感知的声音强度为 0140dB,其中人耳比较敏感的区域在 504000Hz。因此, 采集子系统的硬件参数可根据要分析的语音信号的频率和强度来确定 通过对大量语音信号的观察和分析发现,语音信号主要有下面两个特点: 在频域内,语音信号的频谱分量主要集中在 3003400Hz 的范围内。利用这 个特点,可以用一个防混迭的带通滤波器将此范围内的语音信号频率分量取出, 然后按 8kHz 的采样率对语音信号进行采样,就可以得到离散的语音信号

6、。 在时域内,语音信号具有“短时性”的特点,即在总体上,语音信号的特征 是随着时间而变化的,但在一段较短的时间间隔内,语音信号保持平稳。在浊音 段表 现出 周期 信号 的特 征, 在清 音段表现出随机噪声的特征。 2 图一 语音信号时域波形 图二 语音信号频域波形 1.2 语音信号的采集语音信号的采集 MATLAB 是美国 Math Works 公司推出的一种面向工程和科学计算的交互式计 算软件,在 MATLAB 环境中,可以通过多种编程方法驱动声卡实现对语音信号的采 集和播放,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函 数,利用这些功能函数可以快捷而又方便地完成语音信号的处

7、理和分析使用 MATLAB 语言编程可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵 运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及 各种分析图的呈现等等 在 Matlab 环境中,主要可以通过以下几种方法驱动声卡,采集语音信号: 1将声卡作为对象处理采集语音信号 Matlab 将声卡作为对象处理,其后的一切 操作都不与硬件直接相关,而是通过对该对象的操作来作用于硬件设备(声卡) 。 操作时首先要对声卡产生一个模拟输入对象(ai),给 ai 对象添加一个通道设置采 样频率后,就可以启动设备对象,开始采集数据,采集完成后停止对象并删除对 象。 2调用 wavrec

8、ord 功能函数采集语音信号。wavrecord 功能函数只适用于 3 windows95/98/N 平台,它使用 windows 声音输入设备录制声音。函数调用方式: wavrecord(N,fs,ch,nbits) ; N:采集的样本数据量; fs:样本采集频率, 为 8000Hz、11025Hz、22050Hz 和 44100Hz 之一,默认值为 11025Hz; ch:样本 采集通道,1 为单声道,2 为双声道,默认值为 1(单声道) ; nbits:每个样本 的位数(或称解析度) , double 、 single或int16为 16 位, uint8为 8 位; 3运用 audio

9、recorder 对象采集语音信号 audiorecorder(fs,nbits,ch)可以创设一个 audiorecorder 对象。fs:样本 采集频率,为 8000Hz、11025Hz、22050Hz 和 44100Hz 之一,默认值为 8000Hz; nbits:每个样本的位数,8 位或 16 位,默认值为 8 位; ch:样本采集通道,1 为单声道,2 为双声道,默认值为 1(单声道) ; audiorecorder 对象创设后,就 可以进行相应的录音、暂停、停止、播放以及数据读取等操作。 本设计采用直接读取声音文件(*.wav)的方式进行语音信号的采集。 2 语音信号的分析语音信号

10、的分析 2.1 语音信号分析技术语音信号分析技术 语音信号分析是语音信号处理的前提和基础,只有分析出可表示语音信号本 质特征的参数,才有可能利用这些参数进行高效的语音通信、语音合成和语音识 别等处理。而且,语音合成的音质好坏,语音识别率的高低,也都取决于对语音 信号分桥的准确性和精确性。因此语音信号分析在语音信号处理应用中具有举足 轻重的地位。 贯穿于语音分析全过程的是“短时分析技术” 。因为,语音信号从整体来看其 特性及表征其本质特征的参数均是随时间而变化的,所以它是一个非乎稳态过程, 4 不能用处理乎稳信号的数字信号处理技术对其进行分析处理。但是,由于不同的 语音是由人的口腔肌肉运动构成声

11、道某种形状而产生的响应,而这种口腔肌肉运 动相对于语音频率来说是非常缓慢的,所以从另一方面看,虽然语音倍号具有时 变特性,但是在一个短时间范围内(一般认为在 1030ms 的短时间内),其特性基 本保持不变即相对稳定,因面可以将其看作是一个准稳态过程,即语音信号具有 短时平稳性。所以任何语音信号的分析和处理必须建立在“短时”的基础上即 进行“短时分析” ,将语音信号分为一段一段来分析其特征参数,其中每一段称为 一“帧” ,帧长一般取为 1030ms。这样,对于整体的语音信号来讲,分析出的 是由每一帧特征参数组成的特征参数时间序列。 根据所分析出的参数的性质的不同,可将语音信号分析分为时域分析、

12、频域 分析、倒领域分析等;时域分析方法具有简单、计算量小、物理意义明确等优点, 但由于语音信号最重要的感知特性反映在功率谱中,而相位变化只起着很小的作 用,所以相对于时域分析来说频域分析更为重要。本文将简要介绍时域分析、频 域分析。 2.2 语音信号的时域分析语音信号的时域分析 语音信号的时域分析就是分析和提取语音信号的时域参数。进行语音分析时, 最先接触到并且也是最直观的是它的时域波形。语音信号本身就是时域信号,因 而时域分析是最早使用,也是应用最广泛的一种分析方法,这种方法直接利用语 音信号的时域波形。时域分析通常用于最基本的参数分析及应用,如语音的分割、 预处理、大分类等。这种分析方法的

13、特点是:表示语音信号比较直观、物理意 义明确。实现起来比较简单、运算且少。可以得到语音的一些重要的参数。 只使用示波器等通用设备,使用较为简单等。 5 语音信号的时域参数有短时能量、短时过零率、短时自相关函数和短时平均 幅度差函数等,这是语音信号的一组最基本的短时参数,在各种语音信号数字处 理技术中都要应用6。在计算这些参数时使用的一般是方窗或汉明窗。 对语音信号进行分析,发现发浊音时,尽管声道有若干个共振峰,但由于声门波 引起谱的高频跌落,所以其话音能量约集中在 3kHz 以下。而发清音时,多数能 量出现在较高频率上。高频就意味着高的平均过零率,低频意味着低的平均过零 率,所以可以认为浊音时

14、具有较低的过零率,而清音时具有较高的过零率。当然, 这种高低仅是相对而言,并没方精确的数值关系。 2.3 语音信号的频域分析语音信号的频域分析 语音信号的频域分析就是分析语音信号的频域持征。从广义上讲,语音信号 的频域分析包括语音信号的频谱、功率谱、倒频谱、频谱包络分析等,而常用的 频域分析方法有带通滤波器组法、傅里叶变换法、线件预测法等几种。本文介绍 的是语音信号的傅里叶分析法。因为语音波是一个非平稳过程,因此适用于周期、 瞬变或平稳随机信号的标准傅里叶变换不能用来直接表示语音信号,而应该用短 时傅里叶变换对语音信号的频谱进行分析,相应的频谱称为“短时谱 ” 。 3 滤波器的设计滤波器的设计

15、 3.1 IIR 滤波器滤波器 IIR 滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计方 法进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数 H(s) ,然后将 6 H(s)按某种方法转换成数字滤波器的系统函数 H(z)。FIR 滤波器比鞥采用间接 法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。对于线性相 位滤波器,经常采用 FIR 滤波器。 对于数字高通、带通滤波器的设计,通用方法为双线性变换法。可以借助于 模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换 将其转换策划那个所需的数字滤波器。具体设计步骤如下: 1、确定所需类型数字滤波

16、器的技术指标。 2、将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率, 转换公式为 =2/T tan(0.5) 3、将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。 4、设计模拟低通滤波器。 5、通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。 6、采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤 波器。 我们知道,脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波 器的频响偏离模拟滤波器的频响特性。为了克服之一缺点,可以采用双线性变换 法。 下面我们总结一下利用模拟滤波器设计 IIR 数字低通滤波器的步骤: 1、确定数字低通滤波器的技术指

17、标:通带边界频率、通带最大衰减,阻带截 止频率、阻带最小衰减。 2、将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。 3、按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。 4、用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。 7 020004000600080001000012000 0 0.2 0.4 0.6 0.8 1 1.2 1.4 低 低 低 低 低 低 低 低 低 3.2 巴特沃斯滤波器巴特沃斯滤波器 MATLAB 信号处理工具箱函数 buttp buttor butter 是巴特沃斯滤波器设计函数, 其有 5 种调用格式,本课程设计中用到的是N

18、,wc=butter(N,wc,Rp,As,s),该格式 用于计算巴特沃斯模拟滤波器的阶数 N 和 3dB 截止频率 wc。 函数 butter,cheby1 和 ellip 设计 IIR 滤波器时都是默认的双线性变换法,所以 在设计滤波器时只需要代入相应的实现函数即可。下面我设计的 IIR 数字滤波器 的主要程序: fp=2500;fs=3500;As=30;Ap=1;ft=22050; wp=2*fp*pi; ws=2*fs*pi; N,Wc=buttord(wp,ws,Ap,As,s) b,a=butter(N,Wc,s); num,den=bilinear(b,a,ft); h,f=f

19、reqz(num,den); 8 图三 巴特沃斯低通滤波器的幅频特性 4 语音信号处理语音信号处理 4.1 滤波前语音信号滤波前语音信号 本设计采用的语音信号是 Windows 的关机声音。以下是通过 Matlab 进行的 时域和频域分析波形。这与第一部分分析的语音信号的特征一致。 012345678 x 10 4 -1 -0.5 0 0.5 1 低 低 低 低 低 低 低 低 n 低 低 n 020004000600080001000012000 0 100 200 300 低 低 低 低 低 低 FFT低 低 图四 原始语音信号的时域和频域波形 4.2 滤波后的语音信号滤波后的语音信号 如

20、图五所示,图五为滤波前后语音信号的时域波形,通过对比,无法判断信 9 012345678 x 10 4 -1 -0.5 0 0.5 1 低 低 低 低 低 低 低 012345678 x 10 4 -1 -0.5 0 0.5 1 低 低 低 低 低 低 低 号是否发生变化。图六为滤波前后语音信号频域波形的变化,由此可以看到,通 过巴特沃斯低通滤波器后,信号的高频部分严重衰减。通过播放滤波前后的声音 文件也可发现,滤波后,声音明显沉闷,意味着低频成分增加,而高频成分减少 了。 图五 滤波前后信号时域波形 图六 滤波前后信号的频谱 5 设计思路设计思路 0200040006000800010000

21、12000 0 100 200 300 低 低 低 低 低 低 低 050010001500200025003000350040004500 0 100 200 300 低 低 低 低 低 低 低 HZ 开始 语音信号的采集 (wavread 函数) ,画 时域图 10 6 心得体会心得体会 在这次的课程设计中我们设计的滤波器对语音信号的滤噪处理或多或少会因 快速傅里叶变换, 并且画频谱图 设定滤波器性能指标,通带截止频 率 fb=1100,阻带截止频率 fc=1200,通带波纹 Ap=1,阻带波 纹 As=20 脉冲响应不变法法设 计巴特沃斯滤波器 验证并进行频谱分析 设计好的滤波器进 行滤

22、波处理 比较滤波前后语音信号 的波形及频谱 回放语音信号 结束 11 为我们的疏忽或者实践能力不够还是会遇到问题的,当遇到问题时我们不但运用 自己学到的知识还得到同学和老师的帮助将其解决,不断完善和修改。设计中出 现的问题及解决方法如下: 1、在运用 Matlab 设计滤波器时,当编辑完前面两条程序时无法放出声音, 后来发现我们应当把采集的语音信号 wav 文件放到 Matlab 的 work 文件夹中。 2、所有的时间波形横坐标都要化为时间,滤波前后频谱的横坐标应是频率, 这样在观察通带截止频率和阻带截止频率时更加精确,误差较小。 3、要区分清楚 ft、fs、fp 所代表的意思。 通过这次课

23、程设计,使我对语音信号有了全面的认识,对数字信号处理的知 识又有了深刻的理解,在之前数字信号与处理的学习以及完成课后的作业的过程 中,已经使用过 MATLAB,对其有了一些基础的了解和认识。本次经过一周的课 程设计,让我们更熟悉了数字信号处理的基本知识和 MATLAB 的 m 语言,让我 们把课上的理论知识运用到实际中去,让我们更近一步地巩固了课堂上所学的理 论知识,并能很好地理解与掌握数字信号处理中的基本概念、基本原理、基本分 析方法。 总的来说,通过这次设计使我了解了 MATLAB 的使用方法,学会分析滤波 器的优劣和性能,提高了分析和动手实践能力。同时我相信,进一步加强对 MATLAB

24、的学习与研究对我今后的学习将会起到很大的帮助! 参考文献参考文献 1. 楼顺天.MATLAB 7.x 的系统分析与设计.西安电子科技大学出版社.2005.2 12 2. 陈怀琛.MATLAB 及在电子信息课程中的应用.北京电子工业出版社.2008.1 3. 徐靖涛.基于 MATLAB 的语音信号分析与处理.重庆科技学院学报.2008.1 4. 程佩青. 数字信号处理教程(第三版). 清华大学出版社. 2007.2 附录附录 源程序源程序 % %做原始语音信号的时域图形% % clear all;close all; fc=22050; f0=fc*(0:511)/1024; x,fc,nbit

25、s=wavread(Windows XP 关机. wav);%载入波形 sound(x,22050);%播放声音 X=fft(x,4096);%进行快速傅里叶变换 subplot(2,1,1); %做原始语音信号的时域 图形 plot(x,b); title(原始语音信号); xlabel(时间 n); ylabel(幅值 n); 13 subplot(2,1,2);%做原始语音信号的FFT频 谱图 plot(f0,abs(X(1:512); title(原始语音信号FFT频谱) % %设计低通滤波器% % fp=2500;fs=3500;As=30;Ap=1;ft=22050;% 滤波器指标

26、 wp=2*fp*pi; ws=2*fs*pi; N,Wc=buttord(wp,ws,Ap,As,s) b,a=butter(N,Wc,s); % %双线性变换法设计低通滤波器% % num,den=bilinear(b,a,ft); h,f=freqz(num,den); figure(2); plot(f*ft/(2*pi),abs(h);grid on; title(巴特沃斯低通滤波器); 14 % %语音信号通过低通滤波器% % y=filter(num,den,x); Y=fft(y,4096); figure(3); subplot(2, 1, 1);plot(x,b);title(滤波前 信号波形); subplot(2, 1 ,2);plot(y,r);title(滤波后 信号波形); figure(4); subplot(2, 1, 1);plot(f0,abs(X(1:512), b); title(滤波前信号频谱); subplot(2, 1 ,2);plot(abs(Y),r); title(滤波后信号频谱); xlabel(HZ); sound(y,fs,nbits);

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

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


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