基于数字滤波器的语音信号处理系统的设计Word文件下载.docx
- 文档编号:21738610
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:13
- 大小:226.01KB
基于数字滤波器的语音信号处理系统的设计Word文件下载.docx
《基于数字滤波器的语音信号处理系统的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于数字滤波器的语音信号处理系统的设计Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
其中参数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)
结构上存在着输出到输入的反馈,也就是结构上是递归型的。
阻带截止频率s、阻带最小衰减s,转化为模拟低通滤波器的技术指标,主要是边界频率
s的转换,p、s指标不变。
如果采用脉冲响应不变法,边界频率的转换关系为:
p,
pT,sT
如果采用双线性变换法,边界频率的转换关系为:
根据转换后的技术指标,运用最小阶数设计模拟低通滤波器
再按一定规则将G(s)转换成H(z)。
若设计的数字滤波器是低通的,那么上述设计工作可以结束,若设计的是高通,带通或带阻滤波器,那么还需进行一下步骤。
将高通、带通、或带阻数字滤波器的技术指标先转化为低通模拟滤波器的技术指标,后按上述步骤再进行设计。
2.3.2
双线性变换法的基本原理
Z[1(T2)s]/[1(T2)s]双线性变换法的S域与Z域间的变换关系为:
22
由式
(1)可以看出,z和s之间可以直接代换,由于这是一非线性变换,需考察一下是否能把jΩ映射成单位圆,以及是否能将s域左半平面映射到单位圆内部。
对于s平面上的虚轴jΩ,用s=jΩ代入式
(1)得:
TTj2arctg(T)
Z[1()j]/[1()j]e2e
可见:
22
Z1,2arctan(T)
面表示S平面与Z平面一一单位对应,
位圆,但是与为非线性关系,因此,通过双线性变换后两个滤波器的频率特性形状不能保持相同,双线性变换不存在混叠效应。
对于s域的左半平面,用sj代入式
(1),得到:
Z[1(T)(j)]/[1(T)(j)]
[(1T)2(T)2]/[(1T)2(T)2]
由此得:
|Z|=2222
此式表明,当σ<
0,有|z|<
1,因而s平面的左半平面被映射在单位圆内部,这意味着稳定的模拟滤波器经双线性变换可以映射成稳定的数字滤波器。
2.3.3脉冲响应不变法法的基本原理
设模拟滤波器的系统函数为Has,相应的单位冲激响应是hat,
Has=LT[hat]。
LT[·
]代表拉氏变换,对hat进行等间隔采样,采样间隔为T,得到hant,将hnhanT作为数字滤波器的单位脉冲响应,那么数字滤波器的系统函数H(z)便是h(n)的Z变换。
因此脉冲响应不变法是一种时域逼近方法,它使h(n)在采样点上等于ha(t)。
但是,模拟滤波的设计结果是Ha(s),所以下面基于脉冲响应不变法的思想,导出直接从Ha(s)到Hz的
转换公式。
设模拟滤波器Ha(s)只有单阶极点,且分母多项式的阶次高于分子多项式的阶次,将
Ha(s)用部分分式表示:
式中si为Ha(s)的单阶极点。
将Ha(s)进行逆拉氏变换,得到:
式中,u(t)是单位阶跃函数。
对ha(t)进行等间隔采样,采样间隔为T,得到:
对上式进行Z变换,得到数字滤波器的系统函数H(z),即
siT
Ha(s)的极点si映射到z平面的极点为ei,系数Ai不变,通过模拟滤波器的系统传递
函数可以直接求得数字滤波器的系统传递函数。
2.3.4基于MATLAB函数直接设计IIR数字滤波器
1)基于巴特沃斯法直接设计IIR数字滤波器
尽管巴特沃斯滤波器的幅度特性是通带平坦,阻带单调下降,但是在满足相同的设计要求下,巴特沃斯滤波器的阶次一般都比切比雪夫滤波器和椭圆滤波器高。
在MATLAB中,可以利用butter函数直接设计各种形式的滤波器,它的语法为
[b,a]=butter(N,Wn)
'
ftype'
)
s'
)
ftype'
'
⋯)
[b,a]=butter(N,Wn,
[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)
[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,'
[z,p,k]=ellip(⋯)
[A,B,C,D]=ellip(⋯)
其中Rp表示通带波纹最大衰减,Rs表示阻带波纹最小衰减,其他参数同butter函数。
阶数可以通过ellipord函数确定,该函数的调用格式为[N,Wn]=ellipord(wp,ws,Rp,Rs)。
2.4FIR数字滤波器的设计
有限长单位冲激响应滤波器,即FIR数字滤波器具有下面几个特点:
1)
2)
系统的单位冲激响应h(n)在有限个n值处不为零;
系统函数H(z)在|z|>
0处收敛,在|z|<
0处只有零,即有限z平面上只有零点,儿全
部极点都在z=0处(因果系统);
分。
FIR滤波器是指在有限范围内系统的单位脉冲响应h[k]仅有非零值的滤波器。
M阶FIR滤波器的系统函数H(z)为
M
H(z)h[k]zk
k0
其中H(z)是zk的M阶多项式,在有限的z平面内H(z)有M个零点,在z平面原点z=0有M
个极点
2.4.1
窗函数法FIR数字滤波器的设计步骤根据对阻带衰减及过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。
先按照阻带衰减选择窗函数类型。
原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。
2)构造希望逼近的频率响应函数。
3)计算h(n).。
4)加窗得到设计结果
2.4.2窗函数法FIR数字滤波器的设计原理
由于是理想滤波器,故
hd[k]是无限长序列。
但是我们所要设计的FIR滤波器,其h[k]是有
限长的。
为了能用FIR滤波器近似理想滤波器,需将理想滤波器的无线长单位脉冲响应hd[k]
而获得因果的FIR滤波器。
j(0.5M)
另一种设计方案是将线性相位因子e加入到理想滤波器的频率响应中,然后利
用IDTFT计算出hd[k]后,取hd[k]在0≦k≦M范围的值为FIR滤波器单位脉冲响应。
定义为
也可以表示为
2hd[k]h[k]
k
上式中的第一项和第三项与所设计出的滤波器参数是没有关系的,为了使上式中的第二项达到最小,可选择
h[k]hd[k],0kM所以用上面的方法得出的滤波器是在积分平方误差最小意义下的最佳滤波器。
下面介绍一些常用的窗函数,用N=M+1表示窗函数的长度。
1)矩形窗
10kM
[k]
0otherwise
(3-6)
8
N,但旁瓣幅度更小,旁瓣峰值小于主瓣峰
端点的值为零,这就使得在实际的应用中不能利用两个端点的数据。
Hanning窗除去两个端点来定义长度为N的Hanning窗。
修改后的长度为N的Hanning窗定义为
[k]0.50.5cos(2(k1)M)(0kM)0(otherwise)
在Matlab信号处理工具箱中所采用的就是这种修改后的定义方式。
3)Hamming窗
对升余弦加以改进,可以得到旁瓣更小的效果,窗形式为
0.540.46cos(2k/M)(0
0(otherwise)
与汉宁窗相比,主瓣宽度相同为
值的1%。
4)Blackman窗
w[k]0.420.5cos(2kM)0(otherwise)
12
Blackman窗的主瓣宽度为N。
5)
Kaiser窗此种窗是一种应用广泛的可调节窗,它可以通过改变窗函数的形状来控制窗函数旁瓣的大小,从而在设计中可用滤波器的衰减指标来确定窗函数的形状。
长度为N的Kaiser窗定义为
I0(x)是零阶第一类修正贝塞尔函数。
可用幂级数表示为
阻带衰减要求。
上式中的
对于任意的一个实变量x,函数的值都是正的。
在实际计算中,上式的求和一般
取20项就能达到所需精度。
随着参数的增加,Kaiser窗在两端的衰减是逐渐加大的。
2.4.3基于MATLAB函数设计FIR数字滤波器
在窗函数法的Matlab实现中,程序中经常使用的函数有fir1和kaiserord。
程序中fir1函数的用法:
b=fir1(n,Wn,'
window)。
1)n为滤波器的阶数
2)Wn为滤波器的截止频率,它是一个0到1的数。
如果Wn是一个含有两个数的向量,则函数返回一个带通滤波器
3)ftype为滤波器的类型,ftype='
high'
时,设计的是高通滤波器;
ftype='
stop'
时,设计的是带阻滤波器;
没有此参数时,设计的是低通滤波器
4)window为指定的窗函数,矩形窗为boxcar(n),汉宁窗为hanning(n),海明窗为hamming(n),布莱克曼窗为blackman(n),凯撒窗为kaiser(n,beta),没有此参数时,
默认为hamming窗.
程序中kaiserord函数的用法:
[n,Wn,beta,ftype]=kaiserord(f,a,dev,Fs)
1)f是一个向量,为设计滤波器过渡带的起始点和结束点
2)a是一个向量,指定频率段的幅度值.
3)dev是一个向量,长度和a相同,为各个通带和阻带内容许的幅度最大误差
4)n为能够满足要求的滤波器的最小阶数
5)Wn为滤波器的截止频率
6)ftype为根据待设计滤波器的要求得到的滤波器的类型高通滤波器是容许高频信号通过、但减弱(或减少)频率低于截止频率信号通过的滤波器。
对于不同滤波器而言,每个频率的信号的减弱程度不同。
它有时被称为低频剪切滤波器;
在音频应用中也使用低音消除滤波器或者噪声滤波器。
低通滤波器与高通滤波器特性恰恰相反。
3、仿真波形图
原始信号时域与频域波形图如下
观察图可知,原始语音信号的频率分布在1000hz和11000hz左右。
根据语音信号的特点给出有关滤波器的技术指标
1)低通滤波器性能指标:
fp=1000Hz,fc=1200Hz,As=100dB,Ap=1dB;
2)高通滤波器性能指标:
fp=11000Hz,fc=12000Hz,As=100dB,Ap=1dB;
3)带通滤波器性能指标:
fp1=0Hz,fc1=2000Hz,fp2=10000Hzfc2=12000HzAs=100dB,
利用程序得出的巴特沃斯
IIR低通滤波器如下图
经其滤波后信号的频谱对比为
Ap=1dB;
4、心得体会
经过为期两周的专业综合训练,我完全自主地完成了既定的理论任务,实现了综合训练的部分要求,这使我对DSP课程有了更深一步的认识和了解,要想学好它重在实践,要通过不断的实际操作才能更好地学习和运用知识,并且基本掌握了运用MATLAB软件进行滤波器的设
计。
但是由于时间关系没能完整的完成程序部分。
通过这一实践环节,加深了我对数字信号处理知识的理解,也提高了我运用所学知识分析问题和解决实际问题的能力。
在此过程中我也发现自己好多不足之处,首先是自己对所学的基础知识掌握不深,还有对理论知识的运用还有欠缺。
参考文献
[1]范寿康.DSP技术与DSP芯片[M].北京:
电子工业出版社
[2]万永革.数字信号处理的MATLAB实现[M].北京:
科学出版社,2007
[3]程佩青.数字信号处理教程[M].北京:
清华大学出版社出版,2001
[4]薛年喜.MATLAB在数字信号处理中的应用(第2版)[M].北京:
清华大学出版社,2008.1
[5]陈亚勇等.MATLAB信号处理详解[M].北京:
人民邮电出版社,2001
[6]徐命运,刘增力等.MATLAB仿真在信号处理中的应用[M].北京:
西安电子科技大学出版社
[7]施晓红,周佳.精通GUI图形界面编程[M].北京:
北京大学出版社,2003.1
[8]王世一.数字信号处理[M].北京:
北京理工大学出版社,2001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 数字滤波器 语音 信号 处理 系统 设计