1、2.4 FIR数字滤波器的一般设计步骤: 53MATLAB仿真设计 64主要程序 75仿真结果图 116总结 13参考资料 14摘要 :数字滤波器在图像处理、数据传输等场合具有广泛应用,其设计是信号处理的核 心问题之一,软件实现数字滤波优势体现在滤波器参数的改变伴随滤波器性能的改变.阐述了数字滤波器的设计方法,讨论了线性相位的条件和幅度特性,并以窗函数在 MATLAB软件中实现了滤波器的仿真设计。仿真表明,借助计算机软件设计数字滤波器的 过程简便易行,滤波性能指标均能达到指定的要求!对数字滤波器的推广应用有一定的 促进作用。关键词: 数字滤波器;MATLAB;窗函数;高通滤波1数字滤波器简介数
2、字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又 广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速 发展,数字信号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里,数字 信号处理已经在通信等领域得到极为广泛的应用。数字滤波器的种类很多,从功能上我们可以将其分为低通、高通、带通和带阻等滤 波器(输入输出都为数字的滤波器称之为数字滤波器)数字滤波器是通过一定运算关系 改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。(数字滤波器从 单位脉冲响应分类,可以分为无限脉冲响应(HR)滤波器和有限脉冲响应(
3、FIR)滤波 器(由数字信号处理的一般理论可知,IIR滤波器的特征是具有无限持续时间的冲激响 应,而FIR滤波器的冲激响应只能持续一定的时间。2 FIR数字滤波器设计2. 1 FIR数字滤波器的原理FIR滤波器的传递函数为:H(Z) = KQ = ;i()zF(2T)X(Z)企可得FIR滤波器的系统系数差分方程,当FIR滤波器的系数满足下列中心对称条件时:b (n) =b (N-1-n)或 b (n) =-b (N 一 1 一 n) (2一2)线性相位滤波器的相位滞后和延迟在整个频带上是相等且不变的。对于一个N阶的 线性相位FIR滤波器,群延迟为常数,即滤波后的信号简单地延迟常数个时间步长。这
4、 一特性使通带频率内信号通过滤波器后仍保持原有波形形状而无相位失真。2. 2设计工具在MATLAB中有三种方法可以实现设计FIR数字滤波器:程序设计法、FDATool设计 法和SPTool设计法,程序设计法具有设计简便、可移植性强等特点,故在本设计中采 用的是程序设计法。而在程序设计方法中,又有很多方法可以实现FIR滤波器的设计, 如窗函数设计法、频率采样设计法和最优化设计法等,这些方法都比较快捷方便,其中 最常用的是窗函数设计法。2. 3用窗函数法设计FIR数字滤波器设所希望设计的滤波器传输函数为Hid), h (n)是与其对应的单位脉冲响应,因此.7Thd(n)= v- 1 HXedw由已
5、知的求出h(n),经过Z变换可得到滤波器的系统函数。但一般情况下,H(elw)是逐段稳定的,在边界频率处有不连续点,因而h(n)是无限时宽的,且是非因果序列(但是从实现的角度来说,我们希望得到一个长度为Z的线性相位滤波器,因此 只能通过对h (n)进行加窗得出。窗函数设计滤波器的基本思想,就是根据给定的滤波器技术指标,选择滤波器的阶 数N和合适的窗函数w(n)。即用一个有限长度的窗口函数序列w(n)来截取一个无限长 的序列h(n)获得一个有限长序列h(n),即H(n)=h(n)*w(n),这样我们用一个有限长的序 列H(n)去代替h(n),肯定会引起误差,表现在频域就是通常所说的吉布斯效应该效
6、应 引起通带内和阻带内的波动性,尤其使阻带的衰减小,影响滤波器的性能。为了减小吉布斯效应,从原理上来说可以通过加大N,但实验表明,加大N虽然可以 使H(w)过渡带变窄,但对带内波动以及阻带衰减并没有多大的影响。因此,我们希望能 找到不同的窗函数,使其主瓣包含更多的能量,同时旁瓣幅度减小,从而使通带阻带 波动减小,加大阻带衰减。工程实际中常用的窗函数有6种,即矩形窗、三角形窗、汉宁窗、哈明窗、布莱克 曼窗和凯泽窗,不同窗函数的过渡带和阻带衰减特性有所不同。2.3. 1常用窗函数1 汉宁(Hanning)窗汉宁窗函数的时域形式表示为:(3T) w(n) = 0.5-0.5cos(), /? = 0
7、,1,2,2V-1 N-1频域形式为(3-2)W(J)0.5Ws(y) + 0.25 Ws(-) + Ts( + ) je 2汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽 度增加了 1倍,为8ji/Nohanning函数:生成汉宁窗调用方式:(1)w = hanning(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成 的n阶向量。注意:此函数不返回是零点的窗函数的首尾两个元素。(2)w = hanning(n, symmetric):与上面相类似。(3)w = hanning(n, periodic此函数返回包括为零点的窗函数的首尾两个元素。图2.
8、3. 1汉宁窗及其频谱特性2 汉明(Hamming)窗:函数的时域形式可以表示为w伙)=0.54 - 0.46cos27t k = ,2,N (3-3)频域形式为:= 0.54IVr(o) + 0.23 WR(a- + %仏 + 二叮(3-4) N-1 丿 N-1 丿其中,叫为矩形窗函数的幅度频率特性函数。海明窗函数的最大旁瓣值比主瓣值低41dB,但它和汉宁窗函数的主瓣宽度是一样 大的。Hamming函数:生成海明窗调用方式(1)w = hamming(n):输出参数w是由窗函数的值组 成的n阶向量。(2)w = hamming (n, sflag):参数sflag用来控制窗函数首尾的两个元素
9、值;其取值为 symmetric 或 periodic; 默认值为 symmetrico3布莱克曼窗函数的时域形式可以表示为w(灯=0.42-0.5cos2兀 一) + 0.08cos4兀 一j k = ,2,N (3-5)它的频域特性为= 0.42 WR(a) + 0.25 WR27TCD N 1+啲+語+ 0.04 叭4兀G) N(3-6)其中,肥为矩形窗函数的幅度频率特性函数。布莱克曼窗函数的最大旁瓣值比主瓣值低57dB,但是主瓣宽度是矩形窗函数的主 瓣宽度的3倍,为12jr/NoBlackman函数:(1)w = blackman (n):输出参数w是由窗函数的值 组成的n阶向量。(2
10、)w = blackman (n, sflag):其取值 为 symmetric 或 periodic; 默认值为 symmetric图2. 3.2布莱克曼窗及其频谱特性2.4 FIR数字滤波器的一般设计步骤:(1)按照任务要求确定滤波器的指标;(2)用因果稳定的离散线性时不变系统的系统函数逼近这一性能指标要求;(3)利用有限精度算法实现该系统函数,包括选择运算结构、适当的字长和有效位处理的方法;(4)进行实际技术实现,常采用软件、硬件或者软硬件结合的方法实现。3MATLAB仿真设计本文的设计利用MATLAB的FDAtool采用窗函数法来设计语音高通数字滤波器。在MATLAB command窗
11、口下,执行fdatool命令,将会出现如下窗口M filter Design & Analysis Tool - untitled.fdaFile Edit Analysis Targets View Window Help 0$ Q 3 Qi 炉 0QX O E 4-Ej-IOSS 粉Frter Specifications.Response Type _ Filter Order Q |LowpassC Specify order: pOr |HighpassC BandpassC Bandstop( hArwnum orderl Options 广 |Differertiator Zal
12、gn Mother!Density Factor: 20|ButterworthQ FIR |EquirippleFrequency Specifications _ Magnitude Specifications 5it$: |H2Units: |dBFs:(48000Apass |1Fpass|9600AstopFstop12000-步骤如下:选择一段时间较短的单声道音频,用计算机windows附件中的录音机将其他格式的 语音转换成。Wav格式并命名为gaot保存到MATLAB的work文件夹中,也可以自行创建 work文件夹。用MATLAB中的wavread ()函数将.wav语音转换
13、成数组格式数据,用 wavwrite ()函数将数组格式数据转换成.wav格式语音,利用MATLAB的FDAtool工具 设计所需FIR滤波器系数h(n)。由于本文实验所用音频录制时的抽样频率为44. lkH, 所以在设计h (n)系数E1寸应采用44. lkH,其他参数设置为,Response选择 Highpass, Design选择FIR的window通过频率Fp=44. 5kH,截止频率Fs=20kH.将设计好 的高通滤波器系数导出到工作空间,命名为higho4主要程序xl, fsl, bitsl=wavread(,F: MATLAB 课程设计workSHE. wav,);%sounds
14、c (xl, fsl);x2, fs2, bits2=wavread(,F: MATLAB 课程设计workHighpass. wav);%soundsc(x2, fs2);figure (1)subplot (2, 1, 1);plot(xl) %做原始语音信号以44. Ik采样后的时域图形titleC原始语音采样后时域信号);xlabel (时间轴 n,);ylabel (,幅值 Asubplot (2, 1, 2);plot (x2) %做加噪声语音信号以44. Ik采样后的时域图形title (加噪声语音采样后时域信号pause;Xl=fft (xl, 4096);figure (2)
15、f=fsU (0:2047)/4096;plot(f, abs(XI (1:2048);titlef原始信号频谱X2=fft(x2, 4096);plot(f, abs(X2 (1:titleC加噪声信号频谱 pause;% fs3=44100;% fpl=250;fp2=7500;% fsl=180;fs2=7570;% As=60;% Wsl=(fpl+fsl)/fs3;Ws2=(fp2+fs2)/fs3;% w=(fpl-fsl)/fs3;% M=ceil (As-7. 95) / (14. 36*w);% window=boxcar(M+l);% %window=hamming(M+l
16、);% %window=blackman(M+l);% b, a=firl (M, Wsl, Ws2, window):% figure (3)% plot(b);%设定采样频率%第一截止频率%第二截止频率%最小阻带衰减%截止频率归一化处理%求归一化过渡带%计算所需滤波器的阶数%生成长度为M+1的矩形窗%生成长度为M+1的汉宁窗%生成长度为M+1的布莱克曼窗%生成设计的fir滤波器% pause:% figure(4)% freqz (b) ; %绘制幅频和相频响应曲线%wpl=0. 007*pi; wsl=0. 017*pi;%tr_width=wsl-wpl;%M=ceil(6. 6*pi
17、/tr width)+1;%wcl= (wsl+wpl) /2; % 求截止频率%求过渡带宽度%求得所需窗函数的长度%hd=ideal_hpl(wcl, M);%w_ham=(hamming(M);%h=hd . * w ham:%求得理想带阻的冲击响应%得到长度为M的汉宁窗%利用窗函数截短%figure(3) %freqz(hd);%figure(4)%freqz(h);%理想高通滤波器的幅频响应频谱%加窗之后的幅频响应频谱%pause;wpl=0. 007*pi; wsl=0.017*pi;tr_width二wslwpl;M=ceil(6. 6*pi/tr_width)+1; wcl=(w
18、sl+wpl)/2; hd=ideal_hpl (wcl, M); w_ham= (blackman (M);h=hd . * w_ham;%求截止频率%得到长度为M的布莱克曼窗figure (3) freqz(hd);figure (4) freqz(h);f2=filter (h, 1, x2);FO=fft(f2, 4096);figure (5)subplot (3, 1, 1); subplot (3, 1, 2); title (滤波前的频谱) xlabel ( Hz,);ylabel ( fuzhisubplot (3, 1, 3)plot(f, abs(F0 (1: title
19、f滤波后的频谱figure (6) subplot (2, 1, 1);plot(f2) %做滤波之后语音信号以44. Ik采样后的时域图形titleC滤波之后语音采样后时域信号sound (xl, 44100);sound (f2, 44100) ; %播放滤波后的语音信号functionhd二ideal_hpl(Wc, N)%compute the ideal highpassfiter unit pulse respondencehd(n)%wc: cutoff frequency%N: window length%hd: unit pulse respondencealpha=(N-l
20、)/2;n=0:1:N-1;m=n-alpha+eps;hd=sin(pi*m)-sin(Wc*ni) / (pi*ni);5仿真结果图原始信号频谱0.5 1 1.5280604020加噪声信号频谱2.54x10600.5 11.5x 100.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1Normalized Frequency (xji rad/sample)o o-2 bp) apn-Ebew(sasBap) as_2do -6Normalized Frequency (xti rad/sample)50o0.5滤波前的频谱103 400o5C1 1.5Hz滤波后的频谱一l
21、lza1x 104原始语音采样后时域信号5 0 5o.0 1.5 2时间轴n5 0.50.5 1 1.5 2 2.5 3 3.5时间轴n %滤波之后语音采样后时域信号6总结一周的课程设计,感觉收获很多,刚开始接到设计任务书,不懂得从何处下手,同 时发现自己以前学的知识基本忘了差不多,比如FIR滤波器的具体概念,还有高通的意 田竺竺J Hl -vj* O面对这么多问题,我首先认真回忆了这些知识在哪学过,然后找到相应的书籍认真 的复习的一遍,当然还不够理解这些概念,然后在网上查一些资料,借鉴了 FIR滤波器 设计的基本过程,加深了自己的理解。通过这个过程,我深刻认识了读书心存志远,实 践悟出真知。只有自己去思考了,动手了才能对这个知识的深入理解。当然,在此次课程设计还有很多知识是我新接触的,这个过程我成长了很多。这些 知识不仅在课堂上有效,对以后的学习也有很大的指导意义,在日常生活中更是有着现 实意义;也对自己的动手能力是个很大的锻炼。实践出真知,纵观古今,所有发明创造 无一不是在实践中得到检验的。没有足够的动手能力,就奢谈在未来的科研尤其是实验 研究中有所成就。总的来说,对这次的课程设计很满意,因为我真正的学到了很多,对自己也认识了 其中的不足,知道接下去该如何补充自己了,永远不要停止学习的脚步。参考资料3 3.5x105
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1