1、 摘要 随着计算机技术和信息技术的发展,语音交互人机互动已经越来越重要,逐渐开始成为人机交互的一种重要手段,而语音信号的采集与信号的处理识别是语音交互人机互动的前提和重要基础。 语音信号的处理属于信号处理领域,信号处理主要有时域分析和频域分析,频域分析相比较于是与分析更高效而方便。对于连续时间信号,其频域分析运用了连续时间傅里叶变化 来进行,但是使用这种方法计算出来的结果依然是连续信号,计算机无法立即进行计算处理。为了进行计算和分析,首先需要对信号进行离散化处理,即使用离散傅里叶变化,即 DFT进行分析。 离散傅里叶变化快速算法的出现,让 DFT在图像处理、数字通讯、功率谱估计、系统分析、仿真
2、和雷达信号处理、光学等领域都得到了及其广泛的运用。本论文使用 MATLAB一个数据分析和处理功能强大的工程应用软件,运用它来进行语音信号的采集、分析和处理非常便捷。本文主要使用 matlab进行语音信号的采集并在语音信号采集后的频谱分析处理,通过实例使用 DFT快速算法即快速傅里叶变化实现连续时间信号语音信号频谱分析。 Abstract With the development of computer technology and information technology, voice interactive human-computer interaction has become mo
3、re and more important and gradually became an important means of human-computer interaction, and recognition of speech signal acquisition and signal processing is the prerequisite and basis of voice interactive human-computer interaction. Speech signal processing belongs to the field of signal proce
4、ssing, signal processing is sometimes the domain analysis and frequency domain analysis. For the continuous time signal, the frequency domain analysis using Fourier transform of continuous time to carry out, but the calculated results using this method is still a continuous signal, the computer cann
5、ot immediately calculate processing. In order to carry on the computation and the analysis, first needs to carry on the discrete processing to the signal, namely uses the discrete Fourier transformation, namely DFT carries on the analysis. The fast algorithm of discrete Fourier transform has been wi
6、dely used in the fields of image processing, digital communication, power spectrum estimation, system analysis, simulation and radar signal processing, optics and so on in DFT. In this paper, MATLAB is used to analyze and process a powerful engineering application software. It is very convenient to
7、use it to collect, analyze and process the speech signal. This paper mainly uses MATLAB for voice signal acquisition and analysis processing in speech signal spectrum acquisition, namely fast Fourier transform frequency spectrum of continuous time signal analysis of speech signal using DFT algorithm
8、 through examples. 第一章 绪论 1.1 课题研究背景 自然界存在各种各样的声音,人类的社会化很大程度上是由人类语言的发展进步而获得提升。 自然界的运动和变化都有他们的固有规律,其中许多规律表现为周期性。人类社会的发展同样具有周期性,无论是简单的重复还是螺旋式的上升,都是发展周期性的表现。 人类研究声音是将声音作为一种波来研究,从此来看其振幅,频率是作为波的重要研究对象。声音作为一种压力波,声源的震动会引起介质的震动,在空气中的表现为空气分子的有节奏振动,在空气分子的有规则震动时,其振动会引起空气产生疏密变化,并随之生成了疏密相交的纵波,并继续延续传播,直至能量传递的消失为止
9、。 声音作为波的一种,在人类研究声波时,频率和振幅就成了描述波的重要属性,频率的大小在听觉感官的感知下即为音调的高低相对应,而振幅的大小在听觉器官的感知下即为声音的大小相对应。我们日常生活中所感知到的声音往往都是多个声波的 叠加,声音可以分解为不同频率不同强度的正弦波的叠加,将一个声波分解为多个正弦波的叠加,这一变化的过程,成为傅里叶变换。 我们日常生活中还对音色有所感知,所谓的音色是一种抽象而难以描绘的概念,通过对波形的研究,我们很容易可以将其分辨出来,不同的音色的产生主要是由于产生振动的声源其物理属性不同而产生。对应在声波上的表现在于其波形不同,常见的有方波,锯齿波等波形。所以对声音的研究
10、主要体现在对声波的研究。 人类对变化的频率比对变化 本身 更要敏感很多,人们对声音的敏感不单单是声波本身。声音是有物体振动产生 的声波,通过介质传播并能被人或动物听觉器官所感知的波动现象。声音以波的形式震动传播,人类所能感知的频率在 20Hz到 20KHz之间。 这里可以类比于肉眼对光敏感的不是光波本身而是光波的频率,在这里也意味着光的颜色,红光、紫光和黄光等,因此频率的概念本身十分重要,这也是为什么频域分析与时域分析相提并论。 频谱分析在科研工作中涉及信号处理有着广泛应用,无论是机械行业还是电子通讯类。例如,在机械领域中,一个高速转动的轴,其工作运行状态下的谱分析可以分析其设计数据是否合理,
11、加工是否合乎规范等,保证了产品的质量和生产的合 理性。 在电子通讯领域有着更为深远的影响。 船的航行中必不可少的就是声纳系统,声纳系统可以检测水下的鱼群、潜艇、水下礁石等,在分析其传回的信号时需要对噪声信号进行频谱分析,以去除干扰提供有用的信息。 所谓的频谱分析也就是周期性分析,频谱估计就是周期性估计。频谱分析和估计不仅是解释信号特征的重要方法,也是处理信号的重要手段。这些方法和手段已经在各个领域广泛应用。 语音信号处理是科研和工程项目等众多领域中的一个正在研究的重要环节。其信号处理需要用到信号的检测、变换以及滤波等功能。随着社会的进步,人们对信号处理也提出 了更高的要求,传统采用的模拟系统来
12、实现的信号处理已经无法满足科研项目的需求,其存在许多难以攻克的缺点和难题。现如今对信号的血多处理都采用了数字处理的方式进行。信号处理,是众多科研项目中具有高度自主知识产权的一个科研点,是许多先进技术进步的瓶颈,是需要攻克的一个重要问题。 1.2 频谱分析的发展概述 在二十世纪初期 ,第一批次的频谱分析开始应用于实践中 ,主要有雷达和电视的开发和制作 ,另外还有研究信号数据的功率于频率之间的关系问题等。 这批频谱分析的应用开启了频谱分析应用的先河,其是通过扫描方式,在阴极射线管上显示被 测量的信号的频谱。 随着计算机的逐渐普及以及大规模集成电路的流行,频谱分析的应用也转移至频谱仪上进行。 现有的
13、频谱仪主要有数字式和模拟式两种。模拟式的频谱分析仪主要使用了滤波器,所以模拟式的频谱分析仪有扫描式频谱分析仪和平行滤波器频谱分析仪。 另一种就是 数字式频谱分析仪 ,其 将数字信号进行采样量化,继而通过数字信号处理的方式,采用傅里叶变换得到所要求得的频谱。此种数字式频谱分析仪又分为快速傅里叶变换分析仪或者叫做 FFT分析仪。 1.3 Matlab简介 随着社会的进步,科技的发展,计算机技术逐渐蓬勃发展的今天, 数学工具已经成为了我们科研工作必不可少的重要工具。计算机推动者社会工程的进步,越来越多的计算工作需要计算机的辅助才可以完成,这大大加快了 技术人员的科研速度,也较少了繁琐的计算,将人们从
14、繁琐的计算中解放出来。另一方面也大大提高了正确率,确保了科研工作的快速运行。由此众多计算软件应运而生。 MATLAB的诞生和数学密不可分,它是由终端工具箱和主包组合而成,他拥有非常高效的计算能力,和优越的性能。现如今,集成了非常完善的工具箱,可以进行仿真和用户界面编写,不仅仅是一种数学工具,还是一种语言,作为编程语言, M语言的 存在,也受到了广大用户的欢迎。其丰富的函数库以及便捷的用户编写界面也顺应了用户的需求。 先如今, MATLAB是国内外高校、研究所的研究员,学生必备的数学计算及编程必备软件,也是必须掌握的基本技能。 MATLAB面向于科研,工作等领域的编程工具,是一种高级语言,其应用
15、于科学计算,具有可视化高性能的特点。它集成了数值分析、矩阵运算、图形处理和信号处理等为一体的并具有良好的人机交互界面的一个用户平台。 信号处理是 MATLAB做的非常出色的一个领域,它将许多信号处理使用的函数算法编写成了一个函数库,方便用户通过调用函数库中的信号处理函数,可以非常高效的进行信号处理,降低了信号处理入门的门槛,也提高了人们进行语音信号处理的工作效率。 同时另一方面 MATLAB还具有许多经典的数字信号处理算法,是一个非常完善的研究算法和进行语音信号处理的软件。 1.4 本文的主要任务 随着现代电子技术的发展,直接的系统设计及其验证难度也越来越大。因此,系统设计必须依靠一定的仿真手
16、段来以降低设计的难度,缩短设计时间。 本文使用 MATLAB作为工具对语音信号进行采集, 凭借其出众的信号处理功能, 采用 WAV格式的语音文件作为研究分析对象,通过电脑录音功能录制一段语音,在 MATLAB中读取。将读取的语音信号采样存储,并进行信号处理得到其波形、幅值和相位图 。首先 运用 MATLAB绘制出来语音信号时域波形,随后进行分析语音信号的频谱,利用 fft 函数对语音信号进行快速傅里叶变换以此来分析信号的频率特性。 再使用 MATLAB设计数字滤波器, 阐述数字滤波器的设计方法,并根据需要设计滤波器进行滤波, 分析使用滤波器前后信号的频谱有何不同。 第二章 MATLAB 和 语
17、音信号处理 MATLAB作为科学计算和可视化编程的重要软件,本章主要介绍了在语音信号处理方面 MATLAB的使用,以及 MATLAB的产生以及发展。 2.1 什么 MATLAB 在科研工作以及工程实践的进程中,大量繁琐的数学计算无法避免,使用较为传统的计算器甚至比较原始的纸笔计算方法已经远远无法满足日益增长的计算需求。因此许多技术人员以及需要用到计算的工程人员开始使用 C语言 C+,以及 VB等计算机编程语言来进行编程并计算得到结果,进行辅助。但采用这种方式需要一定的编程基础,并需要 较高的数学功底,难以进行推广,这种方式只适用于以少部分精英人员,对大多数科学技术人员并不适用,而且具有很大的难
18、度。为此许多人开始整理常用的算法库,并尝试降低科学计算的入门门槛。 由此许多软件公司推出了许多数学类的软件,例如 Mathematica、 MATLAB以及 Maple等开始出现。 其中各个软件各有利弊,也各有自己适用的领域。 MATLAB在语音信号 处理,以及图像处理等方面一直走在所有的数学应用软件的前列,所以本文以他为主要的使用软件。 MATLAB起源于矩阵实验室,他提供了对 LINPACK 以及 EISPACK 这 两个矩阵软件包的接口。其中 LINPACK 是求解线性方程组的 Fortran程序库,EISPACK 是解决特征值问题的 Fortran程序库。 MATLAB简称为 M语言,
19、其与常用的 C 语言以及 VB相比较, MATLAB的语法成为简单,其编程习惯于人的思维方式更为吻合,使得学习者能够较为快速的掌握这门语言,并且用 MATLAB编写的代码类似于在便签上写方程式并进行求解,所以 MATLAB也被成为科学便签的科学计算语言。 MATLAB最早是用于求解线性方程组的,其尤其擅长求解线性方程,其基本的数据结构是矩阵,也因此 MATLAB的名字叫做矩阵实验室。 现如今其凭借其非常强大并且异常丰富的资源和性能已经成为了全世界应用最广泛的数学计算以及编程工具一直。 2.2 MATLAB 的发展历程 2.2.1 MATLAB 的产生 在上个世纪 1970年代,美国国家基金会资
20、助了 Cleve Moler和他的同事开发了 LINPACK 和 EISPACK 的 Fortran子程序库。 随后 Cleve Moler在给同学上线性代数课的时候,让学生不需要再编程上面花费太多的精力和时间,并可以同是使用 LINPACK 和 EISPACK 子程序库。因此他专门为学生开发了可以自由使 用LINPACK 和 EISPACK 子程序的接口程序,并且命名这个接口程序为 MATLAB意味着矩阵实验室 。 1980年初, Cleve Moler和 John Little一起使用 C 重新编写了 MATLAB的核心代码,一起推出了 MATLAB的第二个版本。随后他们成立了 MathW
21、orks公司,并且推出 MATLAB,最终成功将这款软件推向了市场,并取得了重大成功。 2.2.2 MATLAB 的发展 自从 1984年 MathWorks公司的成立,以及 MATLAB的推出以来,经过了后续多年的刻苦研究以及不断完善, MATLAB又增加了新的功能,并且其界面也在不断地完善。并在 2001年, MathWorks公司发布了新的版本 MATLAB6.0的版本,作为非常经典的一个版本,他不仅继承了以往版本的图形可视化能力以及数值分析计算,同时又新增加了 SIMULINK 功能。 SIMULINK 作为一个交互式的可以操作的动态系统建模、仿真和分析一体化集成环境。它的出现,让人们
22、可以在工程计算中不需要简化随意因素和非线性因素,由此提高了分析整个系统性能的能力, 也提高了人们对于随机动态系统的感知度。 另一方面,其具备了于外部输入设备进行数据交互的组件,可以 通过MATLAB对数据进行实时处理分析,开通了软硬件结合的领域,拓展了软件的应用领域。 并具备了符号计算工具包,这推进了数值计算和符号计算这两种计算的互补发展的新进程。 2.3 MATLAB 系统 随着 MATLAB的不断完善和进步,现如今,其涵盖了五个主要功能:MATLAB语言、 MATLAB工作环境、 MATLAB图像处理系统、 MATLAB数学函数库以及 MATLAB应用程序接口。 2.3.1 MATLAB
23、语言 目前 MATLAB语言已经成为了较为流行编程语言,并且随之 MATLAB的不断发展和完善, M语言成为了具有独特的数据结构、输入输出、流程控制语言,面向对象的高级语言。 它在可视化以及编程方面自成一家,并方面计算可以将问题和解决方案用人们熟悉的方式表现出来。 2.3.2 MATLAB 图像处理功能 现如今图像处理领域必备软件无法避免的必定有 MATLAB,其具备非常完善的图形处理函数库,并将图像处理的结果用图形来表达出来,方便进行图像处理方面研究的科研工作者进行分析和处理。 目前 MATLAB的图像处理主要有以下几种功能: 1、 二维图形的绘制; 2、 三维模型的绘制; 3、 用户界面的
24、设计即 GUI。 2.3.3 MATLAB 应用程序接口 作为可以在软件和硬件之间建立桥梁的关键所在, MATLAB的应用程序接口实质是一个可以让 MATLAB与 C 语言和 VB语言等其他编程语言进行交互的函数库。它通过连接来读取程序。 其可以在 MATLAB中调用其他编程语言所编写的程序,并从 MATLAB中输出或输入数据。 其可以编写上位机,与其他界面进行交互。拓展了其应用领域。 2.4 语音信号采集原理 2.4.1 采样定理 在进行模拟 /数字信号的转换过程中,当采样频率 fs.max大于信号中,最高频率 fmax的 2倍时,即: fs.max=2fmax,则采样之后的数字信号完整地保
25、留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的 5 10倍;采样定理又称奈奎斯特定理。 1924年奈奎斯特 (Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式 : 理想低通信道的最高大码元传输速率 =2W*log2 N (其中 W是理想低通信道的带宽 ,N 是电平强度 ) 2.4.2 采样频率 采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声 音样本数据就越多,对声音波形的表示也越精确、采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采
26、样频率高于声 音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。 2.4.3 采样位数与采样频率 采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音 的还原就越真实越自然。采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。每增加一个采样位数相当于力度范围增加了 6dB。采样位数越多则
27、 捕捉到的信号越精确。对于采样率来说你可以想象它类似于一个照相机,44.1kHz意味着音频流进入计算机时计算机每秒会对其拍照达 441000次。显然采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确。 2.5 本章小结 作为主流的科学及工程计算软件, MATLAB的优点 非常突出。 1 完善的功能。 其不仅可以进行数值计算,在符号计算领域也有着非常强大的功能,并且他在计算结果中通过图形和数据图表等方式可以非常完善的 进行结果表达,这是其他数学计算软件所难以相提并论的。 另一方面,它将其功能拓展到根伟广阔的领域。 例如,用户可以使用文字和数字进行统一处理。 同时其根据不同领域的需求,
28、推出了具有针对性的工具集,涵盖了几乎各个领域。 2.良好的用户界面,高效的编程。 MATLAB程序编写方式,其指令与数学表达非常类似,在用户阅读和编写程序方面带来的非常大的便利。 并且降低了编程的门槛,用户 不一定需要具备高水平的计算机编程能力,仅仅需要按照格式即语法要求进行编写输入方程表达式,并计算结果即可。 3.接口丰富。 MATLAB的接口丰富,具有非常高的拓展性,可以根据用户的需求来自己编写软件,如今众多科研工作者依靠其编写了众多各领域的应用程序。 MATLAB依靠这些众多优点,在科学和工程应用计算领域始终占有一席之地,并且是先今当代大学生以及众多科研工作者比不可少的计算机辅助计算、分析、仿真以及编程基础软件。 并对语音信号的采集也进行阐述。从语音信号的采样原理以及采样频率、采样位数方面进行了说明 ,为后面的语音信号处理进行铺垫 。