1、Matlab 语音信号处理摘要语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。Matlab 语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷
2、。信号处理是 Matlab 重要应用的领域之一。本设计通过下载一段语音,对其进行了时域分析,频谱分析,分析语音信号的特性。并应用matlab 平台对语音信号除去噪声,进一步设计三种滤波器即高通滤波器、低通滤波器、带通滤波器,基于洪泽三种滤波器设计原理,用窗函数法设计出这三种滤波器,然后含加噪的语音信号进行滤波处理。最后对比滤波前后的语音信号的时域和频域特性,回放含噪语音信号和去噪语音信号,对比研究了 IIR 滤波器和 FIR 滤波器在信号处理尤其是信号滤波去噪方面的特性和应用。论文从理论和实践上比较不同数字滤波器的滤波效果。关键字:Matlab;语音信号;信号处理;傅里叶变换;滤波器The D
3、esign of Analysis Voice SignalAbstractSpeech signal processing is to study the use of digital signal processing technology and knowledge of the voice signal voice processing of the emerging discipline is the fastest growing areas of information science one of the core technology. Transmission of inf
4、ormation through the voice of humanitys most important, most effective, most popular and most convenient form of exchange of information.Matlab language is a data analysis and processing functions are very powerful computer application software, sound files which can be transformed into discrete dat
5、a files, then use its powerful ability to process the data matrix operations, such as digital filtering, Fourier transform, when domain and frequency domain analysis, sound playback and a variety of map rendering, and so on. Its signal processing and analysis toolkit for voice signal analysis provid
6、es a very rich feature function, use of these functions can be quick and convenient features complete voice signal processing and analysis and visualization of signals, makes computer interaction more convenient . Matlab Signal Processing is one of the important areas of application.The design of mo
7、bile phone collection a noisy speech, has carried on the analysis in time domain, frequency spectrum analysis, analysis of the characteristics of speech signal. And application of the MATLAB platform to the voice signal to remove noise, the further design of three kinds of filter is a high-pass filt
8、er, low-pass filter, bandpass filter, based on the Hongze three kinds of filter design, window function method to design the three kinds of filter, and then with the original speech signal filtering. Finally the comparison before and after filtering the speech signal in time domain and frequency dom
9、ain, the playback noise speech signal denoising and the voice signal, a comparative study of the IIR filter and a FIR filter in signal processing especially for signal denoising in terms of the characteristics and application of. The theory and practice from the comparison of different digital filte
10、ring effect.Keywords: Matlab; speech signal; signal processing; FFT; filter目录摘要.IAbstract.II第一章绪论.11.1 课题研究的背景 .11.2 国内外研究状况 .11.3 本文的主要工作及研究步骤 .21.3.1 本文的主要工作 .21.3.2 论文的研究步骤 .2第二章语音信号处理的总体方案.42.1 运行环境 及系统的基本要求 .42.1.1 运行的环境 .42.1.2 系统的基本要求 .42.2 语 音 信 号 相 关 调 用 函 数 介 绍 .42.2.1 Wavread 函数介绍 .42.2.2
11、 其他相关函数介绍 .5第三章语音信号处理的基本知识.73.1 语音的录入和打开 .73.2 采样位数和采样频率 .73.3 时 域 信 号 FFT 分 析 .7第四章 语音信号的采集.84.1 语音信号的采集 .84.2 语音信号的频谱分析 .9第五章 数字滤波器的设计和画出其频率响应.115.1 三种滤波器的性能指标 .115.2IIR 滤波器与 FIR 滤波器的性能比较 .115.3 设计 FIR 滤波器 .125.3.1FIR 低通滤波器设计 .125.3.2FIR 高通滤波器设计 .135.3.3FIR 带通滤波器的设计 .145.4 设计 IIR 滤波器 .155.4.1IIR 低
12、通滤波器的设计 .155.4.2IIR 高通滤波器设计 .175.4.3IIR 带通滤波器设计 .18第六章 语音信号的滤波.206.1 语音信号滤波的流程 .206.2 对语音信号滤波的仿真 .206.2.1 滤波前后的时域对比 .206.2.2 滤波前后的频域对比 .23第七章总结.27参考文献.28致谢.1附录:.1第一章绪论1.1 课题研究的背景通过语音传递倍息是人类最重要、最有效、最常用和最方便的交换信息的形式。语言是人类持有的功能,声音是人类常用的工具,是相互传递信息的最主要的手段。因此,语音信号是人们构成思想疏通和感情交流的最主要的途径。并且,由于语言和语音与人的智力活动密切相关
13、,与社会文化和进步紧密相连,所以它具有最大的信息容量和最高的智能水平。现在,人类已开始进入了信息化时代,用现代手段研究语音信号,使人们能更加有效地产生、传输、存储、获取和应用语音信息,这对于促进社会的发展具有十分重要的意义。让计算机能听懂人类的语言,是人类自计算机诞生以来梦寐以求的想法。随着计算机越来越向便携化方向发展,随着计算环境的日趋复杂化,人们越来越迫切要求摆脱键盘的束缚而代之以语音输人这样便于使用的、自然的、人性化的输人方式。作为高科鼓应用领域的研究热点,语音信号采集与分析从理论的研究到产品的开发已经走过了几十个春秋并且取得了长足的进步。它正在直接与办公、交通、金融、公安、商业、旅游等
14、行业的语音咨询与管理工业生产部门的语声控制,电话、电信系统的自动拨号、辅助控制与查询以及医疗卫生和福利事业的生活支援系统等各种实际应用领域相接轨,并且有望成为下一代操作系统和应用程序的用户界面。可见,语音信号采集与分析的研究将是一项极具市场价值和挑战性的工作。我们今天进行这一领域的研究与开拓就是要让语音信号处理技术走人人们的日常生活当中,并不断朝更高目标而努力。语音信号采集与分析之所以能够那样长期地、深深地吸引广大科学工作者去不断地对其进行研究和探讨,除了它的实用性之外,另一个重要原因是,它始终与当时信息科学中最活跃的前沿学科保持密切的联系并且一起发展。语音信号采集与分析是以语音语言学和数字信
15、号处理为基础而形成的一门涉及面很广的综合性学科,与心理、生理学、计算机科学、通信与信息科学以及模式识别和人工智能等学科都有着非常密切的关系。对语音信号采集与分析的研究一直是数字信号处理技术发展的重要推动力量。因为许多处理的新方法的提出,首先是在语音信号处理中获得成功,然后再推广到其他领域。1.2 国内外研究状况早在一两千年前,人们便对语言进行了研究。由于没有适当的仪器设备,长期以来,一直是由耳倾听和用口模仿来进行研究。因此,这种语言研究常被称为“口耳之学” ,所以对语音只是停留在定性的描写上。语音信号处理真正意义上的研究可以追溯到 1876 年贝尔电话的发明,该技术首次使用声电、电声转换技术实
16、现了远距离的语音传输。1939 年提出并研制成功的第一个声码器,从此奠定了语音产生模型的基础。这一发明在语音信号处理领域具有划时代的意义。19 世纪 60 年代,亥姆霍兹应用声学方法对元音和歌唱进行了研究,从而奠定了语言的声学基础。20 世纪 40 年代,一种语言声学的专用仪器语谱图仪问世了。它可以把语音的时变频谱用语图表示出来,从而得出了“可见语言” 。1948 年美国Haskins 实验室研制成功的语音回放机,该仪器可以把手工绘制在薄膜片上的语谱图自动转换成语音,并进行语音合成。20 世纪 50 年代队语言产生了系统的论述。随着计算机的出现,语音分析工作,得以在电子计算机上进行。在此基础上
17、,语音信号处理的研究工作得到了计算机技术的帮助,取得了突破性的进展。语音信号处理作为一个重要的研究领域,已经有很长的研究历史。但是它的快速发展可以说是从 1940 年前后 Dudley 的声码器和 Potter 等人的可见语音开始的;20 世纪 60 年代中期形成的一系列数字信号处理方法和技术,如数字滤波器、快速傅立叶变换等成为语音信号数字处理的理论和技术基础;到了 80 年代,由于矢量量化、隐马尔可夫模型和人工神经网络等相继被应用于语音信号处理,并经过不断改进与完善,使得语音信号处理技术产生了突破性的进展。进入 90 年代以来,语音信号处理在实用化方面取得了许多实质性的进展。一方面,对声学语
18、音学统计模型的研究逐渐深入,鲁棒的语音识别、基于语音段的建模方法及隐马尔可夫模型与人工神经网络的结合成为研究的热点。另一方面,为了语音识别实用化的需要,讲者自适应、听觉模型、快速搜索识别算法以及进一步的语言模型的研究等课题倍受关注。1.3 本文的主要工作及研究步骤1.3.1 本文的主要工作本文简要介绍了语音信号采集与分析的发展史以及语音信号的特征、采集与分析方法,并通过手机录制自己的一段声音,运用 Matlab 进行仿真分析,最后对于声音中的噪声进行滤波处理,比较滤波前后的变化以及介绍语音信号的特点与采集,仿真主要是验证奈奎斯特定理,对语音信号进行时域、频域上的分析,率谱,是对语音信号的综合和
19、分析,包括语音信号的调制和滤波。1.3.2 论文的研究步骤1理论依据 根据设计要求分析系统功能,掌握设计中所需理论(采样频率、采样位数的概念,采样定理;时域信号的 FFT 分析;数字滤波器设计原理和方法,各种不同类型滤波器的性能比较),阐明设计原理。2信号采集 采集语音信号,并对其进行 FFT 频谱分析,画出信号的时域波形图和频谱图。 3构造受干扰信号并对其进行 FFT 频谱分析 对所采集的语音信号加入干扰噪声,对语音信号进行回放,感觉加噪前后声音的变化,分析原因,得出结论。并对其进行 FFT 频谱分析,比较加噪前后语音信号的波形及频谱,对所得结果进行分析,阐明原因,得出结论。 4数字滤波器设
20、计 根据待处理信号特点,设计合适数字滤波器,绘制所设计滤波器的幅频和相频特性。 5信号处理 用所设计的滤波器对含噪语音信号进行滤波。对滤波后的语音信号进行 FFT 频谱分析。画出处理过程中所得各种波形及频谱图。 对语音信号进行回放,感觉滤波前后声音的变化。比较滤波前后语音信号 的波形及频谱,对所得结果和滤波器性能进行频谱分析,阐明原因,得出结论。 1.4 本文使用的软件 Matlab 介绍MATLAB 是 美 国 MathWorks 公 司 出 品 的 商 业 数 学 软 件 , 用 于 算 法 开 发 、 数 据 可 视化 、 数 据 分 析 以 及 数 值 计 算 的 高 级 技 术 计
21、算 语 言 和 交 互 式 环 境 , 主 要 包 括 MATLAB和 Simulink 两 大 部 分 4。 MATLAB 在 现 实 中 应 用 很 广 泛 , 如 今 随 处 可 见 , 在 各 个 领 域都 是 有 广 泛 的 使 用 。MATLAB 是 矩 阵 实 验 室 ( Matrix Laboratory) 的 简 称 , 和 Mathematica、 Maple并 称 为 三 大 数 学 软 件 。 它 在 数 学 类 科 技 应 用 软 件 中 在 数 值 计 算 方 面 首 屈 一 指 。MATLAB 可 以 进 行 矩 阵 运 算 、 绘 制 函 数 和 数 据 、 实
22、 现 算 法 、 创 建 用 户 界 面 、 连 接 其 他编 程 语 言 的 程 序 等 , 主 要 应 用 于 工 程 计 算 、 控 制 设 计 、 信 号 处 理 与 通 讯 、 图 像 处 理 、信 号 检 测 、 金 融 建 模 设 计 与 分 析 等 领 域 。MATLAB 的 基 本 数 据 单 位 是 矩 阵 , 它 的 指 令 表 达 式 与 数 学 、 工 程 中 常 用 的 形 式 十分 相 似 , 故 用 MATLAB 来 解 算 问 题 要 比 用 C, FORTRAN 等 语 言 完 相 同 的 事 情 简 捷 得 多 ,并 且 mathwork 也 吸 收 了
23、像 Maple 等 软 件 的 优 点 ,使 MATLAB 成 为 一 个 强 大 的 数 学 软件 。 在 新 的 版 本 中 也 加 入 了 对 C, FORTRAN, C+, JAVA 的 支 持 。 可 以 直 接 调 用 ,用户 也 可 以 将 自 己 编 写 的 实 用 程 序 导 入 到 MATLAB 函 数 库 中 方 便 自 己 以 后 调 用 , 此 外许 多 的 MATLAB 爱 好 者 都 编 写 了 一 些 经 典 的 程 序 , 用 户 可 以 直 接 进 行 下 载 就 可 以 用 。第二章语音信号处理的总体方案2.1 运行环境及系统的基本要求2.1.1 运行的环
24、境运行环境主要介绍了硬件环境和软件环境。硬件环境:(1)处理器:Inter Core2 T6400(2)内存:2G(3)硬盘空间:320GB 或更高(4)显卡:SVGA 显示适配器软件环境:操作系统:WindowXP开发环境主要介绍了本系统采用的操作系统、开发语言。(1)操作系统:WindowsXP(2)开发环境:Matlab 7.02.1.2 系统的基本要求本 文 是 用 Matlab 对 含 噪 的 的 语 音 信 号 同 时 在 时 域 和 频 域 进 行 滤 波 处 理 和 分 析 ,同时 对 该 语 音 信 号 通 过 滤 波 器 出 去 噪 声 , 设 计 出 三 种 滤 波 器
25、, 得 出 图 形 后 一 一 比 较 实现 语 音 信 号 的 处 理 分 析 。2.2 语 音 信 号 相 关 调 用 函 数 介 绍2.2.1 Wavread 函数介绍选取一段语音信号,然后在 matlab 软件平台下,利用 wavread 函数对语音信号进行采样,记住采样频率和采样点数。通过使用 wavread 函数,理解采样频率、采样位数等概念。wavread 函数调用格式:y=wavread(file) ,读取 file 所规定的 wav 文件,返回采样值放在响亮 y 中。y,fs,nbits=wavread(file),采样值放在向 y 中, 表示采样频率( ) ,sfHznbi
26、ts 表示采样位数。y=wavread(file,N) ,读取前 N 点的采样值放在向量 y 中。y=wavread(file, , ) ,读取从 到 点的采样值放在向量 y 中。1212对语音信号 04.wav 进行采样其程序如下:y,fs,nbits=wavread(larry)其中:fs =44100;(fs=44100 为双声道设置频率,fs=22050 为单声道设置频率)nbits =16;y=wavread(file,20000,65000)2.2.2 其他相关函数介绍(1). 函数 fftfilt 的调用函数 fftfilt 的调用格式为y=fftfilt(b,x)该格式是利用基
27、于 FFT 的重叠相加法对数据进行滤波,这种频域滤波技术只对 FIR滤波器有效。该函数是通过向量 b 描述的滤波器对 x 数据进行滤波。(2). 函数 sound 的调用函数 sound 可以对声音进行回放。其调用格式为:Sound(x,fs,bits)(3). 函数 filter 的调用函数 filter 的调用格式为y=filter(b,a,x)该格式采用数字滤波器对数据进行滤波,既可以用于 IIR 滤波器,也可以用于 FIR滤波器。其中向量 b 和 a 分别表示系统函数的分子、分母多项式的系数,若 a1,此时表示 FIR 滤波器,否则就是 IIR 滤波器。该函数是利用给出的向量 b 和
28、a,对 x 中的数据进行滤波,结果放入向量 y。(4).randn 函数调用rand 产生的是0,1上的均匀分布的随机序列 ,randn 产生均值为 0,方差为 1的高斯随机序列,也就是白噪声序列;也就是说,可以直接使用上面两个函数对原始信号添加噪声,调用格式:y=x+rand(length(x),1)或者 y=x+randn(length(x),1)(5). FFT 函数调用在 MATLAB 的信号处理工具箱中函数 FFT 用于序列快速傅立叶变换。FFT 函数的一种调用格式为 )(yxft其中,x 是序列,y 是序列的 FFT,x 可以为一向量或矩阵,若 x 为一向量,y 是 x的 FFT。
29、且和 x 相同长度。FFT 函数的另一种调用格式为: 式中,x,y 意义同前,N 为正整数),(yft第三章 语音信号处理的基本知识3.1 语音的录入和打开在 MATLAB 中 , y,fs,bits=wavread(Blip,N1 N2);用 于 读 取 语 音 , 采 样值 放 在 向 量 y 中 , fs 表 示 采 样 频 率 (Hz), bits 表 示 采 样 位 数 。 N1 N2表 示 读 取从 N1 点 到 N2 点 的 值 ( 若 只 有 一 个 N 的 点 则 表 示 读 取 前 N 点 的 采 样 值 ) 。sound(x,fs,bits); 用 于 对 声 音 的 回
30、 放 。 向 量 y 则 就 代 表 了 一 个 信 号 ( 也 即一 个 复 杂 的 “函 数 表 达 式 ”) 也 就 是 说 可 以 像 处 理 一 个 信 号 表 达 式 一 样 处 理 这 个 声音 信 号 。3.2 采样位数和采样频率采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。采 样 位 数 和 采 样 率 对 于 音 频 接 口 来 说 是 最 为 重 要 的 两 个 指 标 , 也 是 选 择 音 频 接口 的 两 个
31、 重 要 标 准 。 无 论 采 样 频 率 如 何 , 理 论 上 来 说 采 样 的 位 数 决 定 了 音 频 数 据 最大 的 力 度 范 围 。 每 增 加 一 个 采 样 位 数 相 当 于 力 度 范 围 增 加 了 6dB。 采 样 位 数 越 多则 捕 捉 到 的 信 号 越 精 确 。 对 于 采 样 率 来 说 你 可 以 想 象 它 类 似 于 一 个 照 相 机 ,44.1kHz 意 味 着 音 频 流 进 入 计 算 机 时 计 算 机 每 秒 会 对 其 拍 照 达 441000 次 。 显 然 采样 率 越 高 , 计 算 机 摄 取 的 图 片 越 多 , 对
32、 于 原 始 音 频 的 还 原 也 越 加 精 确 。3.3 时 域 信 号 FFT 分 析FFT 即 为 快 速 傅 氏 变 换 , 是 离 散 傅 氏 变 换 的 快 速 算 法 , 它 是 根 据 离 散 傅 氏 变 换的 奇 、 偶 、 虚 、 实 等 特 性 , 对 离 散 傅 立 叶 变 换 的 算 法 进 行 改 进 获 得 的 。在 MATLAB 的信号处理工具箱中函数 FFT 和 IFFT 用于快速傅立叶变换和逆变换。函数 FFT 用于序列快速傅立叶变换,其调用格式为 y=fft(x),其中,x 是序列,y 是序列的 FFT,x 可以为一向量或矩阵,若 x 为一向量,y 是 x 的 FFT 且和 x 相同长度;若x 为一矩阵,则 y 是对矩阵的每一列向量进行 FFT。如果 x 长度是 2 的幂次方,函数fft 执行高速基2FFT 算法,否则 fft 执行一种混合基的离散傅立叶变换算法,计算速度较慢。函数 FFT 的另一种调用格式为 y=fft(x,N),式中,x,y 意义同前,N 为正整数。函数执行 N 点的 FFT,若 x 为向量且长度小于 N,则函数将 x 补零至长度 N;若向量 x 的长度大于 N,则函数截短 x 使之长度为 N;若 x 为矩阵,按相同方法对 x 进行