基于MATLAB及FIR滤波器的语音变换器设计毕业论文.doc_第1页
基于MATLAB及FIR滤波器的语音变换器设计毕业论文.doc_第2页
基于MATLAB及FIR滤波器的语音变换器设计毕业论文.doc_第3页
基于MATLAB及FIR滤波器的语音变换器设计毕业论文.doc_第4页
基于MATLAB及FIR滤波器的语音变换器设计毕业论文.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京师范大学泰州学院电力工程学院 基于MATLAB及FIR滤波器的语音变换器设计基于MATLAB及FIR滤波器的语音变换器设计摘要MATLAB是目前世界上最流行的、应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于一个易于开发的环境。我们可以利用MATLAB矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。语音转换是指改变一个说话人的语音个性特征,使之具有另外一个说话人的语音个性特征。语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,它是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是生活中最基本也是最重要的交换信息形式。同时,语音也是人和机器之间进行交流的重要工具,它是一种理想的人机通信方式,所以可以为信息处理系统建立良好的环境,从而进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。本设计将采用MATLAB7.3综合运用各种函数调用来实现数字语音信号的变频、变幅、傅里叶变换等,同时设计FIR数字滤波器对语音中的噪声进行滤除。本次设计程序简练,操作简便,具有一定的实际应用意义。关键词:MATLAB;数字滤波器;傅里叶变换;语音信号处理Based on MATLAB and FIR filters voice converter designAbstractMatlab is at present the most popular in the world, the most widely used engineering calculation and simulation software, it will calculate, visualization and programming functions and collection in an easy development environment. We can use of MATLAB matrix capable of handling data, its signal processing and analysis toolbox for speech signal analysis provides plenty of function, use these functions can quickly and easily finish speech signal processing and analysis and signal visualization, make human-computer interaction more convenient.Voice conversion is refers to change a speaker voice personality traits, make have another the speakers voice personality traits. Speech signal processing is the study of digital signal processing technology and with the knowledge of phonetics speech signal processing emerging discipline, it is currently the most rapid development of information science research in the field of core technical one.This design will use MATLAB7.3 comprehensive use of various function invocation to realize digital voice signal frequency conversion, luffing, Fourier transform etc., and design of FIR digital filters filter the noise speech. Program succinct, simple operation, and has certain practical significance.Keywords: MATLAB;Digital filter;Fourier transform;Speech signal processing目录摘要IAbstractII第一章 绪论11.1 课题意义11.2 开发工具的选择21.2.1 MATLAB的简介21.2.2 数字信号处理简介4第二章 语音变换器的设计要求72.1 设计基本任务72.2 设计整体步骤72.3 设计的流程图7第三章 语音变换器设计涉及知识介绍93.1 语音信号的录制93.2 语音信号的采样93.3 语音信号的分析103.3.1 语音信号时域分析103.3.2 语音信号频域分析113.4 语音信号的加噪处理123.5 语音信号的滤波处理123.5.1 数字滤波器的发展概况123.5.2 数字滤波器的基本概念133.5.3 数字滤波器的设计概念143.5.4 数字滤波器的分类143.5.5 数字滤波器的设计15第四章 语音变换器设计的具体步骤234.1 语音信号的录制234.2 语音信号的数据采集244.3 语音信号的加噪264.4 语音信号的滤波284.4.1 FIR低通数字滤波器设计28总 结32致 谢33参考文献34IV第1章 绪论语音在人类社会中起了非常重要的作用。在现代信息社会中,小至人们的日常生活,大到国家大事、世界新闻、社会舆论和各种重要会议,都离不开语言和文字。语音信号处理是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的一门学科。虽然从事这一领域研究的人员主要来自信号与信息处理及计算机应用等学科,但是它与语音学、语言学、声学、认知科学、生理学、心理学等许多学科也有非常密切的联系1。1.1 课题意义语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的一门学科,是目前发展最迅速的信息科学研究领域的核心技术之一。通过语音来传递信息是人类最基本也是最重要的交换信息形式。同时,语言是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度1。数字信号处理是一门理论和技术发展十分迅速、应用非常广泛的前沿性学科,在雷达、通信、医学、地震等众多领域都有广泛的应用。数字信号处理是一门涉及许多领域的新兴学科,在现代科技发展中发挥着极其重要的作用。近年来,数字信号处理理论在不断取得进步的同时,随着半导体技术的突飞猛进,专用的数字信号处理器芯片也获得了飞速发展。数字信号处理器是在模拟信号变换为数字信号后对数字信号进行高速实时处理的专用处理器,它具有计算速度快、体积小、功耗低等优点,是实现数字信号处理的强大工具2。近年来,随着半导体技术的进步,处理器芯片的处理能力越来越强大,使得信号处理的研究可以主要放在算法和软件方面,不再像过去那样需要过多考虑硬件。由于它的出色性能,DSP目前被广泛应用于数字通信、信号处理、工业控制、图像处理等领域。数字信号处理的发展历史是: 20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础。随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80年代初一种新的基于聚类分析的高效数据压缩技术矢量量化(VQ)应用于语音信号处理中;而用隐马尔可夫模型(HMM)描述语音信号过程的产生是80年代语音信号处理技术的重大发展,目前HMM已构成了现代语音识别研究的重要基石。近年来人工神经网络(ANN)的研究取得了迅速发展,语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中3-4。1.2 开发工具的选择本次设计选择的工具是MATLAB 7.3。1.2.1 MATLAB的简介MATLAB语言是一种数据分析和处理功能十分强大的计算机应用软件,我们可以利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。数字信号处理是MATLAB重要应用的领域之一5。MATLAB是目前世界上最流行的、应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于一个易于开发的环境。MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程绘图和用户界面设计等。 MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB是一个交互式开发软件,其基本数据要素是矩阵。MATLAB的语法规则简单,适合于专业科技人员的思维方式和书写习惯;它用解释方式工作,编写程序和运行同步,键入程序立即得出结果,因此人机交互更加简洁和智能化;而且MATLAB可适用于多种平台,随着计算机软、硬件的更新而及时升级,使得编程和调试效率大大提高。目前,MATLAB已经成为应用代数、自动控制理论、数理统计、数字信号处理、动态系统仿真和金融等专业的基本教学工具,各国的高等学校纷纷将MATLAB正式列入本科生和研究生课程的教学计划中,成为学生必须掌握的基本软件之一;在研究设计单位和工厂企业中,MATLAB也成为工程师们必须掌握的一种工具6。1MATLAB的系统结构:MATLAB系统由MATLAB开发环境、MATLAB语言、MATLAB数学函数库、MATLAB图形处理系统和MATLAB应用程序接口(API)5大部分组成。(1) MATLAB开发环境是一个集成的工作环境,包括MATLAB命令窗口、文件编辑调试器、工作空间、数组编辑器和在线帮助文档等。(2) MATLAB的语言具有程序流程控制、函数、数据结构、输入输出和面向对象的编程特点,是基于矩阵/数组的语言。(3) MATLAB的数学函数库包含了大量的计算算法,包括基本函数、矩阵运算和复杂算法等。(4) MATLAB的图形处理系统能够将二维和三维数组的数据用图形表示出来,并可以实现图像处理、动画显示和表达式作图等功能。(5) MATLAB应用程序接口使MATLAB语言能与C或FORTRAN等其他编程语言进行交互。MATLAB现在不再是“矩阵实验室”,它已经发展成为具有广泛应用前景的计算机高级编程语言。2MATLAB具有以下特点:(1) 运算功能强大:MATLAB是以矩阵为基本编程元素的程序设计语言,它的数值运算要素不是单个数据,而是矩阵,每个变量代表一个矩阵,矩阵有mn个元素,每个元素都可以看做复数,所有的运算包括加、减、乘、除、函数运算等都对矩阵和复数有效;另外,通过MATLAB的符号工具箱,可以解决在数学、应用科学和工程计算领域中常常遇到的符号计算问题,强大的运算功能使其成为世界顶尖的数学应用软件之一。(2)编程效率高:MATLAB的语言规则与笔算式相似,矩阵的行列数无需定义,MATLAB的命令表达方式与标准的数学表达式非常接近,因此,易读易写并易于在科技人员之间交流。MATLAB是以解释方式工作的,即它对每条语句解释后立即执行,键入算式无需编译立即得出结果,若有错误也立即做出反应,便于编程者理解改正。这些都大大减轻了编程和调试的工作量,提高编程效率。(3) 强大而智能化的作图功能:MATLAB可以方便地用图形显示二维或三维数组,将工程计算的结果可视化,是数据间的内在联系清晰明了。MATLAB能智能化地根据输入的数据自动确定最佳坐标,可规定多种坐标系(如极坐标系、对数坐标系等),可设置不同颜色、线型、视角等。(4) 可扩展性强:MATLAB有一套程序扩展系统和工具箱,具有良好的可扩展性。工具箱是MATLAB函数的子程序库,每个工具箱都是为某个学科领域的应用而定制的,MATLAB每年都会增加一些新的工具箱。(5)Simulink动态仿真功能:Simulink是一个交互式动态系统建模、仿真和分析图形环境,用户通过框图的绘制来模拟一个系统,Simulink能够针对控制系统、信号处理和通信系统等进行系统建模、仿真和分析。1.2.2 数字信号处理简介从20世纪60年代以来,随着信息科学和计算机学科的高速发展,数字信号处理(DSP)迅速发展成为一门新兴学科。它把信号变换成数字或符号表示的序列,通过计算机或专用的数字硬件,用数值计算的方法来进行处理,可以实现对信号的频谱分析、滤波、变换、压缩、增强、估计、识别等,以获得有用的信息,便于实际应用。随着计算机和大规模集成电路技术的飞速发展、超大规模集成电路的出现、信息的数字化,数字信号处理在理论和应用方面有了惊人的发展,在越来越多的应用领域中,迅速替代传统的模拟信号处理方式,而且,还开辟出许多新的应用领域。1数字信号处理系统的基本组成:通常,以自然方式产生的信号都是连续信号或模拟信号。要用数字信号处理的方式来对模拟信号进行处理,首先要把模拟信号数字化。这就需要一个模拟信号的数字化处理系统。此系统首先把模拟信号变换为数字信号,然后用数字技术进行处理,最后再还原为模拟信号,其原理框图如图1-1所示。图1-1 模拟信号数字化处理系统的简单框图(图和表格字体五号宋体)此系统由五个部分组成,以完成对模拟信号的处理:(1) 预滤波器:又称为抗混叠滤波器,它将输入的模拟信号中高于某一频率的分量滤除,从而保证进入下一阶段处理的信号最高频率限制在一定数值之内。(2) A/D转换器:即为模数转换器,用来从模拟信号产生一串二进制码流,即完成对模拟信号的采样、量化、编码的过程,其输出是数字信号。(3) 数字信号处理器:是整个系统的核心部分,可以代表一台通用计算机,或一个专用处理器,或数字硬件等。对其输入的数字信号序列x(n)按预定的要求进行加工处理,得到输出数字信号序列y(n)。(4) D/A转化器:即为数模转换器,它从一串二进制书的序列y(n)中产生一种阶梯形波形,这是产生模拟信号的第一步。(5) 平滑滤波器:用于滤除模拟量中不需要的高频分量,将阶梯形平滑为所期望的模拟输出信号。 上面给出的是模拟信号数字化处理系统,而实际的系统并不一定要包括它的所有部分。例如有的系统只需数字输出,可直接以数字形式显示或打印,就不需要D/A转换器及平滑滤波器了;有的系统的输入就是数字量,因而就不需要图1-1中的预滤波器和A/D转换器部分了。纯数字系统则只需要数字信号处理器这一核心部分。2数字信号处理的实现大致有三种方法:(1)软件实现法:在通用计算机上,通过软件编程对输入信号进行处理。(2)硬件实现法:用基本的数字硬件组成专用的处理机或专用数字信号处理芯片作为数字信号处理器,实现对信号的处理。这种方法的优点是可以进行实时处理,但是由于是专用的处理机或芯片,因此只能完成某一具体的加工处理,而不能完成其他类的加工处理。(3)用通用的数字信号处理器芯片实现法:这种芯片是专门为数字信号处理而设计的,例如TI公司的TMS320系列芯片,通常有专门执行信号处理算法的硬件和专为信号处理所用的指令,这种方法既具有硬件实现的实时的优点,又具有软件实现的灵活多用的优点,是一种重要的数字信号处理实现方法。3数字信号处理系统的优点:与模拟信号处理系统相比较,数字信号处理系统具有以下一些突出的优点:(1)精度高(2)灵活性高(3)可靠性强(4)便于大规模集成(5)便于时分复用(6)可获得高性能指标(7)二维与多维处理4数字信号处理的基础内容: 由于信号处理的目的是通过系统的作用,把一定的输入信号变成人们随希望的输出信号,例如,削弱信号中的多余内容,滤除混杂的噪声和干扰,提取和增强信号的有用分量,估计信号的某些特征参数,变换信号成为容易分析和紧密联系、互相渗透的分支。 这里的信号分析主要是指信号的频谱分析,频谱是各类信号参数中物理含义最明显的一类最基本的参数。对于确定信号,谱分析可以采用变换法和滤波法两种。其中,变换法主要是离散傅里叶变换及其快速算法(FFT算法)。 这里的处理系统主要是指滤波器,当然,对于数字处理系统,就是数字滤波器了。和线性时不变离散时间系统一样,数字滤波器通常分为两大类,一类是无限长单位脉冲响应数字滤波器,另一类是有限长单位脉冲响应数字滤波器。由于数字信号处理的突出优点,使得它在通信、语音、图像、雷达、地震预报、声呐、遥感、电视、生物医学、仪器仪表、空间技术、自动控制、人工智能、地球与核物理等诸多领域得到了越来越广泛的应用。第二章 语音变换器的设计要求2.1 设计基本任务本次设计运用数字信号学基本原理实现语音信号的处理,在MATLAB 7.3环境下综合运用信号提取,幅频变换以及傅里叶变换、滤波等技术来进行语音信号处理。基本工作就是在MATLAB7.3软件上编写一个处理语音信号的程序,使之能对语音信号进行采集,并对其进行各种处理,达到简单的语音信号处理的目的。本次设计是利用MATLAB对语音信号进行数字信号处理和分析,首先采集语音信号,然后利用MATLAB软件进行对所采集的语音信号频谱分析;同时对所采集的语音信号加入干扰噪声,此后对加入噪声的信号进行频谱分析,再设计FIR数字滤波器滤除噪声,恢复原信号,回放信号。2.2 设计整体步骤(1)选择一个语音信号作为分析对象,或录制一段语音信号;(2)对语音信号进行采样,并对其进行FFT频谱分析,画出语音信号采样后的时域波形和频谱图;(3)利用MATLAB中的功能函数将噪声加入到语音信号中,使语音信号被污染,观察加噪前后语音信号的变化,分析原因,得出结论。同时,对其进行FFT频谱分析,比较加噪前后语音信号的波形及频谱,对所得结果进行分析,阐明原因,得出结论;(4)设计FIR数字滤波器,对被噪声污染的语音信号进行滤波,画出滤波前后信号的时域波形和频谱,并对滤波前后的信号进行比较,分析信号的变化;(5)回放语音信号,比较滤波前后语音信号的波形及频谱,对所得结果和滤波性能进行频谱分析,阐明原因,得出结论。2.3 设计的流程图下图2-1所示即语音信号转换的流程图:图2-1 语音信号转换流程图从上图中,可以看到整个语音信号处理的流程大概分为三步:(1) 首先要读入待处理的语音信号;(2) 然后进行语音信号的处理,包括信息的提取、幅度和频率的变换以及语音信号的傅里叶变换、滤波等,滤波又包括低通滤波、高通滤波、带通滤波和带阻滤波等方式;(3) 最后对处理过的语音信号进行处理后的效果显示,这是本次设计的工作流程。第三章 语音变换器设计涉及知识介绍3.1 语音信号的录制为了将原始的模拟语音信号转换为数字信号,需要经过采样和量化两个步骤,从而得到时间和幅度上均为离散的数字语音信号。语音信号经过预滤波和采样后,由A/D变换器变换为二址制数字码。这种防混叠滤波通常与模数转换器做在一个集成块内,因此目前来说,语音信号的数字化的质量还是有保证的。市面上购买到的普通声卡在这方面做的都很好, 语音声波通过话筒输入到声卡后直接获得的是经过防混叠滤波,A/D变换,量化处理的离散的数字信号。 将声卡作为对象处理采集语音信号MATLAB将声卡作为对象处理,其后的一切操作都不与硬件直接相关,而是通过对该对象的操作来作用于硬件设备(声卡)。操作时首先要对声卡产生一个模拟输入对象(ai),给ai对象添加一个通道设置采样频率后,就可以启动设备对象,开始采集数据,采集完成后停止对象并删除对象7。3.2 语音信号的采样采样位数即采样值或取样值,是用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数;采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然7。采样位数对于音频接口来说是最为重要的指标之一,同时也是选择音频接口的重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。每增加一个采样位数相当于力度范围增加了6dB。采样位数越多则捕捉到的信号越精确7。 配置好数据采集设备的参数以后,使用START命令便可启动声卡开始语音信号的采集。采集到的数据暂时存放在计算机的内存里,理论上可采集的最大数据量是由计算机的内存容量决定的,这一点相对于一般的数据采集系统而言有较强的优势。MATLAB 还可以记录采集过程中出现错误,如出错的时间,错误产生的来源以及数据采集设备的状态等信息都会被记录下来作为以后工作的参考。 如下图3-1所示,语音采集子系统是通过计算机录音机声卡和MATLAB的数据采集工具箱实现的。其中声卡的采样位数为8位,支持 844.1kHz的采样速率,可以满足语音采集的硬件要求。MATLAB自带的数据采集工具箱里面,提供了专门用于语音采集的命令和函数。数据采集的硬件设备的内部特性对MATLAB的接口完全是透明的,通过调用MATLAB提供的语音采集函数和命令可以对其进行访问。而且,MATLAB可以对其采集的数据进行实时的分析,也可在存储后再进行处理。 图3-1 语音信号采集框图3.3 语音信号的分析3.3.1 语音信号时域分析语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。语音信号分析的目的就在于方便有效的提取并表示语音信号所携带的信息。语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。语音信号的时域分析就是分析和提取语音信号的时域参数。进行语音分析的时候,最先接触到并且也是最直观的是它的时域波形。语音信号本身就是时域信号,所以时域分析是最早使用,也是应用最广泛的一种分析方法,这种方法直接利用语音信号的时域波形。时域分析基本常用于最基本的参数分析及应用,如语音的分割、预处理、大分类等。这种分析方法的特点是:(1) 表示语音信号比较直观,物理意义明确;(2) 实现起来比较简单,运算且少;(3)可得到语音的一些重要的参数;(4)只使用示波器等通用设备,使用较为简单等。时域分析的基本过程是:(1)提取:通过图形用户界面上的菜单功能按键采集电脑设备上的一段音频信号,完成音频信号的频率,幅度等信息的提取,并得到该语音信号的波形图。(2)调整:在设计的用户图形界面下对输入的音频信号进行各种变化,如变化幅度、改变频率等操作,以实现对语音信号的调整。在MATLAB软件中,它提供了很多函数命令可以用来进行图像分析,包括: (1)wavrecord:wavrecord利用Windows音频输入设备记录声音,其调用形式为:wavrecord (n ,fs ,ch)。利用Windows音频输入设备记录n个音频采样,频率为 fs Hz ,通道数为ch。采样值返回到一个大小为n*ch的矩阵中。缺省时,fs = 11025 ,ch = 1。(2)waveplay:waveplay利用Windows音频输出设备播放声音,其调用形为:waveplay(y ,fs)。以采样频率fs向Windows音频设备发送向量信号。标准的音频采样率有:8000,11025,22050和44100Hz。 (3)sound:音频信号是以向量的形式表示声音采样的。sound函数用于将向量转换为声音,其调用形式为:sound (y ,fs),作用是向扬声器送出向量y中的音频信号(采样频率为 fs)。3.3.2 语音信号频域分析语音信号的频域分析就是分析语音信号的频域持征。从广义上讲,语音信号的频域分析包括语音信号的频谱、功率谱、倒频谱、频谱包络分析等,而常用的频域分析方法有带通滤波器组法、傅里叶变换法、线件预测法等。本次设计使用到的是语音信号的傅里叶分析法。语音波是一个非平稳过程,因此适用于周期、瞬变或平稳随机信号的标准傅里叶变换不能用来直接表示语音信号,而应该用短时傅里叶变换对语音信号的频谱进行分析,相应的频谱称为“短时谱”。 信号的傅立叶表示在信号的分析与处理中起着重要的作用。因为对于线性系统来说,它可以很方便地确定它对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。而且,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象7。由于语音信号是随着时间变化的,所以一般认为语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。输出频谱是声道系统频率响应与激励源频谱的乘积。声道系统的频率响应及激励源都是随时间变化的,因此,一般标准的傅立叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。 频域分析的过程是:(1)变换:在用户图形界面下对采集的语音信号进行傅里叶等变换,并画出变换前后的频谱图和变换后的倒谱图。(2)滤波:滤除语音信号中的噪音部分,可采用低通滤波、高通滤波、带通滤波和帯阻滤波,并比较各种滤波后的效果。3.4 语音信号的加噪处理录制的语音本身含有噪声,但是为了能更明显地显示出滤波器的滤除噪声的效果,可以在原来的语音中加入噪声,噪声有很多种类,本次设计中加入的噪声是单频噪声。在MATLAB软件中,可以利用其相应的功能函数来实现滤波这一目的。3.5 语音信号的滤波处理 本次设计的滤波处理即设计一个FIR数字滤波器。3.5.1 数字滤波器的发展概况数字滤波是数字信号处理理论的一部分。数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更为有希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。具体来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、识别、产生等加工处理,都可以纳入数字信号处理领域8。数字信号处理学科的一项重大进展是关于数字滤波器方法的研究。关于数字滤波器,早在40年代末期,就有人讨论过它的可能性问题,在50年代也有人在研究生班讨论过数字滤波器的问题。但直到60年代中期,才开始形成关于数字滤波器的一整套完整的正规理论。在这一时期,提出了各种各样的数字滤波器结构,有的以运算误差最小为特点,有的则以运算速度高见长,而有的则以二者兼而有之;出现了数字滤波器的各种逼近方法和实现方法。数字滤波器领域的一个重要发展是对有限冲激响应(FIR)和无限冲激响应(IIR)关系的认识的转变。在初期,一般认为IIR滤波器比FIR滤波器具有更高的运算效率,因而明显的倾向于前者,但当人们提出用快速傅里叶变换(FFT)实现卷积概念以后,发现高阶FIR滤波器也可以用很高的运算效率来实现,这就促使人们对性能FIR滤波器的频域方法和时域方法并驾齐驱的局面。然而,这些均属于数字滤波器的早期研究。70年代科学技术蓬勃发展,数字信号处理开始与大规模集成电路技术、微处理技术、高速数字算数单元、双极型高密度半导体存储器、电荷转移器件等新技术、新工艺结合了起来,并且引进了计算辅助设计方法,它使数字滤波器的设计不仅仅是对相应模拟滤波器的逼近。一般说来,通过模拟滤波器函数的变换来设计数字滤波器,很难达到逼近任意频率响应或冲激响应,而采用计算机辅助设计则有可能实现频域或时域的最佳逼近,或频域时域联合最佳。这样,数字滤波器的分析与设计其内容也更加丰富起来;各种新的数字信号处理系统。也都能用专用数字硬件实时加以实现。 数字信号处理理论与技术的发展,主要是由于电子计算机与大规模集成电路的大量生产和广泛应用,替代了原来的模拟信号处理中的线性滤波与频谱分析所应用的模拟计算机和分立元件L、C、R线性网络,高度发挥了计算机与数字技术相结合的特色和优越性。特别是微处理器和微型计算机技术日新月异的发展,将更有利于电子仪器与电子技术应用系统朝着数字化、小型化、自动化以及多功能化等方向发展,促使它们成为富有智能型的电子系统。现在,包括数字滤波在内的数字信号处理技术正以惊人的速度向纵深和高级的方向发展,据估计这种趋势还要持续一个较长的时期,未来的发展可能会比过去的进程更为激动人心,必将引起某些领域的飞跃性转折。3.5.2 数字滤波器的基本概念通常我们所说的滤波器是一种具有频率选择作用的网络,它能让某些频率成分衰减很小地通过,而对其他的频率成分则以很大的衰减阻止其通过。广义地讲,滤波就是把一个信号处理成另一个信号的过程,因此,滤波器就是一个系统。按照模拟系统与离散系统(数字系统)的概念,滤波器也有模拟滤波器(AF)与数字滤波器(DF)之分。若滤波器的输入、输出都是数字信号,那么,该滤波器的单位冲击响应(即单位采样响应)也必然是数字序列,这样的滤波器就是数字滤波器。它是对数字信号实现滤波的线性时不变系统。数字滤波过程实质上一个运算过程。输入的数字信号(数字序列)通过特定的运算转变为输出的数字序列,这种运算可以达到改变数入信号中所含频率成分的相对比例或者滤除某些频率成分。因此,数字滤波的概念与模拟滤波相同,只是信号的形成和实现滤波的方法不同。数字滤波器可以通过通用计算机软件或者采用专用数字滤波器硬件或芯片实现,也可以通过二者结合的方法实现,而且,用现在已有的数字信号处理器(DSP芯片),也可以方便灵活地实现数字滤波。而模拟滤波器只能用硬件来实现,其元件是R、L、C及运算放大器或开关电容等。因此,数字滤波器的实现要比模拟滤波器容易实现得多,且易获得较理想的滤波性能8。比较而言,数字滤波器具有以下优点:(1) 稳定性高,灵活性强;(2) 无阻抗匹配问题;(3) 能处理低频信号并可实现严格的线性相位滤波和多维滤波;(4) 可简单地获得自适应滤波;(5) 控制数字字长可以精确地控制滤波器的精度等;正是由于这些优点,很多模拟滤波器也常用数字滤波器来代替。但是,此时需要首先将模拟信号转变为数字信号,处理后再变成模拟信号。3.5.3 数字滤波器的设计概念数字滤波器的设计过程:(1) 按照实际任务要求,确定滤波器的性能指标;(2) 用一个因果稳定的离散线型时不变系统的系统函数去逼近这个性能要求。系统函数有无限长单位脉冲响应(IIR)系统函数和有限长单位脉冲响应(FIR)系统函数两种;(3) 用一个有限精度的算法来实现这个系统函数。这里包括选择运算结构,还包括选择合适的字长以及有效数字的处理方法等;(4) 实际技术实现。包括采用通用计算机软件或专用数字滤波器硬件来实现,或采用数字信号处理器来实现。3.5.4 数字滤波器的分类(1)数字滤波器按照不同的分类方法,可以有许多不同的种类。但总的来说,可以分成两大类,即经典滤波器和现代滤波器。经典滤波器也就是一般所说的选频滤波器,这种滤波器是假定输入信号x(n)中有用的频率成分和希望滤除的频率成分各占有不同的频带,当x(n)通过一个滤波器后可将欲去除的频率成分有效地去除。如果输入信号中含有噪声,而其有用信号和噪声的频谱相互重叠,那么经典滤波器就无能为力了。这时就需要采用另一类滤波器即现代滤波器,这类滤波器把有用信号和噪声都视为随机信号,利用它们的统计特性(如自相关函数、功率谱等)导出一套最佳的估值算法,从含有噪声的数据记录(又称时间序列)中估计出信号的某些更高的信噪比。维纳滤波器、卡尔曼滤波器、自适应滤波器等都属于现代滤波器。(2)与模拟滤波器类似,一般数字滤波器从功能上分类(即按频率特性划分),也可以分为低通、高通、带通、带阻、全通等滤波器,其频率变量以数字频率來表示(,为模拟角频率,T为采样时间间隔)。数字滤波器频率响应的周期为2,折叠频率是。3.5.5 数字滤波器的设计本次设计对于噪声信号的滤除是利用设计FIR数字滤波器来实现的。这里就介绍FIR数字滤波器的设计方法。1FIR数字滤波器的设计原理FIR数字滤波器的冲激响应h(n)是有限长的,M阶FIR DF可以表示为: (3-1)其系统函数为: (3-2)与IIR数字滤波器的设计不同,FIR滤波器的设计与模拟滤波器的设计没有任何联系。因此,FIR滤波器的设计基于对指定幅度响应的直接逼近,并通常要求其具有线性相位响应。为了保证滤波器具有线性相位特性,滤波器系数必须满足以下条件: (3-3) 目前关于FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。一般应用较多的是第一种和第三种方法。这是因为窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不严格的情况下市比较灵活的。最优化设计法必须借助计算机计算,但是它能得到最佳的等波纹的线性相位FIR滤波器。目前切比雪夫等波纹的线性相位FIR滤波器的计算机机助设计程序已经比较完善,由于采用了REMEZ迭代算法,所以设计效率也很高,在应用中越来越占优势。本次设计中,采用的是窗函数法,这里主要介绍窗函数法的设计方法:一般设计过程总是先给定一理想的滤波器频率响应,然后设计一个FIR滤波器,用它的频率响应来逼近理想的。这种逼近中最直接的方法,是在时域中用FIR滤波器的单位脉冲响应h(n)去逼近理想的单位脉冲响应。因而,先由的IDTFT导出 (3-4)由于是矩形频率特性,故一定是无限长的序列,且是非因果的。然而FIR滤波器是有限长的,所以用有限长的h(n)来逼近无限长的,最简单的方法是截取中最重要的一段,将无限长的截取成长度为M的有限长序列,等效于再上施加了一个长度为M的矩形窗口,更为一般的,可以用一个长度为M的窗口函数w(n)来截取,即 (3-5)这一方法通常称为窗函数法,窗口函数的形状及长度M的选择是窗函数法的关键。下面是几种常见的窗函数:(1)矩形窗(Rectangle Window):矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。调用格式:w=boxcar(n),根据长度 n 产生一个矩形窗 w。利用w=boxcar(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。w=boxcar(n) 等价于w=ones(1,n)。(2)三角窗(Triangular Window):三角窗亦称费杰(Fejer)窗,是幂窗的一次方形式,三角窗与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。调用格式:w=triang(n),根据长度 n 产生一个三角窗 w。利用w=triang(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。 w=triang(N-2)等价于bartlett(N)。(3)汉宁窗(Hanning Window):汉宁(Hanning)窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和,它可以使用旁瓣互相抵消,消去高频干扰和漏能。汉宁窗与矩形窗的谱图对比,可以看出,汉宁窗主瓣加宽(第一个零点在2/T处)并降低,旁瓣则显著减小。第一个旁瓣衰减一32dB,而矩形窗第一个旁瓣衰减-13dB。此外,汉宁窗的旁瓣衰减速度也较快,约为60dB/(10oct),而矩形窗为20dB/(10oct)。由以上比较可知,从减小泄漏观点出发,汉宁窗优于矩形窗。但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。调用格式:w=hanning(n),根据长度 n 产生一个汉宁窗 w。利用w=hanning(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。(4)海明窗(Hamming Window):利用w=hamming(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它和汉宁窗的主瓣宽度相同,但是它的旁瓣进一步被压低。调用格式:w=hamming(n),根据长度 n 产生一个海明窗 w。利用w=hamming(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它和汉宁窗的主瓣宽度相同,但是它的旁瓣进一步被压低。(5)布拉克曼(Blackman Window):调用格式:w=blackman(n),根据长度 n 产生一个布拉克曼窗 w。利用w=blackman(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它的主瓣宽度是矩形窗主瓣宽度的3倍,为12*pi/N,但是它的最大旁瓣值比主瓣值低57dB。(6)恺撒窗(Kaiser Window):调用格式:w=kaiser(n,beta),根据长度 n 和影响窗函数旁瓣的参数产生一个恺撒窗w。(7)切比雪夫窗:它是等波纹的,利用函数w=chebwin(N,R)方式设计出N阶的切比雪夫2窗函数,函数的主瓣值比旁瓣值高RdB,且旁瓣是等波纹的。(8)巴特里特窗:利用w=bartlett(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。(9)凯塞窗:利用w=kaiser(n,beta)的形式得到窗函数。这里,介绍用窗函数法来设计FIR低通滤波器的方法:(1)先提出希望频率响应函数(低通)图3-2 理想低通滤波器的频响线性相位, 具有片断特点, 即 (3-6) (2)算出: (无限长) (3-7)(3)加窗,长, 得 (3-8)要线性相位, 就要关于偶对称,而关于偶对称, 所以要求 (3-9)所以必须关于偶对称。然后再检验是否满足精度要求。若基本满足, 则依截取的, 制作硬件, 编写软件。为了便于选择使用, 这里将五种常见的窗函数基本参数列举如表3-1所示:表3-1 五种常见的窗函数基本参数类型窗函数的旁瓣峰过渡带宽度加窗后滤波器的阻带最小衰减rectwin-134p/N-21bartlet三角-258p/N-25hanning-318p/N-44hamming-418p/N-53blackman-5712p/N-742MATLAB窗函数的实现利用MATLAB实现窗函数法设计FIR滤波器,主要是选择合适的窗函数进行截断运算。先从理论上得到待逼近理想滤波器的单位脉冲响应,再由通带、阻带衰减指标确定窗函数类型,由过渡带确定FIR滤波器阶数M,最后利用MATLAB计算出窗函数的值,以及hdk、Wnk的值,由此即得所设计的FIR滤波器的hk。MATLAB提供了许多常用的窗函数,其中部分窗函数的调用形式为:W=hanning(N)W=hamming(N)W=Blackman(N)W=Kaiser(N,beta) 其中N是窗函数的长度,beta是控制kaiser窗形状的参数。返回的变量w是一个长度为N的列向量,给出窗函数N点的取值。对于kaiser窗,MATLAB还提供了一个根据带设计滤波器的指标直接计算窗函数的函数,其基本调用形式为:M,Wc,beta,ftype=kaiserord(f,a,dev) 其中:参数f表示需要设计的FIR滤波器的B个频带;参数a为B个频带的幅度值,一个通带取1,阻带取0;参数dev为B个频带中的波动值。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论