《IIR数字滤波器和FIR数字滤波器的设计》由会员分享,可在线阅读,更多相关《IIR数字滤波器和FIR数字滤波器的设计(29页珍藏版)》请在金锄头文库上搜索。
1、数字信号处理课程是一门理论性和实践性都很强, 它具备高等代数、数值分析、概率统计、随机过程等计算学科的知识; 要求我们学生掌握扎实的基础知识和理论基础。 又是跟其他学科密切相关,即与通信理论、计算机、微电子技术不可分,又是人工智能、模式识别、神经网络等新兴学科的理论基础之一。本次数字滤波器设计方法是基于 MATLAB 的数字滤波器的设计。此次设计的主要内容为: IIR 数字滤波器 和 FIR 数字滤波器的设计关键词:IIR、FIR、低通、高通、带阻、带通AbstractDigital Signal Processing is a theoretical and practical nature
2、 are strong, and it has advanced algebra and numerical analysis, probability and statistics, random process such as calculation of discipline knowledge; requires students to acquire basic knowledge and a solid theoretical basis. Is closely related with other subjects, namely, and communication theor
3、y, computers, microelectronics can not be separated, but also in artificial intelligence, pattern recognition, neural network theory one of the emerging discipline. The digital filter design method is based on MATLAB for digital filter design. The main elements of design: IIR and FIR digital filter
4、design of digital filter Key Words: IIR, FIR, low pass, high pass, band stop, band pass目录一、 前言 3二、 课程设计的目的 3三、 数字信号处理课程设计说明及要求 3四、 滤波器的设计原理 44.1 数字滤波器简介 44.2 IIR 滤波器的设计原理 44.3 FIR 滤波器的设计原理 54.4 FIR 滤波器的窗函数设计法 6五、 设计内容 65.1 设计题目: 65.2 设计程序代码及结果: 7六、 结束语 15七、 参考文献 16一、 前言数字信号处理(Digital Signal Processi
5、ng,简称 DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。二、 课程设计的目的1) 三、 数字信号处理课程设计说明及要求所需硬件:PC 机四、 滤波器的设计原理4.1 数字滤波器简介数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号
6、的某些特定的频率成分进行过滤,这就是滤波器的基本原理。如果系统是一个连续系统,则滤波器称为模拟滤波器。如果系统是一个离散系统,则滤波器称为数字滤波器。信号 通过线性系统后,其输出 就是输入信号 和系统冲激响应 的卷积。除了 外, 的波形将不同于输入波形 。从频域分析来看,信号通过线性系统后,输出信号的频谱将是输入信号的频谱与系统传递函数的乘积。除非 为常数,否则输出信号的频谱将不同于输入信号的频谱,某些频率成分 较大的模,因此, 中这些频率成分将得到加强,而另外一些频率成分 的模很小甚至为零, 中这部分频率分量将被削弱或消失。因此,系统的作用相当于对输入信号的频谱进行加权。4.2 IIR 滤波
7、器的设计原理IIR 数字滤波器的设计一般是利用目前已经很成熟的模拟滤波器的设计方法来进行设计,通常采用模拟滤波器原型有 butterworth 函数、chebyshev 函数、bessel 函数、椭圆滤波器函数等。IIR 数字滤波器的设计步骤:(1) 按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标;(2) 根据模拟滤波器技术指标设计为响应的模拟低通滤波器;(3) 很据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器;(4) 如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤波器,最后通过频率转换的方法来得
8、到所要的滤波器。4.3 FIR 滤波器的设计原理FIR 滤波器通常采用窗函数方法来设计。窗设计的基本思想是,首先选择一个适当的理想选频滤波器(它总是具有一个非因果,无限持续时间脉冲响应),然后街区(加窗)它的脉冲响应得到线性相位和因果 FIR 滤波器。我们用Hd(ejw)表示理想的选频滤波器,它在通带上具有单位增益和线性相位,在阻带上具有零响应。一个带宽 wcpi 的低通滤波器由下式给定:为了从 hd(n)得到一个 FIR 滤波器,必须同时在两边截取 hd(n)。而要得到一个因果的线性相位滤波器,它的 h(n)长度为 N,必须有:这种操作叫做加窗,h(n)可以看做是 hd(n)与窗函数 w(n
9、)的乘积:h(n)=hd(n)w(n)其中根据 w(n)的不同定义,可以得到不同的窗结构。在频域中,因果 FIR 滤波器响应 H(ejw)由 Hd(ejw)和窗响应 W(ejw)的周期卷积得到,即 常用的窗函数有矩形窗、巴特利特(BARTLETT)窗、汉宁(HANNING)窗、海明(HAMMING)窗、布莱克曼(BLACKMAN)窗、凯泽(KAISER)窗等。4.4 FIR 滤波器的窗函数设计法FIR 滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:(1) 通过傅里叶
10、逆变换获得理想滤波器的单位脉冲响应 hd(n)。(2) 由性能指标确定窗函数 W(n)和窗口长度 N。(3) 求得实际滤波器的单位脉冲响应 h(n), h(n)即为所设计 FIR 滤波器系数向量 b(n)。五、 设计内容5.1 设计题目:1-1.试用 MATLAB 设计一巴特沃斯低通数字滤波器,要求通带截至频率Wp=30HZ,主带截至频率为 Ws=35HZ,通带衰减不大于 0.5DB,主带衰减不小于40DB,抽样频 Fs=100HZ。1-2基于 Butterworth 模拟滤波器原型,使用双线性状换设计数字滤波器:各参数值为:通带截止频率 Omega=0.2*pi,阻带截止频率 Omega=0
11、.3*pi,通带波动值 Rp=1dB,阻带波动值 Rs=15dB,设 Fs=20000Hz。1-3 设计一巴特沃斯高通数字滤波器,要求通带截止频率 0.6*pi,通带衰减不大于 1dB,阻带衰减 15DB,抽样 T=1。1-4.设计一巴特沃斯带阻数字滤波器,要求通带上下截至频率为0.8*PI、0.2*PI,通带衰减不大于 1DB,阻带上下截至频率 0.7*PI、0.4*PI 阻带衰减不小于 30DB, 2-1.用窗函数法设计一个线性相位 FIR 低通滤波器,并满足性能指标:通带边界频率Wp=0.5*pi,阻带边界频率 Ws=0.66*pi,阻带衰减不小于 40dB,通带波纹不大于3dB。选择汉
12、宁窗。2-4用海明窗设计一个 FIR 滤波器,其中 Wp=0.2*pi,Ws=0.3*pi,通带衰减不大于 0.25dB,阻带衰减不小于 50dB。5.2 设计程序代码及结果:1-1 一.试用 MATLAB 设计一巴特沃斯低通数字滤波器,要求通带截至频率Wp=30HZ,阻带截至频率为 Ws=35HZ,通带衰减不大于 0.5DB,阻带衰减不小于40DB,抽样频 Fs=100HZ。代码为:fp = 30;fs = 35;Fs = 100;wp = 2*pi*fp/Fs;ws = 2*pi*fs/Fs;wp = tan(wp/2);ws = tan(ws/2); % 通带最大衰减为 0.5dB,阻带
13、最小衰减为 40dBN, wn = buttord(wp, ws, 0.5, 40, s); % 模拟低通滤波器极零点z, p, k = buttap(N); % 由极零点获得转移函数参数b, a = zp2tf(z, p, k); % 由原型滤波器获得实际低通滤波器B, A = lp2lp(b, a, wp); bz, az = bilinear(B, A, .5);h, w = freqz(bz, az, 256, Fs);figureplot(w, abs(h)grid on图 1 巴特沃斯数字低通滤波器1-2 基于 Butterworth 模拟滤波器原型,使用双线性状换设计数字滤波器:
14、各参数值为:通带截止频率 Omega=0.2*pi,阻带截止频率 Omega=0.3*pi,通带波动值 Rp=1dB,阻带波动值 Rs=15dB,设 Fs=4000Hz。代码:wp=0.2*pi;ws=0.3*pi;Fs=4000;T=1/Fs; OmegaP=(2/T)*tan(wp/2);OmegaS=(2/T)*tan(ws/2);rp=1;rs=15;as=15;ripple=10(-rp/20);attn=10(-rs/20);n,wn=buttord(OmegaP,OmegaS,rp,rs,s);z,p,k=Buttap(n);b,a=zp2tf(z,p,k);bt,at=lp2l
15、p(b,a,wn);b,a=bilinear(bt,at,Fs);db,mag,pha,grd,w=freqz_m(b,a);%下面绘出各条曲线subplot(2,2,1);plot(w/pi,mag);title(Magnitude Frequency 幅频特性);xlabel(w(/pi);ylabel(|H(jw)|);axis(0,1,0,1.1);set(gca,XTickMode,manual,XTick,0 0.2 0.3 1);set(gca,YTickMode,manual,YTick,0 attn ripple 1);gridsubplot(2,2,2);plot(w/pi
16、,db);title(Magnitude Frequency 幅频特性(db);xlabel(w(/pi);ylabel(dB);axis(0,1,-30,5);set(gca,XTickMode,manual,XTick,0 0.2 0.3 1);set(gca,YTickMode,manual,YTick,-60 -as -rp 0);gridsubplot(2,2,3);plot(w/pi,pha/pi);title(Phase Frequency 相频特性);xlabel(w(/pi);ylabel(pha(/pi);axis(0,1,-1,1);subplot(2,2,4);plot(w/pi,grd);title(Group Delay 群延时);xlabel(w(/pi);ylabel