基于MATLAB的语音信号去噪处理(修改版) - 图文

更新时间:2023-03-08 05:24:27 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘要

语音信号在数字信号处理中占有极其重要的地位,因此选择通过对语音信号的研究来巩固和掌握数字信号处理的基本能力十分具有代表性。对数字信号处理离不开滤波器,因此滤波器的设计在信号处理中占有极其重要的地位。FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现对加噪声语音信号进行时域、频域分析和滤波。在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制及仿真。

关键词 滤波器;MATLAB;窗函数法;双线性变换

1

Abstract

Voice signal occupies an extremely important position in digital signal processing, so the selection based on the research of the speech signal to consolidate and master the basic ability of digital signal processing is very representative. For digital signal processing (DSP) is dependent on the filter, so filter design occupies an extremely important role in signal processing. FIR digital filter and IIR filter is an important part of the filter design. MATLAB signal processing toolbox can be used to quickly and efficiently design all kinds of digital filter. Powerful and easy to learn, programming, high efficiency, is popular among the masses of scientific and technical workers. We can tear down the corresponding conclusion through theoretical derivation, using MATLAB as a programming tool for computer to add noise speech signal in time domain, frequency domain analysis and filtering. In the process of design implementation, we use window function method to design FIR digital filter, butterworth, chebyshev and bilinear reform IIR digital filter design, and the MATLAB as an auxiliary tool to complete the design of computing and graphics drawing and simulation.

Keyword filter MATLAB Window function method Double linear transformation

2

目录 摘要 ................................................................ 1 Abstract ............................................................ 2 目录 ................................................................ 3 1.绪论 ............................................................. 3 1.1研究的目的和意义 ............................................ 6 1.2本课题的研究内容 ............................................ 6 1.3 其大概流程框图可如下表示 ................................... 7 2.原始语音信号采集与处理 ............................................ 8 2.1 Matlab简单介绍 ............................................. 8 2.2 语音信号的采样理论依据 ...................................... 9 2.2.1采样的基本概念 ........................................... 9 2.3语音信号的采集 ............................................. 10 2.4语音信号的时频分析 ......................................... 11 2.5语音信号加噪与频谱分析 ..................................... 14 2.5.1 正弦波信号加入原始语音信号 ............................. 14 2.5.2 随机噪音信号加入原始语音信号 ........................... 14 2.6本章小结 ................................................... 18 3设计数字滤波器 ................................................... 19 3.1 滤波器概述 ................................................. 19 3.1.1 模拟滤波器概述 ......................................... 19 3.1.2 数字滤波器概述 ......................................... 19 3.2 IIR数字滤波器概述 .......................................... 20 3.3 FIR数字滤波器概述 .......................................... 21 3.4 设计FIR数字滤波器和IIR数字滤波器比较 ..................... 21 3.5 数字滤波器设计的基本思路 ................................... 21 3.6 设计FIR滤波器 ............................................. 22 3.6.1 窗函数法及设计步骤 ..................................... 22 3.6.2源程序与仿真图像 ....................................... 23 3.7 设计IIR滤波器 ............................................. 24 3.7.1双线性变换法与设计步骤 ................................. 24 3.7.2源程序与仿真图像 ....................................... 25 3.8 本章小结 ................................................... 27 4 滤波并绘制滤波前后语音信号的波形及频谱 ........................... 29 4.1滤波及仿真 ................................................. 29

3

4.1.1 FIR滤波器法去噪 ....................................... 29 4.1.2 IIR滤波器法去噪 ....................................... 30 4.2 结合去噪后的频谱图对比两种方式滤波的优缺点 .................. 31 4.3本章小结 .................................................... 32 总结 ............................................................... 33 致谢 ............................................................... 34 参考文献 ........................................................... 35 附录 ............................................................... 36 附录(I) 设计FIR和IIR数字滤波器 .............................. 36 附录(II)比较滤波前后语音信号的波形及频谱 ...................... 40

4

1.绪论

数字信号处理是研究用数字方法对信号进行分析、变换、滤波、检测、调制、解调以及快速算法的一门技术学科。但很多人认为:数字信号处理主要是研究有关数字滤波技术、离散变换快速算法和谱分析方法。随着数字电路与系统技术以及计算机技术的发展,数字信号处理技术也相应地得到发展它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。

数字滤波器, 是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤波器和无限冲激响应( IIR,Infinite Impulse Response)滤波器。

FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H (z)在处收敛,极点全部在z = 0处(因果系统),因而只能用较高的阶数达到高的选择性。FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。FIR数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。 FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐。

IIR滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。

滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。随着MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件。它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化[1]。

5

1.1研究的目的和意义

语音信号的采集与分析技术是一门涉及面很广的交叉科学,它的应用和发展与语音学、声音测量学、电子测量技术以及数字信号处理等学科紧密联系,语音是人类获取信息的重要来源和利用信息的重要手段。在信号传输过程中,由于实验条件或各种其他主观或客观条件的原因,语音处理系统都不可避免地要受到各种噪声的干扰。噪声不但降低了语音质量和语音的可懂度,而且还将导致系统性能的急剧恶化,严重时使整个系统无法正常工作。现实中噪音给人带来生理上和心理上的危害具体表现在损害听力、损害视力、有害于人的心血管系统、我国对城市噪音与居民健康的调查表明: 地区的噪音每上升一分贝, 高血压发病率就增加3%。影响人的神经系统, 使人急躁、易怒。 影响睡眠, 造成疲倦。 噪声对睡眠的危害:突然的噪声在40分贝时,可使10%的人惊醒,达到60分贝时,可使70%的人惊醒。因此噪声处理已经成为现代人必须面临的问题。

选择设计此方案,是对数字信号处理的一次实践。在数字信号处理的课程学习过程中,我们过多的是理论学习,几乎没有进行实践方面的运用。这个课题正好是对数字语音处理的一次有利实践,而且语音处理也可以说是信号处理在实际应用中很大众化的一方面。这个方案用到的软件也是在数字信号处理中非常通用的一个软件——MATLAB软件。所以这个课题的设计过程也是一次数字信号处理在MATLAB中应用的学习过程。课题用到了较多的MATLAB语句,而由于课题研究范围所限,真正与数字信号有关的命令函数却并不多。

1.2本课题的研究内容

课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现。在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB 作为辅助工具完成设计中的计算与图形的绘制。最终结合图像以及对语音信号的回放,通过对比,得出结论。

本课题的研究基本步骤如下:

1. 语音信号的录制。

2. 在MATLAB平台上读入语音信号。 3. 绘制频谱图并回放原始语音信号。

4. 利用MATLAB编程加入一段正弦波噪音,设计滤波器去噪。

5. 利用MATLAB编程加入一段随机噪音信号,设计FIR和IIR滤波器去噪,并分别绘制频谱图、回放语音信号。

6

6 通过仿真后的图像以及对语音信号的回放,对比两种去噪方式的优缺点。

1.3 其大概流程框图可如下表示

程序流程图 开始

用wavread读取语音信号,并进行采样,建立数据文件,并用plot画出数据文件时域波形图和频谱图 利用MATLAB中的正弦波函数、随机函数产生噪声分别加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析。 运用数字信号处理理论设计FIR和IIR数字滤波器, 并对被噪声污染的语音信号进行滤波,分析滤波后信号的时域和频域特征。 回放语音信号得出所设计滤波器FIR和IIR在语音处理中的优劣 结束 图 1-1程序流程图

7

2.原始语音信号采集与处理

2.1 Matlab简单介绍

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。

2.2 语音信号的采样理论依据

2.2.1采样的基本概念

(1)所谓“采样”,就是利用采样脉冲序列p(t)从连续时间信号x(t)中抽取一系列的离散样值,由此得到的离散时间信号通常称为采样信号,而它的顶部符号(^)表示它的采样信号,X^a(t)=xa(t).p(t)。采样器可以看成是一个电子开关,设开关每隔T秒短暂地

8

闭合一次,将连续信号接通,实现一次采样。如果开关每次闭合的时间为t秒,那么采样器的输出将是一串周期为T,宽度为t的脉冲,而脉冲的幅度却是重复着在这段t时间内信号的幅度,这个过程可以看作是一个脉冲调幅过程,被调制的脉冲载波是一串周期为T,宽度为t的矩形脉冲信号,即采样脉冲序列p(t),而调制信号就是输入的连续信号。 (2)采样频率

采样频率只能用于周期性采样的采样器,对于非周期性采样的采样器没有规则限制。 采样频率的常用的表示符号是 fs。

采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。 (3)采样位数

采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。

采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。每增加一个采样位数相当于力度范围增加了6dB。采样位数越多则捕捉到的信号越精确。对于采样率来说你可以想象它类似于一个照相机,44.1kHz意味着音频流进入计算机时计算机每秒会对其拍照达441000次。显然采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确。 (4)采样定理

在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>=2fmax),采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。

1924年奈奎斯特(Nyquist)就推导出在理想低通信道的最高码元传输速率的公式:理想低通信道的最高码元传输速率B=2W Baud (其中W是理想)

9

采样定理

理想信道的极限信息速率(信道容量)C = B * log2 N ( bps )采样过程所应遵循的规律,又称取样定理、抽样定理。采样定理说明采样频率与信号频谱之间的关系,是连续信号离散化的基本依据。采样定理是1928年由美国电信工程师H.奈奎斯特首先提出来的,因此称为奈奎斯特采样定理。1933年由苏联工程师科捷利尼科夫首次用公式严格地表述这一定理,因此在苏联文献中称为科捷利尼科夫采样定理。1948年信息论的创始人C.E.香农对这一定理加以明确地说明并正式作为定理引用,因此在许多文献中又称为香农采样定理。采样定理有许多表述形式,但最基本的表述方式是时域采样定理和频域采样定理。采样定理在数字式遥测系统、时分制遥测系统、信息处理、数字通信和采样控制理论等领域得到广泛的应用。

时域采样定理,频带为F的连续信号f(t)可用一系列离散的采样值f(t1),f(t1±Δt),f(t1±2Δt),...来表示,只要这些采样点的时间间隔Δt≤1/2F,便可根据各采样值完全恢复原来的信号f(t)。 这是时域采样定理的一种表述方式。

时域采样定理的另一种表述方式是:当时间信号函数f(t)的最高频率分量为fM时,f(t)的值可由一系列采样间隔小于或等于1/2fM的采样值来确定,即采样点的重复频率f≥2fM。图为模拟信号和采样样本的示意图。

时域采样定理是采样误差理论、随机变量采样理论和多变量采样理论的基础。 频域采样定理,对于时间上受限制的连续信号f(t)(即当│t│>T时,f(t)=0,这里T=T2-T1是信号的持续时间),若其频谱为F(ω),则可在频域上用一系列离散的采样值 来表示,只要这些采样点的频率间隔ω≦π / tm 。

2.3语音信号的采集

2.3.1 goldwave软件介绍

GoldWave是一个功能强大的数字音乐编辑器,它可以对音频内容进行播放、录制、编辑以及转换格式等处理。是一个集声音编辑,播放,录制,和转换的音频工具,体积小巧,功能却不弱。可打开的音频文件相当多,包括WAV,OGG,VOC, IFF,AIFF, AIFC,AU,SND,MP3, MAT, DWD, SMP, VOX,SDS,AVI,MOV,APE等音频文件格式,你也可以从CD或VCD或DVD或其它视频文件中提取声音。 10

图2-1

2.3.2 语音信号的录制

利用软件

HA_GoldWave可以进行语音信号的录制。选择录制时间为5秒钟。点击放音

按钮,可以实现所录音的重现。以文件名“wangwei”保存入c :\\ MATLAB \\ work中。可以看到,文件存储器的后缀默认为. wav ,

2.4语音信号的时频分析

2.4.1 FFT概念

傅立叶变换是数字信号处理领域一种很重要的算法。要知道傅立叶变换算法的意义,首

先要了解傅立叶原理的意义。傅立叶原理表明:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。而根据该原理创立的傅立叶变换算法利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频率、振幅和相位 傅立叶变换将原来难以处理的时域信号转换成了易于分析的频域信号(信号的频谱),可以利用一些工具对这些频域信号进行处理、加工。

FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。

2.4.2 FFT的MATLAB实现:

在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。下面

11

介绍这些函数。

函数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进行处理。

经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。MATLAB提供求复数的幅值和相位函数:abs,angle,这些函数一般和 FFT同时使用。

函数abs(x)用于计算复向量x的幅值,函数angle(x)用于计算复向量的相角。 用MATLAB工具箱函数fft进行频谱分析时需注意: (1)函数fft返回值y的数据结构对称性

一般而言,对于N点的x(n)序列的FFT是N点的复数序列,其点n=N/2+1对应Nyquist频率,作频谱分析时仅取序列X(k)的前一半,即前N/2点即可。X(k)的后一半序列和前一半序列时对称的。

(2)频率计算

若N点序列x(n)(n=0,1,?,N-1)是在采样频率下获得的。它的FFT也是N点序列,即X(k)(k=0,1,2,?,N-1),则第k点所对应实际频率值为f=k*f /N.

(3)作FFT分析时,幅值大小与FFT选择点数有关,但不影响分析结果。 利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。再对其进行采样,记住采样频率和采样点数。

下面介绍Wavread 函数几种调用格式。 (1)y=wavread(file)

功能说明:读取file所规定的wav文件,返回采样值放在向量y中。 (2)[y,fs,nbits]=wavread(file)

功能说明:采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。 (3)y=wavread(file,N)

功能说明:读取钱N点的采样值放在向量y中。 (4)y=wavread(file,[N1,N2])

功能说明:读取从N1到N2点的采样值放在向量y中。 接下来,对语音信号wangwei.wav进行采样。其程序如下:

12

>> [y,fs,nbits]=wavered (‘wangwei’); %把语音信号加载入Matlab 仿真软件平台中

然后,画出语音信号的时域波形,再对语音信号进行频谱分析。MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:

Xk=fft(xn,N)。在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。

我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。sound(x,fs,bits); 用于对声音的回放。向量y则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。下面的一段程序是语音信号在MATLAB中的最简单表现,它实现了语音的读入打开,以及绘出了语音信号的波形频谱图。 其程序如下:

[y,fs,bits]=wavread('wangwei.wav'); sound(y,fs) n=length(y)

y_p=fft(y,n); %用傅里叶变换到频域 f=fs*(0:n/2-1)/n; %频率序列 figure(1) subplot(2,1,1); plot(y);

title('原始语音信号采样后的时域波形'); xlabel('点数') ylabel('幅值A') subplot(2,1,2);

plot(f,abs(y_p(1:n/2)));

title('原始语音信号采样后的频谱图'); xlabel('点数'); ylabel('频率幅值');

程序运行可以听到声音,得到的图形为:

13

图2-2

2.5语音信号加噪与频谱分析

2.5.1 正弦波信号加入原始语音信号

前面已经介绍了MATLAB软件相关知识,那么我们怎么在MATLAB平台上实现对一段原始语音信号加入一个正弦波信号呢?

下面一段程序实现了在原始语音信号加入正弦波信号。程序见附录5

分析此段程序可知,此程序是先对原始语音信号做时域波形分析和频谱分析,然后再对加噪的语音信号做时域波形分析和频谱分析。

首先通过MATLAB中调用和回放语音信号命令来实现对原始语音信号的调用和回放,程序如下:

[y,fs,bits]=wavread('wangwei.wav');

sound(y,fs)

由于在MATLAB中,如要实现两个信号的相加减,那么两个信号的长度和维度都要一样才能相加减。程序中:n=length(y) ,用于计算信号的长度和选取变换的点数。然后用傅里叶变换到频域:y_p=fft(y,n);通过函数 f=fs*(0:n/2-1)/n;计算出对应点的点数,然后绘制出原始语音信号的时域波形和频谱图。图形如下:

14

图 2-3

上段程序中,函数noise是频率为3000Hz的正弦波信号噪音,语句y_z=y+noise实现了两个信号的相加,然后绘制加噪后的语音信号时域波形和频谱图并回放加噪后的语音信号。加噪后的时域波形和频谱图如下:(图)

15

图 2-4

如上所示,通过对加噪前和加噪后语音信号的图像的对比和对语音信号回放的人耳感知可以知道,加入正弦波信号后频谱图和时域波形并没有什么明显的变化,而人耳听到的声音也几乎没有什么变化。很显然加入正弦波信号不适合做去噪研究。

2.5.2 随机噪音信号加入原始语音信号

在MATLAB中产生高斯白噪声非常方便,我们可以直接应用两个函数:一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。也可直接用randn函数产生高斯分布序列。

在本次设计中,我们是利用MATLAB中的随机函数(rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。

matlab函数randn:产生正态分布的随机数或矩阵的函数

产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数。 用法:

Y = randn(n)

返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。 Y = randn(m,n) 或 Y = randn([m n]) 返回一个m*n的随机项矩阵。

Y = randn(m,n,p,...) 或 Y = randn([m n p...]) 产生随机数组。

16

Y = randn(size(A)) 返回一个和A有同样维数大小的随机数组。 randn 返回一个每次都变化的数量。

下面一段程序实现了利用randn函数把一段随机噪音信号加入原始语音信号的信号处理过程:见附录6

语句 L=length(y) noise=0.1*randn(L,2) y_z=y+noise;sound(y_z,fs) 加噪后语音信号的时域波形、频谱图(图4—7)

图 2-5

通过对两张图片的对比,很明显可以看加噪后的语音信号时域波形比原始语音信号浑浊了许多,在时间轴上可以明显看出幅值增大了;通过对原始语音信号的频谱图与加噪后的语音信号频谱图的对比,也可以看出在点数3000以后的频率幅值发生了明显的增加。从对应点数求得对应的语音频率,根据公式f=n*fs/N

fs/N是频域上的分辨率,采样频率是fs,频域上总共N个点,那么频域上的分辨率自然就是fs/N。f=n*fs/N就是经过fft变换后,频域上各个样点的频率值了。fs=44100,N=220500,n=3000求得对应的频率是600HZ.

再通过对原始语音信号的回放效果与加噪后的语音信号回放的效果的对比,人耳可以明显辨别出两种语音信号不一样了,加噪后的语音信号在听觉上比原始语音信号要浑浊很

17

多,而且还有吱吱嘎嘎的混杂音。

2.6本章小结

通过对上一节中加噪语音信号和原始语音信号频谱图对比可以大致猜想,噪音大部分是Hz大于600的部分,故重点设计低通滤波器进行滤波处理。同样也会设计高通滤波器,根据人说话声音的频率300-3000HZ,高通截止频率会设在3000HZ。

18

3设计数字滤波器

3.1 滤波器概述

滤波器是指能够使输入信号中的某些频率分量充分地衰减,同时保留那些需要的频

率分量的一类系统,滤波器在信号传输与信号处理中起重要作用。根据对不同信号的处理可将滤波器分为模拟滤波器和数字滤波器两种。模拟滤波器和数字滤波器的概念相同,只是信号的形式和实现滤波的方法不同。

3.1.1 模拟滤波器概述

模拟滤波器要用硬件电路来实现,即用由模拟元件(如电阻、电容、电感)组成的电路来完成滤波的功能,如常用的有源滤波器、开关电容滤波器等都属于模拟滤波器。

用模拟—数字变换法设计IIR数字滤波器,首先必须设计一个模拟滤波器,它有许多不同的类型,主要有以下两种类型:

①巴特沃思(Botterworth简写BW)滤波器。BW滤波器是根据幅频特性在通带内具有最拼图特性而定义的滤波器,对一个N阶低通滤波器来说,所谓最平坦特性就是模拟函数的前(2N-1)阶导数在??0处都为零。BW滤波器的另一个特性是在通带和阻带内的幅频特性始终是频率的单调下降函数,且其模拟函数随阶次N 的增大而更接近于理想低通滤波器。

②切比雪夫(Chbyshev简写为CB)滤波器。CB低通滤波器的模拟函数由切比雪夫多项式定义,且在通带内的幅频响应是波动的,在阻带则单调变化。

3.1.2 数字滤波器概述

滤波器是指能够使输入信号中的某些频率分量充分地衰减,同时保留那些需要的频率分量的一类系统,滤波器在信号传输与信号处理中起重要作用。根据对不同信号的处理可将滤波器分为模拟滤波器和数字滤波器两种。模拟滤波器和数字滤波器的概念相同,只是信号的形式和实现滤波的方法不同。

模拟滤波器要用硬件电路来实现,即用由模拟元件(如电阻、电容、电感)组成的电路来完成滤波的功能,如常用的有源滤波器、开关电容滤波器等都属于模拟滤波器。

用模拟—数字变换法设计IIR数字滤波器,首先必须设计一个模拟滤波器,它有许多不同的类型,主要有以下两种类型:

①巴特沃思(Botterworth简写BW)滤波器。BW滤波器是根据幅频特性在通带内具有

19

最拼图特性而定义的滤波器,对一个N阶低通滤波器来说,所谓最平坦特性就是模拟函数的前(2N-1)阶导数在??0处都为零。BW滤波器的另一个特性是在通带和阻带内的幅频特性始终是频率的单调下降函数,且其模拟函数随阶次N 的增大而更接近于理想低通滤波器。

②切比雪夫(Chbyshev简写为CB)滤波器。CB低通滤波器的模拟函数由切比雪夫多项式定义,且在通带内的幅频响应是波动的,在阻带则单调变化。 数字滤波器分类,按功能分:低通、高通、带通、带阻、全通滤波器

低通滤波器:对于不同滤波器而言,每个频率的信号的减弱程度不同。当使用在音频应用时,它有时被称为高频剪切滤波器, 或高音消除滤波器。低通滤波器概念有许多不同的形式,其中包括电子线路(如音频设备中使用的hiss 滤波器、平滑数据的数字算法、音障(acoustic barriers)、图像模糊处理等等,这两个工具都通过剔除短期波动、保留长期发展趋势提供了信号的平滑形式。低通滤波器在信号处理中的作用等同于其它领域如金融领域中移动平均数(moving average)所起的作用;低通滤波器有很多种,其中,最通用的就是巴特沃斯滤波器和切比雪夫滤波器。

高通滤波器:去掉信号中不必要的低频成分,去掉低频干扰的滤波器。在电力系统中,谐波补偿时用高通滤波器滤除某次及其以上的各次谐波。高通滤波器是指车载功放中能够让中、高频信号通过而不让低频信号通过的电路,其作用是滤去音频信号中的低音成分,增强中音和高音成分以驱动扬声器的中音和高音单元。此外高通滤波器常常和低通滤波器成对出现,不论哪一种,都是为了把一定的声音频率送到应该去的单元。

带通滤波器:能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器,与带阻滤波器的概念相对。一个模拟带通滤波器的例子是电阻-电感-电容电路(RLC circuit)。这些滤波器也可以用低通滤波器同高通滤波器组合来产生。

按实现的网络结构或单位抽样响应分:无限脉冲响应滤波器(IIR滤波器)、有限脉冲响应滤波器(FIR滤波器)

3.2 IIR数字滤波器概述

IIR(Infinite Impulse Response)数字滤波器,又名“无限脉冲响应数字滤波器”,或“递归滤波器”。递归滤波器,也就是IIR数字滤波器,顾名思义,具有反馈,一般认为具有无限的脉冲响应。IIR滤波器有以下几个特点:

(1)封闭函数:IIR数字滤波器的系统函数可以写成封闭函数的形式。

(2)IIR数字滤波器采用递归型结构:IIR数字滤波器采用递归型结构,即结构上带有

20

反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。

(3)借助成熟的模拟滤波器的成果:IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,再通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。

(4)需加相位校准网络:IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。

3.3 FIR数字滤波器概述

FIR数字滤波器(finite impulse response filter)又名“有限脉冲响应数字滤波器”,这类滤波器对于脉冲输入信号的响应最终趋向于0,因此而得名。有限脉冲响应滤波器(FIR filter)的优点:

(1)脉冲响应(impulse response)为有限长:造成当输入数位讯号为有限长的时候,输出数位讯号也为有限长。

(2)比无限脉冲响应滤波器(IIR filter)较容易最佳化(optimize)。

(3)线性相位(linear phase):造成h(n),是偶对称(even)或奇对称(odd)且有限长。

(4)一定是稳定的(stable):因为Z转换(Z transform)后所有的极点(pole)都在单位圆内

3.4 设计FIR数字滤波器和IIR数字滤波器比较

不论是IIR滤波器还是FIR滤波器的设计都包括三个步骤: (1) 按照实际任务的要求,确定滤波器的性能指标。

(2) 用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求可以用IIR系统函数,也可以用FIR系统函数去逼近。 (3) 利用有限精度算法实现系统函数,包括结构选择、字长选择等。

但IIR滤波器和FIR滤波器的设计方法完全不同。IIR滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数H(s),然后将H(s)按某种方法转换成数字滤波器的系统函数H(z)。FIR滤波器采用间接法,常用的方法有窗函数法、频率采样法和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR滤波器。

21

3.5 数字滤波器设计的基本思路

数字滤波器的实现有两个关键步骤:一个从数字域到模拟域间的变换,这个变换实现了数字滤波器技术指标到模拟滤波器技术指标的转换,同样也实现了模拟滤波器系统函数到数字滤波器系统函数的转换;另一个是从模拟滤波器技术指标到满足该指标的模拟滤波器的设计。

3.6 设计FIR滤波器

3.6.1 窗函数法及设计步骤

FIR滤波器的设计比较简单,就是要设计一个数字滤波器去逼近一个理想的低通滤波器。通常这个理想的低通滤波器在频域上是一个矩形窗。根据傅里叶变换我们可以知道,此函数在时域上是一个采样函数。通常此函数的表达式为:

sa(n)=sin(n∩)/n(3-2)

但是这个采样序列是无限的,计算机是无法对它进行计算的。故我们需要对此采样函数进行截断处理。也就是加一个窗函数。就是传说中的加窗。也就是把这个时域采样序列去乘一个窗函数,就把这个无限的时域采样序列截成了有限个序列值。但是加窗后对此采样序列的频域也产生了影响:此时的频域便不在是一个理想的矩形窗,而是成了一个有过渡带,阻带有波动的低通滤波器。通常根据所加的窗函数的不同,对采样信号加窗后,在频域所得的低通滤波器的阻带衰减也不同。通常我们就是根据此阻带衰减去选择一个合适的窗函数。如矩形窗、汉宁窗、汉明窗、BLACKMAN窗、凯撒窗等。 我们介绍用窗函数法设计FIR滤波器的步骤。如下:

(1)根据对阻带衰减及过渡带的指标要求,选择窗函数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。 (2)构造希望逼近的频率响应函数。 (3)计算h(n).。 (4)加窗得到设计结果。

接下来,我们根据语音信号的特点给出有关滤波器的技术指标: ①低通滤波器的性能指标:

fp=600Hz,fc=800Hz,As=10db ,Ap=1dB ②高通滤波器的性能指标:

fp=3000Hz,fc=2700Hz,As=10dB,Ap=1dB;

22

在Matlab中,可以利用函数fir1设计FIR滤波器,利用函数butter,cheby1和ellip设计IIR滤波器,利用Matlab中的函数freqz画出各步步器的频率响应。 hn=fir1(M,wc,window),可以指定窗函数向量window。如果缺省window参数,则fir1默认为哈明窗。其中可选的窗函数有Rectangular Barlrtt Hamming Hann Blackman窗,其相应的都有实现函数。

3.6.2源程序与仿真图像

下面我们将给出设计FIR数字滤波器的主要程序和图像。 FIR低通滤波器程序见附录I FIR低通滤波器图像:

图3-1 FIR低通滤波器

FIR高通滤波程序见附录I FIR高通滤波图像:

23

图3-2 FIR高通滤波器

3.7 设计IIR滤波器

3.7.1双线性变换法与设计步骤

无论是数字滤波器还是模拟滤波器,他们技术指标的建立都是以所谓的“固有衰减”参数为参照。以数字滤波器为例,固有衰减参数(关于之旅分量归一化)定义为 A(w)=-20lg|H(ejw)|-20lg|H(ej0)| (式3-1)

目前IIR数字滤波器设计的最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询,因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大方便。IIR数字滤波器的设计步骤是:

①按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标; ②根据转换后的技术指标设计模拟低通滤波器G?s?;

24

③再按一定规则将G(s)转换成H(z)。若设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通,带通或带阻滤波器,那么还有步骤④;

④将高通、带通、或带阻数字l不去的技术指标先转化为低通模拟滤波器的技术指标,然后按照上述步骤②设计出低通G?s?,再将G?s?转换为所需的H(z)。

IIR滤波器设计的一种简单、有效的方法就是双线性变换法。可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下: (1)确定所需类型数字滤波器的技术指标。

(2)将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为Ω=2/T tan(0.5ω)(式3-2)

(3)将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。 (4)设计模拟低通滤波器。

(5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。

(6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。 我们知道,脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性。为了克服之一缺点,可以采用双线性变换法。 下面我们总结一下利用模拟滤波器设计IIR数字低通滤波器的步骤:

(1)确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。

(2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。 (3)按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。

(4)用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。

函数butter,cheby1和ellip设计IIR滤波器时都是默认的双线性变换法,所以在设计滤波器时只需要代入相应的实现函数即可。

3.7.2源程序与仿真图像

IIR低通滤波器程序见附录I; IIR低通滤波器图像:

25

图3-3 IIR低通滤波器

IIR滤波器高通程序I IIR滤波器高通图像:

26

3.8 本章小结

本章详细介绍了FIR和IIR数字滤波器的设计,利用MATLAB信号处理工具箱函数,我们很容易写出其相应程序。

27

4 滤波并绘制滤波前后语音信号的波形及频谱

4.1滤波及仿真

4.1.1 FIR滤波器法去噪

通过对上一节中加噪语音信号和原始语音信号频谱图对比可以知道,噪音大部分是Hz大于600HZ的部分,故设计低通滤波器进行滤波处理。接下来我们重点设计的FIR低通滤波器对上一节中加噪语音信号进行滤波处理。

用设计好的FIR数字低通滤波器对加噪语音信号的滤波程序:见附录II 得到的图像如下:(图4)

图4-1

28

图4-2 FIR滤波前和滤波后波形及频谱

分析:从以上四图可以很明显和直观的看出原始语音信号和加噪语音信号时域波形和频谱图的区别。加噪后的语音信号的时域波形比原始语音信号要模糊得多,频谱图则是在频率600Hz以后出现了明显的变化。

再通过滤波前的信号波形和频谱图的对比,可以明显看出滤波后的波形开始变得清晰了,有点接近原始信号的波形图了。滤波后信号的频谱图也在600Hz以后开始逐渐接近原始语音信号的频谱图。

再从对语音信号的回放,人耳可以明显辨别出加噪后的语音信号比较浑浊,还有很明显嘎吱嘎吱的杂音在里面。滤波后,语音信号较加噪后的信号有了明显的改善,基本可以听清楚了,而且杂音也没有那么强烈,但是声音依然没有原始语音信号那么清晰脆耳。

对于高通滤波器,人发声的一般频率是300-3000HZ,按照理论上来说的话用高通滤波器滤过之后,人的声音的大部分频率已被滤除。

滤波后的波形及频谱图,以及回放滤波后的语音信号,滤波后的语音信号非常低沉,因此证明了人发生频率范围在300-3000HZ这一理论的正确性。显然高通滤波器是不适合做语音信号的滤除的。FIR数字高通滤波器对加噪语音信号的滤波程序:见附录7,图形如下:

29

图4-3

4.1.2 IIR滤波器法去噪

同样,也设计一个IIR低通滤波器对加噪语音信号进行内部处理。程序见附录II 得到下面的图形:

图4-4

30

图4-5 IIR滤波前和滤波后波形及频谱

IIR高通滤波器对加噪语音信号进行内部处理。程序见附录8 得到下面的图形:

图4-6

31

4.2 结合去噪后的频谱图对比两种方式滤波的优缺点

IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。

(1)IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。FIR滤波器则要求较低。

(2)IIR滤波器运算误差大,有可能出现极限环振荡,FIR相比之下运算误差较小,不会出现极限环振荡。

(3)IIR幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上;

(4)与FIR滤波器的设计不同,IIR滤波器设计时的阶数不是由设计者指定,而是根据设计者输入的各个滤波器参数(截止频率、通带滤纹、阻带衰减等),由软件设计出满足这些参数的最低滤波器阶数。在MATLAB下设计不同类型IIR滤波器均有与之对应的函数用于阶数的选择。

(5)IIR单位响应为无限脉冲序列FIR单位响应为有限的

(6)FIR幅频特性精度较之于iir低,但是线性相位,就是不同频率分量的信号经过FIR滤波器后他们的时间差不变。这是很好的性质。

(7)IIR滤波器有噪声反馈,而且噪声较大,FIR滤波器噪声较小。

FIR幅频特性精度较之于iir低,但是线性相位,就是不同频率分量的信号经过FIR滤波器后他们的时间差不变。这是很好的性质。

4.3本章小结

本章详细介绍了怎样通过自己设计的滤波器进行滤波。

32

总结

语音信号处理是语音学与数字信号处理技术相结合的交叉学科,课题在这里不讨论语音学,而是将语音当做一种特殊的信号,即一种“复杂向量”来看待。也就是说,课题更多的还是体现了数字信号处理技术。

从课题的中心来看,课题“在MATLAB平台上实现对语音信号的去噪研究和仿真”是希望将数字信号处理技术应用于某一实际领域,这里就是指对语音及加噪处理。作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需将这些离散的量提取出来,就可以对其进行处理了。这一过程的实现,用到了处理数字信号的强有力工具MATLAB。通过MATLAB里几个命令函数的调用,很轻易的在实际语音与数字信号的理论之间搭了一座桥。

课题的特色在于它将语音信号看作一个向量,于是就把语音数字化了。那么,就可以完全利用数字信号处理的知识来解决语音及加噪处理问题。我们可以像给一般信号做频谱分析一样,来对语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。通过比较加噪前后,语音的频谱和语音回放,能明显的感觉到加入噪声后回放的声音与原始的语音信号有很大的不同,前者随较尖锐的干扰啸叫声。从含噪语音信号的频谱图中可以看出含噪声的语音信号频谱,在整个频域范围内分是布均匀。其实,这正是干扰所造成的。通过滤波前后的对比,低通滤波后效果最好,高通滤波后的效果最差。由此可见,语音信号主要分布在低频段,而噪声主要分布在高频段。

这次毕业设计还使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

总的来说,这次课程设计还是比较成功的,在设计中遇到了很多问题,在老师和同学的细心帮助下,终于一一解决了,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。

33

致谢

在论文完成之际,我首先向关心帮助和指导我的指导老师张老师表示衷心的感谢并致以崇高的敬意!

在学校的学习生活即将结束,回顾四年来的学习经历,面对现在的收获,我感到无限欣慰。为此,我向热心帮助过我的所有老师和同学表示由衷的感谢!在论文工作中,遇到了许许多多这样那样的问题,有的是专业上的问题,有的是论文格式上的问题,一直得到 张老师的亲切关怀和悉心指导,使我的论文可以又快又好的完成,张老师以其渊博的学识、严谨的治学态度、求实的工作作风和他敏捷的思维给我留下了深刻的印象,我将终生难忘我的张老师对我的亲切关怀和悉心指导,再一次向他表示衷心的感谢,感谢他为学生营造的浓郁学术氛围,以及学习、生活上的无私帮助! 值此论文完成之际,谨向张老师致以最崇高的谢意!

最后,衷心地感谢在百忙之中评阅论文和参加答辩的各位专家、教授!

34

参考文献

[1] 胡航,语音信号处理[M],哈尔滨工业大学出版社,2000 年5月

[2]皇甫堪,陈建文,楼生强.现代数字信号处理[M].北京:电子工业出版社,2003. [3]吴红卫,吴镇扬,赵力.基于多窗谱的心理声学语音增强[J].声学学 报,2007,32(3):275-281.

[4]潘欣裕,童兴法,赵鹤鸣,基于谱能比例加权的谱减法语音增强研究[J].中国电子学会第十五届信息论学术年会暨第一届全国网络编码学术年会论文集 [5] 程正,赵鹤鸣. 基于多频带谱减法的语音增强算法的研究[J]. 002-8331(2007)36-0040-03.

[6] 曹瑜镠,方元,吕勇.基于最小统计及谱减法的语音增强[J]. 语音技术. 002-8684(2006)12-0043-04

[7]陈智伶.基于维纳滤波语音增强算法的改进实现[J].电声 技术,2007,31(1) [8] 王艳芳 王刚 张晓光 刘卫东 数字信号处理原理及实现 清华大学出版社 2007 [9] 张德丰 详解MATLAB数字信号处理 电子工业出版社 2010

35

附录

附录(I) 设计FIR和IIR数字滤波器 %FIR Bartlett窗低通滤波器 FS=44100;

fp=600,fc=800; wp=2*pi*fp/FS; ws=2*pi*fc/FS;

Bt=ws-wp; N0=ceil(11*pi/Bt); N=N0+mod(N0+1,2); wc=(wp+ws)/2/pi; [bz,az]=fir1(N-1,wc,bartlett(N)); [h,w]=freqz(bz,az); plot(w/pi,20*log(abs(h))); 程序结果如下图:

36

%FIR-Bartlett 窗高通滤波器 Fs=44100;

fp=3000,fc=2700; wp=2*pi*fp/FS; ws=2*pi*fc/FS;

Bt=wp-ws; N0=ceil(11*pi/Bt); N=N0+mod(N0+1,2); wc=(wp+ws)/2/pi;

[bz,az]=fir1(N-1,wc,'high',bartlett(N)); [h,w]=freqz(bz,az); plot(w/pi,20*log(abs(h)));

程序结果如下图:

37

%IIR低通滤波器 fp=600;fs=800;Fs=44100; rp=1;rs=10; wp=2*pi*fp/Fs; ws=2*pi*fs/Fs; Fs1=1;T=1; wap=2*tan(wp/2); was=2*tan(ws/2);

[N,wc]=buttord(wap,was,rp,rs,'s'); [B,A]=butter(N,wc,'s'); [Bz,Az]=bilinear(B,A,Fs1); figure(4);

[h,w]=freqz(Bz,Az,512,Fs1*44100); plot(w,abs(h));

title('巴特沃斯低通滤波器');

xlabel('频率(HZ)');ylabel('耗损(dB)'); grid;

程序结果如下图:

38

%IIR高通滤波

fp=3000;fs=2700;Fs=44100; rp=1;rs=10; wp=2*pi*fp/Fs; ws=2*pi*fs/Fs; T=1;Fs1=1; wap=2*tan(wp/2); was=2*tan(ws/2);

[N,wc]=buttord(wap,was,rp,rs,'s');%wap、was通带阻带归一化的值,0≤wp≤1,0≤ws≤1。1表示数字频率pi

[B,A]=butter(N,wc,'high','s');%计算巴特沃斯模拟滤波器系统函数的分子、分母多项式系数向量ba、aa

[Bz,Az]=bilinear(B,A,Fs1); figure(4);

[h,w]=freqz(Bz,Az,512,Fs1*44100); plot(w,abs(h));

title('巴特沃斯高通滤波器');

39

xlabel('频率(HZ)');ylabel('耗损(dB)'); grid ;

程序结果如下图:

附录(II)比较滤波前后语音信号的波形及频谱 %FIR-Bartlett窗低通滤波

[y,fs,bits]=wavread('wangwei.wav'); x=y(:,1); sound(y,fs) n=length(y) y_p=fft(y,n); f=fs*(0:n/2-1)/n; figure(1)

subplot(2,1,1); plot(y);

title('原始语音信号采样后的时域波形'); xlabel('频率点数') ylabel('幅值A') subplot(2,1,2);

plot(f,abs(y_p(1:n/2)));

title('原始语音信号采样后的频谱图'); xlabel('频率Hz');

40

本文来源:https://www.bwwdw.com/article/jxo.html

Top