基于数字滤波器的语音信号处理系统的设计.doc

上传人:b****1 文档编号:236208 上传时间:2022-10-07 格式:DOC 页数:13 大小:255KB
下载 相关 举报
基于数字滤波器的语音信号处理系统的设计.doc_第1页
第1页 / 共13页
基于数字滤波器的语音信号处理系统的设计.doc_第2页
第2页 / 共13页
基于数字滤波器的语音信号处理系统的设计.doc_第3页
第3页 / 共13页
基于数字滤波器的语音信号处理系统的设计.doc_第4页
第4页 / 共13页
基于数字滤波器的语音信号处理系统的设计.doc_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于数字滤波器的语音信号处理系统的设计.doc

《基于数字滤波器的语音信号处理系统的设计.doc》由会员分享,可在线阅读,更多相关《基于数字滤波器的语音信号处理系统的设计.doc(13页珍藏版)》请在冰豆网上搜索。

基于数字滤波器的语音信号处理系统的设计.doc

基于数字滤波器的语音信号处理系统的设计

前言:

语音信号的数字滤波就是利用快速傅里叶变换fft对语音信号进行频谱分析,利用分析得到的指标设计数字滤波器,将不需要的部分通过设计好的数字滤波器滤除掉,以达到优化语音的目的。

数字滤波器是一种对数字信号进行处理的系统,数字滤波器完成数字信号滤波处理功能,其输入是一组数字量,其输出是经过变换的另一组数字量。

它通过一定的运算关系或电路形式来改变输入信号所包含的频率成分的相对比例或滤出某些频率成分,数字滤波器具有稳定性高、精度高、灵活性大等优点。

随着数字技术的发展,用数字技术实现滤波器的功能越来越受到人们的注意和广泛的应用。

摘要:

本文介绍了两种数字滤波器的基本设计原理及步骤1、利用双线性变换法以及脉冲响应不变法设计IIR数字滤波器2、用窗函数法实现FIR数字滤波器的设计。

并且把理论与实践结合,通过一段语音,利用MATLAB软件分析语音信号频谱,确定指标设计滤波器,编写程序设计滤波器,对语音信号进行滤波处理,分析滤波后的时域和频域特征,回放语音信号分析其经过信号处理后的效果。

正文

1、总体设计

1.1总体设计内容

1)利用脉冲响应不变法和双线性变换法设计IIR数字滤波器,实现数字低通、数字高通、数字带通、数字带阻。

2)利用窗函数实现FIR数字滤波器的设计

3)设计完整的语音信号处理系统,可实现语音信号的读入、语音信号的频域分析、滤波器选择、语音信号的时/频域滤波操作、语音信号的短时频域分析等功能。

1.2课设流程图设计

开始

语音信号的采集

语音信号的时域及频域分析

选择IIR数字滤波器-

语音信号的分析

选择FIR数字滤波器

语音信号的分析

2、模块设计

2.1语音信号的采集

用windows工具中的录音机录一段(语音信号),将语音信号的文件命名为test.wav.将语音文件保存后,在MATLAB软件平台下,首先调用wavread函数可采集到录制的音乐信号,并得到其采样率fs和比特数bits。

具体调用如下:

>>[y,fs,bits]=wavread('d:

\test.wav')%读取语音信号。

运行后得出fs,bit。

其中参数y是每个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样的编码位数。

sound(y);用于对声音的回放。

向量y则就代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的表达式一样处理这个声音信号。

2.2语音信号的时域及频域分析

语音信号分析是语音信号处理的前提和基础,只有分析出可表示语音信号本质特征的参数,才有可能利用这些参数进行高效的语音通信、语音合成和语音识别等处理。

而且,语音合成的音质好坏,语音识别率的高低,也都取决于对语音信号分桥的准确性和精确性。

因此语音信号分析在语音信号处理应用中具有举足轻重的地位。

2.2.1语音信号的时域分析

语音信号的时域分析就是分析和提取语音信号的时域参数。

进行语音分析时,最先接触到并且也是最直观的是它的时域波形。

语音信号本身就是时域信号,因而时域分析是最早使用,也是应用最广泛的一种分析方法,这种方法直接利用语音信号的时域波形。

运用matlab软件,调用plot函数,在读取语音信号的基础上画出语音信号的时域波形图。

理想状态下,语音信号的时域波形应该是关于时间轴对称的,但是实际情况下,由于存在着一些噪音,使得波形看上去不是那么完美。

2.2.2语音信号的频域分析

对语音信号进行频谱分析。

MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,调用格式如下:

Xk=fft(xn,N)

参数xn为被变换的时域序列向量,N是DFT变换区间的长度,当N大于xn时,fft函数自动在xn后面补零,当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。

在本次设计中,调用fft函数得到语音信号的快速傅里叶变换序列,再用plot函数画出信号的频谱图。

2.3IIR数字滤波器的设计

IIR滤波器系统函数的极点可以再单位圆内的任何位置,实现IIR滤波器的阶次较低,所用的存储单元较少,效率高,又由于IIR数字滤波器能够保留一些模拟滤波器的优良特性,因此应用很广。

设计IIR数字滤波器的方法主要有基于脉冲响应不变法和双线性Z变换法设计,数字高通、带通及带阻IIR滤波器设计,基于MATLAB函数直接设计IIR数字滤波器。

IIR数字滤波器的特点如下:

1)系统的单位冲激响应h(n)为无限长的;

2)系统函数H(z)在有限z平面上有极点存在;

3)结构上存在着输出到输入的反馈,也就是结构上是递归型的。

IIR滤波器的设计就是在给定的技术指标下去确定滤波器的阶数N和系数{,}。

在已满足给定的技术指标下,应选用阶数尽可能低的滤波器,因为滤波器的阶数越低,在实现时成本就越低。

在设计IIR滤波器时,最常用的方法是利用模拟滤波器来设计数字滤波器。

2.3.1IIR数字滤波器的设计步骤

1)按一定规则将给出的数字滤波器的技术指标通带边界频率、通带最大最大衰减、阻带截止频率、阻带最小衰减,转化为模拟低通滤波器的技术指标,主要是边界频率、的转换,、指标不变。

如果采用脉冲响应不变法,边界频率的转换关系为:

如果采用双线性变换法,边界频率的转换关系为:

2)根据归一化频率,确定最小阶数N和频率参数Wn。

归一化频率可以由以下公式得到:

3)根据转换后的技术指标,运用最小阶数设计模拟低通滤波器G(s)。

4)再按一定规则将G(s)转换成H(z)。

若设计的数字滤波器是低通的,那么上述设计工作可以结束,若设计的是高通,带通或带阻滤波器,那么还需进行一下步骤。

5)将高通、带通、或带阻数字滤波器的技术指标先转化为低通模拟滤波器的技术指标,然后按上述步骤再进行设计。

2.3.2双线性变换法的基本原理

双线性变换法的S域与Z域间的变换关系为:

(1)

由式

(1)可以看出,z和s之间可以直接代换,由于这是一非线性变换,需考察一下是否能把jΩ映射成单位圆,以及是否能将s域左半平面映射到单位圆内部。

对于s平面上的虚轴jΩ,用s=jΩ代入式

(1)得:

可见:

上面表示S平面与Z平面一一单位对应,S平面的虚轴经映射后确已成为Z平面的单位圆,但是与为非线性关系,因此,通过双线性变换后两个滤波器的频率特性形状不能保持相同,双线性变换不存在混叠效应。

对于s域的左半平面,用代入式

(1),得到:

由此得:

|Z|=

此式表明,当σ<0,有|z|<1,因而s平面的左半平面被映射在单位圆内部,这意味着稳定的模拟滤波器经双线性变换可以映射成稳定的数字滤波器。

2.3.3脉冲响应不变法法的基本原理

设模拟滤波器的系统函数为,相应的单位冲激响应是,

=LT[]。

LT[·]代表拉氏变换,对进行等间隔采样,采样间隔为T,得到,将作为数字滤波器的单位脉冲响应,那么数字滤波器的系统函数H(z)便是h(n)的Z变换。

因此脉冲响应不变法是一种时域逼近方法,它使h(n)在采样点上等于h(t)。

但是,模拟滤波的设计结果是H(s),所以下面基于脉冲响应不变法的思想,导出直接从H(s)到的转换公式。

设模拟滤波器H(s)只有单阶极点,且分母多项式的阶次高于分子多项式的阶次,将H(s)用部分分式表示:

式中si为H(s)的单阶极点。

将Ha(s)进行逆拉氏变换,得到:

式中,u(t)是单位阶跃函数。

对ha(t)进行等间隔采样,采样间隔为T,得到:

对上式进行Z变换,得到数字滤波器的系统函数H(z),即

H(s)的极点映射到z平面的极点为,系数A不变,通过模拟滤波器的系统传递函数可以直接求得数字滤波器的系统传递函数。

2.3.4基于MATLAB函数直接设计IIR数字滤波器

1)基于巴特沃斯法直接设计IIR数字滤波器

尽管巴特沃斯滤波器的幅度特性是通带平坦,阻带单调下降,但是在满足相同的设计要求下,巴特沃斯滤波器的阶次一般都比切比雪夫滤波器和椭圆滤波器高。

在MATLAB中,可以利用butter函数直接设计各种形式的滤波器,它的语法为

[b,a]=butter(N,Wn)

[b,a]=butter(N,Wn,’ftype’)

[b,a]=butter(N,Wn,’s’)

[b,a]=butter(N,Wn,’ftype’,’s’)

[z,p,k]=butter(…)

[A,B,C,D]=butter(…)

N为滤波器阶数,Wn为滤波器的截止频率,取值为0~1;‘ftype’为滤波器类型参数:

‘high’为高通滤波器,截止频率为Wn;‘stop’为带阻滤波器,截止频率Wn=[W1,W2],默认为低通和带通滤波器;低通滤波器时,Wn为截止频率;带通滤波器时,Wn=[W1,W2].

b,a分别为滤波器传递函数分子和分母系数向量;z,p,k,分别为滤波器的零点,极点和增益。

巴特沃斯滤波器的阶数可由MATLAB中的buttord函数确定,该函数的调用格式为[N,Wn]=buttord(wp,ws,Rp,Rs),其中wp表示通带截止频率,ws表示阻带截止频率,Rp表示通带纹波系数,Rs表示阻带纹波系数,N表示巴特沃斯滤波器的最小阶次,Wn为其截止频率。

2)基于切比雪夫法直接设计IIR数字滤波器

切比雪夫1型滤波器在通带是等波纹的,而在阻带是单调下降的。

在MATLAB中,可以利用cheby1函数直接设计各种形式的数字滤波器,该函数的调用格式为

[b,a]=cheby1(N,Rp,Wn)

[b,a]=cheby1(N,Rp,Wn,’ftype’)

[b,a]=cheby1(N,Rp,Wn,’s’)

[b,a]=cheby1(N,Rp,Wn,’ftype’,’s’)

[z,p,k]=cheby1(…)

[A,B,C,D]=cheby1(…)

格式中,Rp为通带波纹(dB);Wn为截止频率,取值为0~1;在该频率处滤波器的幅值相应为-Rp,其余参数和函数butter的一样。

其阶次可以通过cheblord函数来确定,该函数的调用格式为[N,Wn]=cheblord(wp,ws,Rp,Rs).切比雪夫II型滤波器在阻带是等波纹的,而在通带是单调下降的。

在MATLAB中,可以利用cheby2函数,确定阶次的调用函数为cheb2ord,调用格式为[N,Wn]=cheb2ord(wp,ws,Rp,Rs)。

3)基于椭圆法直接设计IIR数字滤波器

相同条件下,椭圆滤波器的阶次最小,对参数量化灵敏度也较为灵敏,在MATLAB中,可以利用ellip函数直接设计各种形式的数字滤波器,其调用格式为:

[b,a]=ellip(N,Rp,Rs,Wn)

[b,a]=ellip(N,Rp,Rs,Wn,’ftype’)

[z,p,k]=ellip(…)

[A,B,C,D]=ellip(…)

其中Rp表示通带波纹最大衰减,Rs表示阻带波纹最小衰减,其他参数同butter函数。

阶数可以通过ellipord函数确定,该函数的调用格式为[N,Wn]=ellipord(wp,ws,Rp,Rs)。

2.4FIR数字滤波器的设计

有限长单位冲激响应滤波器,即FI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1