窗函数法设计低通滤波器 1Word格式.docx
- 文档编号:16259495
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:16
- 大小:182.16KB
窗函数法设计低通滤波器 1Word格式.docx
《窗函数法设计低通滤波器 1Word格式.docx》由会员分享,可在线阅读,更多相关《窗函数法设计低通滤波器 1Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
FIR滤波器是在数字信号处理(DSP)中经常使用的两种基本的滤波器之一。
FIR
滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。
目前FIR滤波器的设计方法主要有三种:
窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。
常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。
用窗函数设FIR
滤波器的基本思路:
从时域出发设计
h(n)逼近理想
hd(n)。
设理想滤波器的单位响应在时域表达为hd(n),则Hd(n)
一般是无限长的,且是非因果的,不能直接作为FIR
滤波器的单位脉冲响应。
要想得到一个因果的有限长的滤波器单位抽样响应
h(n)最直接的方法是先将hd(n)往右平移,再进行截断,即截取为有限长因果序列:
h(n)=hd(n)w(n),并用合适的窗函数进行加权作为
MATLAB
设计
滤波器有多种方法和对应的函数。
窗函数设计法不仅在数字滤波器的设计中占有重要的地位,同时可以用于功率谱的估计,从根本上讲,使用窗函数的目的就是消除由无限序列的截短而引起的Gibbs现象所带来的影响。
一MATLAB程序设计的基本方法
MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他需要进行复杂数值计算的领域得到广泛应用。
它不仅是一个在各类工程设计中便于使用的计算工具,而且也是一个在数学、数值分析和工程计算等课程教学中的优秀的教学工具,在世界各地的高等院校中十分流行,在各类工业应用中更有不俗的表现。
MATLAB可以在几乎所有的PC机和大型计算机上运行,适用于Windows、UNIX等各种系统平台。
总的来说,该软件有三大特点。
一是功能强大。
具有数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算等功能;
二是界面友善、语言自然。
MATLAB以复数处理作为计算单元,指令表达与标准教科书的数学表达式相近;
三是开放性强。
当学好MATLAB的同时,会更好的帮助自己去就解决一些难题,而且MATLAB拥有非常好的发展前途,对我们未来的帮助也是不可限量的。
二数字信号处理的基本理论与方法
2.1设计理论依据
图2.1原理示意图
2.1.1采样定理
在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:
fs.max>
=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;
采样定理又称奈奎斯特定理:
理想低通信道的最高大码元传输速率=2W*log2N(其中W是理想低通信道的带宽,N是电平强度)
2.1.2采样频率
采样频率(也称为采样速度或者采样率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。
采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。
采样频率只能用于周期性采样的采样器,对于非周期性采样的采样器没有规则限制。
采样频率的常用的表示符号是f_s。
2.1.3采样位数与采样频率
采样位数可以理解为声卡处理声音的解析度。
这个数值越大,解析度就越高,录制和回放的声音就越真实。
电脑中的声音文件是用数字0和1来表示的,所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。
反之,在播放时则是把数字信号还原成模拟声音信号输出。
采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。
采样位数和采样频率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。
无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。
每增加一个采样位数相当于力度范围增加了6dB。
采样位数越多则捕捉到的信号越精确。
采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确。
三利用MATLAB采集语言信号并分析
3.1语音的录入与打开
利用MATLAB中的wavread命令来读入(采集)语音信号,将它赋值给某一向量。
再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波。
对于波形图与频谱图(包括滤波前后的对比图)都可以用MATLAB画出。
我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。
[y,fs,bits]=wavread('
Blip'
[N1N2]),用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。
[N1N2]表示读取从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)。
sound(x,fs,bits);
用于对声音的回放。
向量y则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。
3.2录制语音信号过程
打开PC机上的酷狗音乐,用鼠标右击播放列表中的任意一首歌曲,在弹出的下拉列表中单击工具,在工具栏选择制作铃声,然后显示如图3.1所示的界面,点击添加歌曲,选择一首喜欢的歌,设置起点和终点,并将格式转换为WAV格式,最后进行保存且与所写的程序对应,语音录音完成。
图3.1录制语音信号图
3.3时域信号的FFT分析
函数的一种调用格式为:
y=fft(x)(3.1)
其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。
且和x相同长度。
若x为一矩阵,则y是对矩阵的每一列向量进行FFT。
如果x长度是2的幂次方,函数fft执行高速基-2FFT算法;
否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。
函数FFT的另一种调用格式为:
y=fft(x,N)(3.2)
式中,x,y意义同前,N为正整数。
函数执行N点的FFT。
若x为向量且长度小于N,则函数将x补零至长度N。
若向量x的长度大于N,则函数截短x使之长度为N。
若x为矩阵,按相同方法对x进行处理。
经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。
MATLAB提供求复数的幅值和相位函数:
abs,angle,这些函数一般和FFT同时使用。
四用MATLAB环境采用窗函数法设计数字滤波器
4.1数字滤波器概念及原理
4.1.1数字滤波器概念
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
根据其单位冲激响应函数的时域特性可分为两类:
无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。
与IIR滤波器相比,FIR的实现是非递归的,总是稳定的;
更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。
因此,它在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。
4.1.2数字滤波器原理
数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。
数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。
数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
从性能上来说,IIR滤波器传输函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高。
但是这个高效率是以相位的非线性为代价的。
选择性越好,则相位非线性越严重。
相反,FIR滤波器却可以得到严格的线性相位,然而由于FIR滤波器传输函数的极点固定在原点,所以只能用较高的阶数达到高的选择性;
对于同样的滤波器设计指标,FIR滤波器所要求的阶数可以比IIR滤波器高5~10倍,结果,成本较高,信号延时也较大;
如果按相同的选择性和相同的线性要求来说,则IIR滤波器就必须加全通网络进行相位较正,同样要大增加滤波器的节数和复杂性。
整体来看,IIR滤波器达到同样效果阶数少,延迟小,但是有稳定性问题,非线性相位;
FIR滤波器没有稳定性问题,线性相位,但阶数多,延迟大。
4.2数字滤波器设计的过程
不论是IIR滤波器还是FIR滤波器的设计都包括三步:
(1)按照实际任务的要求,确定滤波器的性能指标。
(2)用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。
根据不同的要求可以用IIR系统函数,也可以用FIR系统函数去逼近。
(3)利用有限精度算法实现系统函数,包括结构选择、字长选择等。
4.3低通FIR滤波器基本原理
设计低通FIR数字滤波器,寻求一系统函数
,使其频率响应
逼近滤波器要求的理想频率响应
,其对应的单位脉冲响应
(3)
其中(4.1)
如果所希望的滤波器的理想的频率响应函数为
,则其对应的单位脉冲响应该为
(4.2)窗函数设计法的基本原理是用有限长单位脉冲响应序列
逼近
。
由于
往往是无限长序列,而且是非因果的,所以用窗函数
将
截断,并对之进行加权处理,得到:
(4.3)
就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数
为
(4.4)
式中,N为所选窗函数
的长度。
4.4利用窗函数法设计线性相位FIR数字滤波器
4.4.1常用窗函数
(l)矩形窗
矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。
这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。
(2)三角窗
三角窗亦称费杰(Fejer)窗,是幂窗的一次方形式,三角窗与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣
(3)汉宁窗
汉宁(Hanning)窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和,它可以使用旁瓣互相抵消,消去高频干扰和漏能。
汉宁窗与矩形窗的谱图对比,可以看出,汉宁窗主瓣加宽(第一个零点在2π/T处)并降低,旁瓣则显著减小。
第一个旁瓣衰减一32dB,而矩形窗第一个旁瓣衰减-13dB。
此外,汉宁窗的旁瓣衰减速度也较快,约为60dB/(10oct),而矩形窗为20dB/(10oct)。
由以上比较可知,从减小泄漏观点出发,汉宁窗优于矩形窗。
但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。
(4)海明窗
海明(Hamming)窗也是余弦窗的一种,又称改进的升余弦窗,海明窗与汉宁窗都是余弦窗,只是加权系数不同。
海明窗加权的系数能使旁瓣达到更小。
分析表明,海明窗的第一旁瓣衰减为-42dB。
海明窗的频谱也是由3个矩形时窗的频谱合成,但其旁瓣衰减速度为20dB/(10oct),这比汉宁窗衰减速度慢。
海明窗与汉宁窗都是很有用的窗函数。
除了以上几种常用窗函数以外,尚有多种窗函数,如平顶窗、帕仁(Parzen)窗、布拉克曼(Blackman)窗、凯塞(kaiser)窗等。
对于窗函数的选择,应考虑被分析信号的性质与处理要求。
如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用主瓣宽度比较窄而便于分辨的矩形窗,例如测量物体的自振频率等;
如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;
对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。
4.4.2MATLAB窗函数的实现
利用MATLAB实现窗函数法设计FIR滤波器,主要是选择合适的窗函数进行截断运算。
先从理论上得到待逼近理想滤波器的单位脉冲响应,再由通带、阻带衰减指标确定窗函数类型,由过渡带确定FIR滤波器阶数M,最后利用MATLAB计算出窗函数的值,以及hd[k]Wn[k]的值,由此即得所设计的FIR滤波器的h[k]。
MATLAB提供了许多常用的窗函数,其中部分窗函数的调用形式为
W=hanning(N)(4.5)
其中N是窗函数的长度,返回的变量w是一个长度为N的列向量,给出窗函数N点的取值。
4.5利用hanning窗设计低通滤波器
汉宁窗函数是余弦平方函数,又称之为升余弦函数,它的时域形式可以表为:
(4.6)
其中
它的频域幅度特性函数为:
(4.7)
其中
为矩形窗函数的幅度频率特性函数。
汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了一倍为汉宁窗函数的时域幅度与频域幅度特性曲线的MATLAB实现的曲线图如图4.1所示
图4.1滤波器幅频特性及相频特性
五设计过程
5.1流程图
本课程设计主要是先采集一段语音信号,然后对信号进行采集,预调制,并通过进行编写函数加入高斯白噪声噪声,然后采用汉宁窗函数法设计FIR低通滤波器,并且对这段加入噪声的语音信号函数进行滤波去噪,达到信号不失真的效果。
最后用MATLAB程序画出前后时域和频域的波形图进行对比分析。
对于整个课程设计,程序的设计流程图如下图5.1所示:
图5.1程序设计流程图
5.2语音信号的处理过程
录入语音信号,并用MATLAB程序绘出语音信号波形,然后对语音信号截短并与处理,对比信号波形图如图5.2所示。
给语音信号加入高斯白噪声噪声,观察其波形变化,并可在程序中用sound语句听出加噪后的语音。
最后用汉宁窗函数法设计的FIR低通滤波器将噪声滤除,对比语音信号、加噪后的语音信号、滤波后的语音信号的波形图,观察其变化如图5.3所示。
图5.2语音信号波形图
图5.3信号处理波形图
5.3信号频谱分析
根据对原始语音信号截短、预处理,加入高斯白噪声噪声以及用滤波器滤波的波形图分析其对应的频谱图,并将这些频谱加以比较,可以看出,加噪之后出现高频,语音失真,而用汉宁窗设计的FIR低通滤波器对语音信号进行滤波处理,可以滤除语音信号的高频成分,只剩下低频成分。
并且将滤波前后的频谱图对比可知,高频成分的频谱幅度接近于0,即滤除了高频成分,达到了不失真的效果。
对语音信号的频谱分析如图5.4所示:
图5.4信号频谱分析图
5.4信号的脉冲响应
单位脉冲响应即为系统对单位脉冲的响应。
脉冲响应确定一个线性系统的特性,包含有与频率域中的传输函数相同的信息,而传输函数是脉冲响应的傅立叶变换。
线性系统的输出由系统的输入与它的脉冲响应的卷积给出。
本次课程设计单位脉冲响应由汉宁窗给出,如图5.5所示:
图5.5单位脉冲响应
设计总结
然后对该语音信号加入高斯白噪声噪声,观察加噪后的波形及其频谱图,观察噪声对语音信号的影响。
在此次课程设计中,以WindowsXP系统为操作平台,以MATLAB为程序设计的操作软件
在此次课程设计过程中,我们学会了语音录制的各种方法,如在酷狗等音乐盒中对语音信号截取,或在电脑上用录音机对语音信号进行录制,或在MATLAB软件上对语音信号进行录制。
同时我们又复习了一次以前学过的知识,如语音信号的采集,各种窗函数的性能以及各种滤波器的优劣,并且我们又学会更多MATLAB程序的编写知识。
让我们学会如何综合运用这些知识,并把这些知识运用于实践当中,使所学知识在综合运用能力上以及分析问题、解决问题能力上得到进一步的发展,让自己对这些知识有更深的了解。
参考文献
[1]丁玉美.数字信号处理[M].西安电子科技大学出版社,2003,3.
[2]朱冰莲.数字信号处理[M].电子工业出版社,2003,7.
[3]程佩青.数字信号处理教程(第二版)[M].北京:
清华大学出版社,2001.
[4]韩纪庆,张磊,郑铁然.语音信号处理[M].北京:
清华大学出版社,2004.
[5]陈后金.数字信号处理(第二版).高等教育出版社.2008,3
[6]张文.基于MATLAB的语音信号的滤波与实现[J].山西电子技术.2008,2
[7]徐靖涛.基于MATLAB的语音信号分析与处理[J].重庆科技学院学报2008,1
[8]
薛山.MATLAB基础教程.清华大学出版社,2011.
[9]
陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用.电子工业出版社,2003.
[10]
陈怀琛.数字信号处理教程—MATLAB释义与实现.电子工业出版社,2004.
[11]
李娟.MATLAB平台下的FIR数字滤波器设计与分析.高师理科学刊,2010,第03期.
致谢
经过两个星期的课程设计,使我们加强了动手、思考和解决问题的能力。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
这次课程设计也让我体会到同学及老师间交流以及团队工作的重要性。
团队需要个人,个人也离不开团队,只有彼此间认真交流、协作,才能让每个人的思维更加开阔,使没个人的设计更加完善。
三人行,必有我师焉。
交流也能让我们学到其他方面的东西,也能增加同学间以及师生间的距离。
在我们师生认真努力下,此次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在同学的交流以及老师的辛勤指导下,终于迎刃而解,我们学也到很多实用的知识,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅。
在此,感谢老师的细心指导!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 窗函数法设计低通滤波器 函数 设计 滤波器
![提示](https://static.bdocx.com/images/bang_tan.gif)