目录
1数字滤波器的设计 1.1滤波器的分类 1.2数字滤波器性能指标 1.3数字滤波器设计方法概述 1.4巴特沃斯滤波器
1.5用冲击响应不变法设计IIR 数字低通滤波器 1.6用双线性变换法设计IIR 数字低通滤波器 2 本次课程设计中相关MATLAB 函数 2.1循环结构for 语句 2.2 buttord函数 2.3 butter函数 2.4 freqz函数 2.5 impz函数 3程序设计及运行结果 4心得体会 5参考文献
5参考文献
[1]阙大顺. 数字信号处理学习指导与考研辅导. 武汉:武汉理工大学出版社,2007 [2]陈怀琛. MATLAB 及在电子信息课程中的应用(第2版). 北京:电子工业出版社,2003 [3]刘 泉. 数字信号处理原理与实现(第2版). 北京:电子工业出版社,2009 [4]郑阿奇.MARTLAB 实用教程(第2版). 北京:电子工业出版社,2007
[5]Emmanuel C. Ifeachor, Barrie W. Iervis. Digital Signal Processing, A Practical Approach (Second Edition). Publishing House of Electronics Industry,2003
1数字滤波器的设计 1.1滤波器的分类
按功能划分经典滤波器可分为低通、高通、带通、带阻四种滤波器。 按结构划分经典滤波器可分为递归系统、非递归系统。
按实现方法经典滤波器可分为无限长单位脉冲响应数字滤波器IIR 和有限长单位脉冲响应数字滤波器FIR 。 1.2数字滤波器性能指标
Ωp c s
图1 典型模拟低通滤波器幅频特性及其指标描述
Ωp 是通带边界频率,Ωc 是阻带边界频率,Ωs 是3db 截止频率。
用a p 表示通带最大衰减(或称为通带峰值波纹)
用表示阻带最小衰减(以分贝(dB)表示波纹)
1.3数字滤波器设计方法概述
设计IIR 数字滤波器一般有以下两种方法:
1、模拟滤波器:首先设计一个合适的模拟滤波器,然后将它转换成满足给定指标的数字滤波器,这种方法适合于设计幅频特性比较规则的滤波器,例如低通、高通、带通、带阻等。 2、直接在频域或者时域中进行数字滤波器设计,由于要联立方程,设计时需要计算机作辅助设计。
1.4巴特沃斯滤波器 1、基本性质
巴特沃斯滤波器以巴特沃斯函数来近似滤波器的系统函数。巴特沃斯滤波器是根据幅频特性在通频带内具有最平坦特性定义的滤波器。
巴特沃思滤波器的低通模平方函数表示
H a (jΩ)
2
=1+
1
(Ω/Ωc )
2Ω=0
2N
N=1,2,…… (式1.4.1)
下面归纳了巴特沃斯滤波器的主要特征 a 对所有的N ,H a b对所有的N ,Ha
(j Ω)
=1。
(j Ω)
2Ω=
=0. 707即20lg Ωc
H a (j Ω)Ω=Ω
=3dB
c
H a (j Ω)d H a (j Ω)
c
2
是Ω的单调下降函数。
随着阶次N 的增大而更接近于理想低通滤波器。
2
如下图2所示,可以看出滤波器的幅频特性随着滤波器阶次N 的增加而变得越来越好,在截止频率Ωc 处的函数值始终为1/2的情况下,通带内有更多的频带区的值接近于1;在阻带内更迅速的趋近于零。
图2 巴特沃思低通滤波平方幅频特性函数
2、系统函数
设巴特沃斯的系统函数为H a (s ),则:
3、设计过程
巴特沃思低通滤波技术指标关系式为 a p >-20log|Ha (jΩ)|,ΩΩs
其中:Ωp 为通带边界频率,Ωs 为阻带边界频率。代入式1.4.1可得:
经过化简整理可得:
取满足上式的最小整数N 作为滤波器的阶数。再将N 代入可得:
或
查表求得归一化传输函数H(s),令s/Ωc 代替归一化原型滤波器系统函数中的s, 即得到实际滤波器传输函数。
1.5用冲击响应不变法设计IIR 数字低通滤波器 1、 基本思想
1使数字滤波器能模仿模拟滤波的特性; ○
2从滤波器的脉冲响应出发,○使数字滤波器的单位脉冲响应序列h(n)正好等于模拟滤波器
的冲激响应ha(t)的采样值,即
h(n)=ha (nT), H(Z)=ZT[h(n)]
2、 设计方法
1由模拟滤波器设计理论得模拟滤波器系统函数H a (s)。 2取拉氏逆变换得模拟滤波器的单位冲激响应h a (t)。 3进行采样得h a (nT)。
4取Z 变换得数字滤波器传递函数H(Z)。
3、 优缺点分析
冲激响应不变法使得数字滤波器的h(n)能完全模仿模拟滤波器的h a (t),即时域逼近良好,而且数字频率与模拟频率之间是线性关系,因此频率之间不存在失真。但是使用冲击响应不变法存在频谱混叠失真,频谱混叠失真会使数字滤波器在ω=π附近的频率响应偏离模拟滤波器频响特性曲线,混叠严重时可使数字滤波器不满足阻带衰减指标。所以,脉冲响应不变法不适合设计高通和带阻滤波器。
1.6用双线性变换法设计IIR 数字低通滤波器 1、设计思想
脉冲响应不变法的主要缺点是产生频率响应的混叠失真。这是因为从S 平面到Z 平面是多值的映射关系所造成的。为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=e转换到Z 平面上。也就是说,第一步先将整个S 平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T 将此横带变换到整个Z 平面上去。这样就使S 平面与Z 平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象。 2、双线性变换公式
用双线性变换法直接将模拟滤波器系统函数H a(s ) 转换成数字滤波器系统函数H (z ) 的变换公式为:
3优缺点分析
双线性变换法与脉冲响应不变法相比,其主要的优点是避免了频率响应的混叠现象。这是因为S 平面与Z 平面是单值的一一对应关系。S 平面整个j Ω轴单值地对应于Z 平面单位圆一周,即频率轴是单值变换关系。但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,由于这种频率之间的非线性变换关系,产生了新的问题。首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数,不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变,
H (z ) =H a (s ) |
s =21-z T 1+z
-1-1
sT
2 本次课程设计中相关MATLAB 函数 2.1循环结构for 语句 基本格式
for 循环变量=起始值:步长:终止值 循环体 end
步长缺省值为1,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。循环结构可以嵌套使用。 2.2 buttord函数
(1)[N,wc]=buttord(wp,ws ,αp ,αs)
用于计算巴特沃斯数字滤波器的阶数N 和3dB 截止频率wc 。其中,调用参数wp ,ws 分别为数字滤波器的通带、阻带截止频率的归一化值,要求:0≤wp≤1,0≤ws≤1(1表示数字频率pi) 。当ws≤wp时,为高通滤波器;当wp 和ws 为二元矢量时,为带通或带阻滤波器,这时wc 也是二元向量。
αp ,αs 分别为通带最大衰减和组带最小衰减(dB )。 N,wc 为butter 函数的调用参数。
(2)[N,Ωc]=buttord(Ωp ,Ωs ,αp ,αs ,‘s’)
用于计算巴特沃斯模拟滤波器的阶数N 和3dB 截止频率Ωc 。其中,Ωp ,Ωs ,Ωc 均为实际模拟角频率。
说明:buttord 函数使用阻带指标计算3dB 截止频率,这样阻带会刚好满足要求,而通带会有富余。 2.3 butter函数
(1)[b,a]=butter(N ,wc ,‘ftype’)
计算N 阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b 、a 。其中,调用参数N 和wc 分别为巴特沃斯数字滤波器的阶数和3dB 截止频率的归一化值(关于pi 归一化),一般是调用buttord(1)格式计算N 和wc 。系数b 、a 是按照z 的升幂排列。
-1
(2)[B,A]=butter(N ,Ωc ,‘ftype’,‘s’)
计算巴特沃斯模拟滤波器系统函数的分子、分母多项式系数向量ba 、aa 。其中,调用参数N 和Ωc 分别为巴特沃斯模拟滤波器的阶数和3dB 截止频率(实际角频率) ,可调用buttord(2)格式计算N 和Ωc 。系数B 、A 按s 的正降幂排列。 tfype为滤波器的类型:
1ftype=high时,高通;Ωc 只有1个值。 ○
2ftype=stop时,带阻阻;此时Ωc=[Ωcl, Ωcu],分别为带阻滤波器的通带3dB 下○
截止频率和上截止频率。
3ftype 缺省时,若Ωc 只有1个值,则默认为低通;若Ωc 有2个值,则默认为带○
通;其通带频率区间Ωcl
所设计的带通和带阻滤波器系统函数是2N 阶。因为带通滤波器相当于N 阶低通滤波器与N 阶高通滤波器级联。 2.4 freqz函数 调用格式为:
[H,F] = freqz(B,A,N,Fs)
其中:B/A 提供滤波器系数, B为分子,A 为分母 ;
N 表示选取单位圆的上半圆等间距的N 个点作为频响输出; Fs 为采样频率,该参数可以省略
H 为N 个点处的频率响应复值输出向量,其模即为频响幅值曲线幅值20log10(abs(H))DB,其幅角angle(H)即为频响相位曲线相位值。
F 为与第N 点处对应的频率值f(Hz),如果Fs 参数省略时,则频率值w 为rad/sample,w = 2*pi*f/Fs
2.5 impz函数(Impz函数用来求数字滤波器的冲激响应)
(1)[h,t]=impz(b,a),其中,b ,a 分别为系统传递函数的分子和分母的系数向量;h 为系统的冲激响应和t 为相应的时间轴量。 (2)[h,t]=impz(b,a,n),用来计算n 点冲激响应
(3)[h,t]=impz(b,a,n,Fs),指定冲激相应相应采样点间隔1/Fs,Fs 为相对频率,默认为1 。
3程序设计及运行结果
(1)设计一个低通巴特沃斯模拟滤波器:指标如下:
通带截止频率:f p =3400HZ, 通带最大衰减:R p =3dB ; 阻带截至频率:f s =4000HZ,阻带最小衰减:A S =40dB。
解:利用MATLAB 工具箱中提供的设计模拟滤波器的函数:计算巴特沃斯滤波器阶次和截止频率的buttord 函数,计算低通巴特沃斯滤波器的butter 函数,计算滤波器频率响应的freqs 函数。MATLAB 实现程序如下所示: >> fp=3400; >> fs=4000; >> Rp=3; >> As=40;
>> [N,fc]=buttord(fp,fs,Rp,As,'s'); >> [B,A]=butter(N,fc,'s'); >> [hf,f]=freqs(B,A,1024);
>> plot(f,20*log10(abs(hf)/abs(hf(1)))) >> grid; >> xlabel('f/Hz'); >> ylabel('幅度(dB)'); 程序运行结果: N = 29 fc =
3.4127e+003
其频率特性曲线如下图3所示:
图 3 巴特沃斯模拟低通滤波器频率特性曲线
(2)模拟低通转换为数字低通滤波器已知一模拟滤波器的系数函数为 H a (s ) =
1000S +1000
分别用冲激响应不变法和双线性变换法将H a (s ) 转换成数字滤波器系统函数H (z ) ,并图示
H a (s ) 和 H (z ) 的幅度相应曲线。分别取采样频率F s =1000Hz 和F s =500Hz ,分析冲激响应法中存在的频率混叠失真和双线性变换法存在的非线性频率失真等。 解:其MATLAB 实现程序如下所示: >> b=1000; >> a=[1,1000]; >> w=[0:1000*2*pi]; >> [hf,w]=freqs(b,a,w); >> subplot(1,3,1); >> plot(w/2/pi,abs(hf)); >> grid; >> xlabel('f/Hz'); >> ylabel('幅度');
>> Fs0=[1000,500];
>> for m=1:2
Fs=Fs0(m);
[d,c]=impinvar(b,a,Fs); wd=[0:512]*pi/512; hw1=freqz(d,c,wd); subplot(1,3 ,2)
plot(wd/pi,abs(hw1)/abs(hw1(1))); hold on; end >> grid; >> xlabel('f/(Hz)');
>> text(0.52,0.88,'T=0.002s'); >> text(0.12,0.54,'T=0.001s'); >> for m=1:2 Fs=Fs0(m); [f,e]=bilinear(b,a,Fs); wd=[0:512]*pi/512; hw2=freqz(f,e,wd); subplot(1,3,3);
plot(wd/pi,abs(hw2)/abs(hw2(1))); hold on; end >> grid;
>> xlabel('f/(Hz)'); >> text(0.5,0.74,'T=0.002s'); >> text(0.12,0.34,'T=0.001s');
程序运行结果:
图 4 模拟滤波器到数字滤波器的转换
由图4可见,对冲击响应不变法,抽样频率越高(时间T 越小) ,混频越小;对双线性变换法,无频率混叠,但存在非线性失真。
(3)设计一个10阶的Butterworth 滤波器,通带为100~250Hz ,采样频率为1000Hz ,绘出滤波器的单位脉冲响应。
解:其MATLAB 实现程序如下所示:
>> fs=1000;
>> w=[100,250];
>> wn=w/(fs/2);
>> Nn=512;
>> [b,a]=butter(5,wn);
>> subplot(3,1,1)
>> freqz(b,a,Nn,fs)
>> n=[-10:80];
>> h=impz(b,a,n);
>> subplot(3,1,3)
>> stem(n,h);
>> xlabel('时间序号N');
>> ylabel('脉冲响应h');
>> title('脉冲响应');
程序运行结果:
图 5 10阶巴特沃斯滤波器
目录
1数字滤波器的设计 1.1滤波器的分类 1.2数字滤波器性能指标 1.3数字滤波器设计方法概述 1.4巴特沃斯滤波器
1.5用冲击响应不变法设计IIR 数字低通滤波器 1.6用双线性变换法设计IIR 数字低通滤波器 2 本次课程设计中相关MATLAB 函数 2.1循环结构for 语句 2.2 buttord函数 2.3 butter函数 2.4 freqz函数 2.5 impz函数 3程序设计及运行结果 4心得体会 5参考文献
5参考文献
[1]阙大顺. 数字信号处理学习指导与考研辅导. 武汉:武汉理工大学出版社,2007 [2]陈怀琛. MATLAB 及在电子信息课程中的应用(第2版). 北京:电子工业出版社,2003 [3]刘 泉. 数字信号处理原理与实现(第2版). 北京:电子工业出版社,2009 [4]郑阿奇.MARTLAB 实用教程(第2版). 北京:电子工业出版社,2007
[5]Emmanuel C. Ifeachor, Barrie W. Iervis. Digital Signal Processing, A Practical Approach (Second Edition). Publishing House of Electronics Industry,2003
1数字滤波器的设计 1.1滤波器的分类
按功能划分经典滤波器可分为低通、高通、带通、带阻四种滤波器。 按结构划分经典滤波器可分为递归系统、非递归系统。
按实现方法经典滤波器可分为无限长单位脉冲响应数字滤波器IIR 和有限长单位脉冲响应数字滤波器FIR 。 1.2数字滤波器性能指标
Ωp c s
图1 典型模拟低通滤波器幅频特性及其指标描述
Ωp 是通带边界频率,Ωc 是阻带边界频率,Ωs 是3db 截止频率。
用a p 表示通带最大衰减(或称为通带峰值波纹)
用表示阻带最小衰减(以分贝(dB)表示波纹)
1.3数字滤波器设计方法概述
设计IIR 数字滤波器一般有以下两种方法:
1、模拟滤波器:首先设计一个合适的模拟滤波器,然后将它转换成满足给定指标的数字滤波器,这种方法适合于设计幅频特性比较规则的滤波器,例如低通、高通、带通、带阻等。 2、直接在频域或者时域中进行数字滤波器设计,由于要联立方程,设计时需要计算机作辅助设计。
1.4巴特沃斯滤波器 1、基本性质
巴特沃斯滤波器以巴特沃斯函数来近似滤波器的系统函数。巴特沃斯滤波器是根据幅频特性在通频带内具有最平坦特性定义的滤波器。
巴特沃思滤波器的低通模平方函数表示
H a (jΩ)
2
=1+
1
(Ω/Ωc )
2Ω=0
2N
N=1,2,…… (式1.4.1)
下面归纳了巴特沃斯滤波器的主要特征 a 对所有的N ,H a b对所有的N ,Ha
(j Ω)
=1。
(j Ω)
2Ω=
=0. 707即20lg Ωc
H a (j Ω)Ω=Ω
=3dB
c
H a (j Ω)d H a (j Ω)
c
2
是Ω的单调下降函数。
随着阶次N 的增大而更接近于理想低通滤波器。
2
如下图2所示,可以看出滤波器的幅频特性随着滤波器阶次N 的增加而变得越来越好,在截止频率Ωc 处的函数值始终为1/2的情况下,通带内有更多的频带区的值接近于1;在阻带内更迅速的趋近于零。
图2 巴特沃思低通滤波平方幅频特性函数
2、系统函数
设巴特沃斯的系统函数为H a (s ),则:
3、设计过程
巴特沃思低通滤波技术指标关系式为 a p >-20log|Ha (jΩ)|,ΩΩs
其中:Ωp 为通带边界频率,Ωs 为阻带边界频率。代入式1.4.1可得:
经过化简整理可得:
取满足上式的最小整数N 作为滤波器的阶数。再将N 代入可得:
或
查表求得归一化传输函数H(s),令s/Ωc 代替归一化原型滤波器系统函数中的s, 即得到实际滤波器传输函数。
1.5用冲击响应不变法设计IIR 数字低通滤波器 1、 基本思想
1使数字滤波器能模仿模拟滤波的特性; ○
2从滤波器的脉冲响应出发,○使数字滤波器的单位脉冲响应序列h(n)正好等于模拟滤波器
的冲激响应ha(t)的采样值,即
h(n)=ha (nT), H(Z)=ZT[h(n)]
2、 设计方法
1由模拟滤波器设计理论得模拟滤波器系统函数H a (s)。 2取拉氏逆变换得模拟滤波器的单位冲激响应h a (t)。 3进行采样得h a (nT)。
4取Z 变换得数字滤波器传递函数H(Z)。
3、 优缺点分析
冲激响应不变法使得数字滤波器的h(n)能完全模仿模拟滤波器的h a (t),即时域逼近良好,而且数字频率与模拟频率之间是线性关系,因此频率之间不存在失真。但是使用冲击响应不变法存在频谱混叠失真,频谱混叠失真会使数字滤波器在ω=π附近的频率响应偏离模拟滤波器频响特性曲线,混叠严重时可使数字滤波器不满足阻带衰减指标。所以,脉冲响应不变法不适合设计高通和带阻滤波器。
1.6用双线性变换法设计IIR 数字低通滤波器 1、设计思想
脉冲响应不变法的主要缺点是产生频率响应的混叠失真。这是因为从S 平面到Z 平面是多值的映射关系所造成的。为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=e转换到Z 平面上。也就是说,第一步先将整个S 平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T 将此横带变换到整个Z 平面上去。这样就使S 平面与Z 平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象。 2、双线性变换公式
用双线性变换法直接将模拟滤波器系统函数H a(s ) 转换成数字滤波器系统函数H (z ) 的变换公式为:
3优缺点分析
双线性变换法与脉冲响应不变法相比,其主要的优点是避免了频率响应的混叠现象。这是因为S 平面与Z 平面是单值的一一对应关系。S 平面整个j Ω轴单值地对应于Z 平面单位圆一周,即频率轴是单值变换关系。但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,由于这种频率之间的非线性变换关系,产生了新的问题。首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数,不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变,
H (z ) =H a (s ) |
s =21-z T 1+z
-1-1
sT
2 本次课程设计中相关MATLAB 函数 2.1循环结构for 语句 基本格式
for 循环变量=起始值:步长:终止值 循环体 end
步长缺省值为1,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。循环结构可以嵌套使用。 2.2 buttord函数
(1)[N,wc]=buttord(wp,ws ,αp ,αs)
用于计算巴特沃斯数字滤波器的阶数N 和3dB 截止频率wc 。其中,调用参数wp ,ws 分别为数字滤波器的通带、阻带截止频率的归一化值,要求:0≤wp≤1,0≤ws≤1(1表示数字频率pi) 。当ws≤wp时,为高通滤波器;当wp 和ws 为二元矢量时,为带通或带阻滤波器,这时wc 也是二元向量。
αp ,αs 分别为通带最大衰减和组带最小衰减(dB )。 N,wc 为butter 函数的调用参数。
(2)[N,Ωc]=buttord(Ωp ,Ωs ,αp ,αs ,‘s’)
用于计算巴特沃斯模拟滤波器的阶数N 和3dB 截止频率Ωc 。其中,Ωp ,Ωs ,Ωc 均为实际模拟角频率。
说明:buttord 函数使用阻带指标计算3dB 截止频率,这样阻带会刚好满足要求,而通带会有富余。 2.3 butter函数
(1)[b,a]=butter(N ,wc ,‘ftype’)
计算N 阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b 、a 。其中,调用参数N 和wc 分别为巴特沃斯数字滤波器的阶数和3dB 截止频率的归一化值(关于pi 归一化),一般是调用buttord(1)格式计算N 和wc 。系数b 、a 是按照z 的升幂排列。
-1
(2)[B,A]=butter(N ,Ωc ,‘ftype’,‘s’)
计算巴特沃斯模拟滤波器系统函数的分子、分母多项式系数向量ba 、aa 。其中,调用参数N 和Ωc 分别为巴特沃斯模拟滤波器的阶数和3dB 截止频率(实际角频率) ,可调用buttord(2)格式计算N 和Ωc 。系数B 、A 按s 的正降幂排列。 tfype为滤波器的类型:
1ftype=high时,高通;Ωc 只有1个值。 ○
2ftype=stop时,带阻阻;此时Ωc=[Ωcl, Ωcu],分别为带阻滤波器的通带3dB 下○
截止频率和上截止频率。
3ftype 缺省时,若Ωc 只有1个值,则默认为低通;若Ωc 有2个值,则默认为带○
通;其通带频率区间Ωcl
所设计的带通和带阻滤波器系统函数是2N 阶。因为带通滤波器相当于N 阶低通滤波器与N 阶高通滤波器级联。 2.4 freqz函数 调用格式为:
[H,F] = freqz(B,A,N,Fs)
其中:B/A 提供滤波器系数, B为分子,A 为分母 ;
N 表示选取单位圆的上半圆等间距的N 个点作为频响输出; Fs 为采样频率,该参数可以省略
H 为N 个点处的频率响应复值输出向量,其模即为频响幅值曲线幅值20log10(abs(H))DB,其幅角angle(H)即为频响相位曲线相位值。
F 为与第N 点处对应的频率值f(Hz),如果Fs 参数省略时,则频率值w 为rad/sample,w = 2*pi*f/Fs
2.5 impz函数(Impz函数用来求数字滤波器的冲激响应)
(1)[h,t]=impz(b,a),其中,b ,a 分别为系统传递函数的分子和分母的系数向量;h 为系统的冲激响应和t 为相应的时间轴量。 (2)[h,t]=impz(b,a,n),用来计算n 点冲激响应
(3)[h,t]=impz(b,a,n,Fs),指定冲激相应相应采样点间隔1/Fs,Fs 为相对频率,默认为1 。
3程序设计及运行结果
(1)设计一个低通巴特沃斯模拟滤波器:指标如下:
通带截止频率:f p =3400HZ, 通带最大衰减:R p =3dB ; 阻带截至频率:f s =4000HZ,阻带最小衰减:A S =40dB。
解:利用MATLAB 工具箱中提供的设计模拟滤波器的函数:计算巴特沃斯滤波器阶次和截止频率的buttord 函数,计算低通巴特沃斯滤波器的butter 函数,计算滤波器频率响应的freqs 函数。MATLAB 实现程序如下所示: >> fp=3400; >> fs=4000; >> Rp=3; >> As=40;
>> [N,fc]=buttord(fp,fs,Rp,As,'s'); >> [B,A]=butter(N,fc,'s'); >> [hf,f]=freqs(B,A,1024);
>> plot(f,20*log10(abs(hf)/abs(hf(1)))) >> grid; >> xlabel('f/Hz'); >> ylabel('幅度(dB)'); 程序运行结果: N = 29 fc =
3.4127e+003
其频率特性曲线如下图3所示:
图 3 巴特沃斯模拟低通滤波器频率特性曲线
(2)模拟低通转换为数字低通滤波器已知一模拟滤波器的系数函数为 H a (s ) =
1000S +1000
分别用冲激响应不变法和双线性变换法将H a (s ) 转换成数字滤波器系统函数H (z ) ,并图示
H a (s ) 和 H (z ) 的幅度相应曲线。分别取采样频率F s =1000Hz 和F s =500Hz ,分析冲激响应法中存在的频率混叠失真和双线性变换法存在的非线性频率失真等。 解:其MATLAB 实现程序如下所示: >> b=1000; >> a=[1,1000]; >> w=[0:1000*2*pi]; >> [hf,w]=freqs(b,a,w); >> subplot(1,3,1); >> plot(w/2/pi,abs(hf)); >> grid; >> xlabel('f/Hz'); >> ylabel('幅度');
>> Fs0=[1000,500];
>> for m=1:2
Fs=Fs0(m);
[d,c]=impinvar(b,a,Fs); wd=[0:512]*pi/512; hw1=freqz(d,c,wd); subplot(1,3 ,2)
plot(wd/pi,abs(hw1)/abs(hw1(1))); hold on; end >> grid; >> xlabel('f/(Hz)');
>> text(0.52,0.88,'T=0.002s'); >> text(0.12,0.54,'T=0.001s'); >> for m=1:2 Fs=Fs0(m); [f,e]=bilinear(b,a,Fs); wd=[0:512]*pi/512; hw2=freqz(f,e,wd); subplot(1,3,3);
plot(wd/pi,abs(hw2)/abs(hw2(1))); hold on; end >> grid;
>> xlabel('f/(Hz)'); >> text(0.5,0.74,'T=0.002s'); >> text(0.12,0.34,'T=0.001s');
程序运行结果:
图 4 模拟滤波器到数字滤波器的转换
由图4可见,对冲击响应不变法,抽样频率越高(时间T 越小) ,混频越小;对双线性变换法,无频率混叠,但存在非线性失真。
(3)设计一个10阶的Butterworth 滤波器,通带为100~250Hz ,采样频率为1000Hz ,绘出滤波器的单位脉冲响应。
解:其MATLAB 实现程序如下所示:
>> fs=1000;
>> w=[100,250];
>> wn=w/(fs/2);
>> Nn=512;
>> [b,a]=butter(5,wn);
>> subplot(3,1,1)
>> freqz(b,a,Nn,fs)
>> n=[-10:80];
>> h=impz(b,a,n);
>> subplot(3,1,3)
>> stem(n,h);
>> xlabel('时间序号N');
>> ylabel('脉冲响应h');
>> title('脉冲响应');
程序运行结果:
图 5 10阶巴特沃斯滤波器