logo资料库

基于mtlab的语音信号分析和处理.doc

第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
资料共25页,剩余部分请下载后查看
1绪论
1.1课题的研究意义
1.2设计任务
2基本原理
2.1 语音信号概述
2.2数字滤波器原理
(1)根据单位冲激响应h(n)的时间特性分类
3总体设计思想
3.1 语音信号的采集
3.2 语音信号处理工具的选择
3.3 数字滤波器的设计
4语音信号分析和滤波处理
4.1 语音信号的采集
4.2 语音信号的读入与打开
4.4滤波器的设计
总结
本设计采用了高效快捷的开发工具——MATLAB,实现了语音信号的采集,对语音信号加噪声及设计滤波器滤
参考文献
基于MATLAB 的语音信号分析和处理 福建师范大学协和学院 信息技术系 电子信息科学与技术专 124122006028 王祯飞 指导老师 黄小芬 【摘要】本设计用微软录音机采集了一段语音,对其进行了时域分析,频谱分析,分析语音信 号的特性。并应用 matlab 平台对语音信号加入了不同的噪声,进一步用双线性变换法设计 了一个的巴特沃思低通滤波器,基于巴特沃斯模拟滤波器设计数字带通滤波器和用窗函数法 设计了 FIR 低通滤波器,然后对加噪的语音信号进行滤波处理。最后对比滤波前后的语音信 号的时域和频域特性,回放加噪语音信号和去噪语音信号,对比研究了巴特沃思 IIR 滤波器 和 FIR 滤波器在信号处理尤其是信号滤波去噪方面的特性和应用。论文从理论和实践上比较 不同数字滤波器的滤波效果。 【关键词】 语音信号;频域特性; 时域特性; 滤波器 1
1 绪论 1.1 课题的研究意义 语言是我们人类所特有的功能,它是传承和记载人类几千年文明史,没有语言就没有我们今天人类的 文明。语音是语言最基本的表现形式,是相互传递信息最重要的手段,是人类最重要、最有效、最常用和 最方便的交换信息的形式。 语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度发展和计算机技术的飞速前进, 推动了这一技术的发展;它是研究用数字信号处理技术对语音信号进行处理的一门新兴学科,同时又是综 合性的多学科领域和涉及面很广的交叉学科,因此我们进行语言信号处理具有时代的意义。 1.2 设计任务 本设计先完成语音信号的采集,然后设计低通,高通,带通等滤波器对采集到的语音信号进行滤波处 理,分析语音信号各频率段的特性。并对所采集的语音信号加入不同的干扰噪声,对加入噪声的信号进行 频谱分析,针对受干扰语音信号的特点设计不同的滤波器,对加噪信号进行滤波,恢复原信号。把原始语 音信号、加噪语音信号和滤波后的信号进行时域变换和频域变换,画出它们的时域波形和频域波形图,从 视觉角度比较分析滤波的效果。也可将这 3 类信号进行播放从听觉角度感受滤波的效果。 2
2 基本原理 2.1 语音信号概述 语言是人类创造的,是人类区别于其他地球生命的本质特征之一。人类用语言交流的过程可以看成是 一个复杂的通信过程,为了获取便于分析和处理的语音信源,必须将在空气中传播的声波转变为包含语音 信息并且记载着声波物理性质的模拟(或数字)电信号,即语音信号,因此语音信号就成为语音的表现形 式或载体。 语音学和数字信号处理的交叉结合便形成了语音信号处理。语音信号处理是建立在语音学和数字信号 处理基础之上的,对语音信号模型进行分析、存储、传输、识别和合成等方面的一门综合性学科。 2.2 数字滤波器原理 2.2.1数字滤波器的概念 若滤波器的输入、输出都是离散时间信号,那么该滤波器的单位冲激响应 h(n)也必然是离散的,这种 滤波器称为数字滤波器(DF)。数字滤波器实质上是一种运算过程——用来描述离散系统输入与输出关系 的差分方程的计算或卷积计算。数字滤波器的实质是用一有限精度算法实现的离散时间线性时不变系统, 以完成对信号进行滤波处理的过程。它是数字信号处理的一个重要分支,具有稳定性好、精度高、灵活性 强、体积小、质量轻等诸多优点。 2.2.2数字滤波器的分类 数字滤波器根据不同的分类标准可以将滤波器分成不同的类别。 (1)根据单位冲激响应 h(n)的时间特性分类 无限冲激响应(IIR)数字滤波器 有限冲激响应(FIR)数字滤波器 (2)根据实现方法和形式分类 递归型数字滤波器 非递归型数字滤波器 快速卷积型 (3)根据频率特性分类 低通数字滤波器、高通数字滤波器、带通数字波器、 带阻数字滤波器 3
3 总体设计思想 3.1 语音信号的采集 Windows 自带了一个录音机程序(简称录音机),通过它可以驱动声卡采集、播放和简单处理语音信 号。语音信号的采集可以用麦克风直接录制人的语音,也可以通过音频线或者MIDI 线将收音机、电视机 或磁带录机中的语音信号采集到计算机中。在录音机中可以进行简单的声音处理,如加大或降低音量,加 速或减速,声音的反转或添加回音效果等。加速或减速的改变可以完成变音功能,反转可以达到对声音文 件保密的功能。 本设计用是收音机接到电脑上用录音机录的,保存起来以备处理。 3.2 语音信号处理工具的选择 语音信号的进一步处理分析工作选用了 matlab 平台。MATLAB 是一种科学计算软件,专门以矩阵的形 式处理数据。MATLAB 将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,不断完善 MATLAB 产品以提高产品自身的竞争能力 Matlab 的数据分析和处理功能十分强大,运用它来进行语音信号 的分析、处理和可视化相当便捷。在编程效率、程序可读性、可移植性和可扩充性上 matlab 远远优于其 它的高级编程语言,而且编程易学、直观,代码非常符合人们的思维习惯。另外 matlab 为用户提供了丰 富的 windows 图形界面设计方法,使用户能够在利用其强大的数值计算功能的同时可设计出友好的图形界 面,它受到了越来越多的用户的欢迎 Matlab 几乎可以在各种机型和操作系统上运行,所以在可移植性和可扩充性上,matlab 远优越于其 他的高级编程语言。Matlab 语言具有强大的数值计算能力和视图能力,其偏微分方程工具箱提供了有限元 求解的一个强大而灵活的环境,并且有限元网格可做精细划分以满足要求。但是,和其他的高级语言相比, matlab 程序的执行速度较慢。在目前电脑处理速度不断提升的情况下,如果实时性要求不是非常高的情况 下,使用 matlab 开发就不存在此类问题了。 3.3 数字滤波器的设计 本设计在 matlab 平台上,设计了 IIR 和 FIR 滤波器各种类型的滤波器。用以对语音原始信号及加噪 的语音信号进行滤波,重点对加噪信号进行了滤波。 对于 IIR 滤波器,它的极点可以在单位圆内的任何位置,实现 IIR 滤波器的阶次可以较低,所用的存储 单元较少,效率高,又由于 IIR 数字滤波器能够保留一些模拟滤波器的优良特性,因此应用很广。 设计 IIR 数字滤波器的常用方法是从模拟滤波器来设计数字 IIR 滤波器。模拟滤波器设计已经有了一套 相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询,因此充分利用这些已有的 资源将会给数字滤波器的设计带来很大的方便。再将模拟滤波器转换为数字滤波器,其转换方法有冲激响 应不变法和双线性 Z 变换法。一般,当着眼于滤波器的时域瞬态响应时,采用脉冲响应不变法较好,而其 它情况下,对于 IIR 的设计,大多采用双线性变换法。 对于 FIR 滤波器,它有精确、严格的线性相位特性,并且可以做成既是因果的又是稳定的系统。所以 FIR 滤波器的应用越来越广泛。 IIR 与 FIR 滤波器的性能比较如下图 3.1 所示。 表 3.1 IIR 滤波器与 FIR 滤波器的性能比较 4
IIR DF FIR DF (1)相位一般是非线性的 (1)相位可以做到严格线性 (2)不一定稳定 (2)一定是稳定的 (3)不能用 FFT 作快速卷积 (3)信号通过系统可采用快速卷积 (4)一定是递归结构 (4)主要是非递归结构,也可含递归环节 (5)对频率分量的选择性好(零极点可同 时起作用) (5)选择性差 (6)相同性能下阶次较低 (6)相同性能下阶次高 (7)有噪声反馈,噪声大 (7)噪声小 (8)运算误差大,有可能出现极限环振荡 (8)运算误差小,不会出现极限环振荡 (9) 设计有封闭形式的公式,一次完 (9)没有封闭形式的设计公式,须靠经验 与反复调试 成 (10)对计算手段的要求较低 (10)一般需用计算机计算 (11)主要用于设计分段常数的标准低通、 高通、带通、带阻和全通滤波器 (11)还可设计正交变换器、微分器、线性 预测器、回波抵消器、均衡器、线性调频器 等各种网络,适用范围广 从上面的简单比较我们可以看到 IIR 与 FIR 滤波器各有所长,所以在实际应用时应该从多方面考虑来 加以选择。例如,从使用要求上来看,在对相位要求不敏感的场合,如语言通讯等,选用 IIR 较为合适, 这样可以充分发挥其经济高效的特点,而对于图像信号处理,数据传输等以波形携带信息的系统,则对线 性相位要求较高,如果有条件,采用 FIR 滤波器较好,当然,在实际应用中应考虑经济上的要求以及计算 工具的条件等多方面的因素。整体来看,IIR 滤波器达到同样效果阶数少,延迟小,但是有稳定性问题, 非线性相位;FIR 滤波器没有稳定性问题,线性相位,但阶数多,延迟大。 而不论是 IIR 滤波器还是 FIR 滤波器的设计都包括三个步骤: (1) 按照实际任务的要求,确定滤波器的性能指标。 (2) 用一个因果、稳定的离散线性时不变系统的系统函数逼近性能要求。根据系统的不同的要求可以 考虑用 IIR 系统函数或 FIR 系统函数去逼近。 (3) 利用有限精度算法实现系统函数,包括结构选择、字长选择等。 5
4 语音信号分析和滤波处理 4.1 语音信号的采集 把语音信号并保存为.wav 文件,长度小于 30 秒,并对语言信号进行采样;录制的软件可以使用 Windows 自带的录音机,或者也可以使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风), 为了方便比较,需要在安静、无噪音、干扰小的环境下录。 4.2 语音信号的读入与打开 在 MATLAB 中,[y,fs,bits]=wavread('Blip',[N1 N2]);用于读取语音,采样值放在向量 y 中,fs 表示采样频率(Hz),bits 表示采样位数。[N1 N2]表示读取的值从 N1 点到 N2 点的值。 sound(y); 用于对声音的回放。向量 y 则就代表了一个信号,也即一个复杂的“函数表达式”,也 可以说像处理一个信号的表达式一样处理这个声音信号。 下面是语音信号在 MATLAB 中的语言程序,它实现了语音的读入与打开,并绘出了语音信号的波形频 谱图。 [x,fs,bits]=wavread('wzf.wav'); sound(x); X=fft(x,4096); magX=abs(X); angX=angle(X); subplot(221);plot(x);title('原始信号波形'); subplot(222);plot(X); title('原始信号频谱'); subplot(223);plot(magX);title('原始信号幅值'); subplot(224);plot(angX);title('原始信号相位'); 程序运行可以听到声音,得到的结果图 4-1 所示: 4.3语言信号处理 4.3.1语音信号分析 图 4-1 语音信号的读入与打开 6
用 MATLAB 绘制出语音信号的时域波形图和原始语音信号的频率响应图和原始语音信号的 FFT 频谱图。 %语音信号采样频率为 22050 %播放语音信号 %对信号做 1024 点 FFT 变换 程序设计如下: fs=22050; [x,fs,bits]=wavread('wzf.wav'); sound(x,fs,bits); y1=fft(x,1024); f=fs*(0:511)/1024; figure(1) plot(x) title('原始语音信号时域图'); xlabel('time n'); ylabel('fuzhi n'); figure(2) freqz(x) title('频率响应图') figure(3) plot(f,abs(y1(1:512))); title('原始语音信号频谱') xlabel('Hz'); ylabel('fudu'); 如下图 4-2 所示: %做原始语音信号的时域波形图 %绘制原始语音信号的频率响应图 7
图 4-2 语言信号分析 4.3.2含噪语音信号的合成 在 MATLAB 软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:(1)单频噪色(正 弦干扰);(2)高斯随机噪声。绘出加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形 对比,也可通过 Windows 播放软件从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。 程序代码如下: %语音信号采样频率为 22050 fs=22050; [x,fs,bits]=wavread('ding.wav'); %读取语音信号的数据,赋给变量 x %sound(x) %t=0:1/22050:(size(x)-1)/22050; y1=fft(x,1024); f=fs*(0:511)/1024; x1=rand(1,length(x))'; x2=x1+x; %t=0:(size(x)-1); %产生一与 x 长度一致的随机信号 %对信号做 1024 点 FFT 变换 %加入正弦噪音 8
分享到:
收藏