滤波器设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(6)根据输出的分子分母系数,用tf函数生成H(z)的表达试,设计实例:设计一个butterworth数字低通滤波器,要求通带临界频率fp=3400Hz,阻带临界
再用freqz函数验证设计结果。频率fs=5000Hz,通带内的最大衰减Rp=2dB,阻带内的最小衰减Rs=20db,采样频率Fs=22050Hz。用脉冲响应不变法设计的程序如下:
基于MATLAB的IIR数字滤波器设计
1 IIR数字滤波器的设计原理
在信号处理领域中,对于信号处理的实时性、快速性的要求越来越高。而在许多信息处理过程中,如对信号的过滤、检测、预测等,都要广泛地用到滤波器。其中数字滤波器具有稳定性高、精度高、设计灵活、实现方便等许多突出的优点,避免了模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题,因而随着数字技术的发展,用数字技术实现滤波器的功能越来越受到人们的注意和广泛的应用。其中有限冲激响应(FIR)滤波器能在设计任意幅频特性的同时保证严格的线性相位特性,在语音、数据传输中应用非常广泛。多相(Poly phase)数字滤波器是信号输入输出速率可变的一种滤波器,它广泛应用于TV-Scaler,专业的音响系统,时分复用,频分复用系统以及语音处理的子带编码中.
az= 1.0000 -1.9161 2.1559 -1.3866 0.5585 -0.1257 0.0125
6结束语
利用MATLAB设计IIR数字滤波器有多种方法,典型设计法原理清晰,完全设计法程序简单,最优设计法可满足特殊指标要求,工具设计法形象直观。灵活运用这些方法,教学上有助于理解设计原理,工程上有利于提高设计效率。滤波是信号处理的基础,滤波运算是信号处理中的基本运算,滤波器的设计也就相应成为数字信号处理的最基本问题之一。信号带有噪声或无用信号,滤波器的作用是将这些干扰成分滤除,也就是让特定频段的信号通过达到对信号筛选的效果。
4 IIR数字滤波器的最优设计法
典型设计法和完全设计法都是经典设计法。如果设计的IIR数字滤波器频率特性有特殊要求,经典设计法往往显得无能为力,最优设计法在这些频率特性有特殊要求的场合很有用场。MATLAB提供了yulewalk和maxflat两个最优设计函数[4]。yulewalk函数以平方误差最小为设计准则,可设计出任意频率响应的数字滤波系统。调用格式为[B,A]=yulewalk(N,F,M),
其中:向量F和M表示理想滤波器的幅频特性,F为归一化的频率向量,该向量
中每一个元素都在0到1之间取值,而且元素必须递增排序,并要求第一个元素为0,最后一个元素为1;M是对应F频率处的幅度,它是一个长度和F相同的向量。当确定理想滤波器的幅频响应后,为了避免通带到阻带的陡峭过渡,应该对过渡带进行多次的试验,以便得到最佳的滤波器。如前述设计实例中指标可定义为:N=7;F=[0,0.3084,0.4535,1];M=[1,1,0,0];
参考文献:
[1]刘顺兰等.数字信号处理[M].西安:西安电子科技大学出版社
[2]吴湘淇等.信号、系统与信号处理的软硬件实现[M].北京:电子工业出版社, 2002:119-134
[3]刘春. MATLAB在数字滤波器设计中的应用[J].仪表技术,2006(5):24-26.
[4]柴政,任海平.关于数字滤波器设计方式的探讨[J].通信电源技术,2007(1):33-35.
Maxflat函数以频率特性平滑为目标,可设计出分子分母阶数不同,甚至高于分母阶数的butterworth数字低通滤波器,以满足频率特性的平滑要求。调用格式为[B,A]=maxflat(NB, NA,Wn),其中:NB和NA是设定的分子分母阶数,Wn为衰减3dB规一化频率。
5 IIR数字滤波器工具设计法
(4)根据第2步的频率参数Wn,模拟低通滤波原型转换模拟低通、高通、带通、带阻滤波器,可用函数分别是:lp21p, lp2hp lp2bp, lp2bs。
(5)运用脉冲响应不变法或双线性变法把模滤波器转换成数字滤波器,调用的函数是iimpinvar和bilinear。脉冲响应不变法适用于采样频率大于4倍截止频率的锐截止低通带通滤波器,而双线性变换法适合于相位特性要求不高的各型滤波器。
2 IIR数字滤波器的典型设计法
典型设计法的设计思想是:利用已有的模拟滤波器设计理论,首先根据设计指标设计一个合适的模拟滤波器,然后再通过脉冲响应不变法或双线性变换法,完成从模拟到数字的变换。常用的模拟滤波器有巴特沃斯(Butterworth)滤波器、、贝塞尔(Bessel)滤波器等,这些滤波器各有特点,供不同设计要求选用。滤波器的模拟数字变换,通常是复变函数的映射变换,也必须满足一定的要求。
az=1.0000 -1.9161 2.1559 -1.3866 0.5585 -0.1257 0.0125
其它各型数字滤波器设计可参照进行,用到的MATLAB函数可用help命令了解。
3 II源自文库滤波器完全设计法
完全设计法是将典型设计法中的第3、4、5步合为一步进行的设计方法,用到的函数有:butter, chebylcheby2,ellip和bessel。用type命令可知它们是利用双线性变换原理,预畸变在函数内部进行,且要求输入归一化频率参数,但不需要进行预畸变处理。上述设计实例如果用完全设计法设计,只须将第3、4、5的程序改为:
[z,p,k]=buttap(N) %设计模拟低通原型的零极点增益参数
[bp,ap] = zp2tf(z,p,k); %将零极点增益转换成分子分母参数
%上两步也可用[bp,ap]=butter(N,1,s)直接获取归一化低通原
[bs,as] = lp2lp(bp,ap,Wn*pi*Fs); %将低通原型转换为模拟低通
滤波器的设计质上是寻找一个既能物理实现,又能满足给定频率特性指标要求的系统传输函数。IIR滤波器一般采用递归型的结构,系统的输入与输出服从N阶差分方程:
相应的传输函数为:
设计IIR数字滤波器就是要确定传输函数中的系数j a、或零极点增益、、A,使滤波器的频
率特性满足给定的性能指标要求。设计原理主要包括两个方面:一是根据设计指标,先设计出相应的模拟滤波器再通过脉冲响应不变法或双线性变换法转换成对应的数字滤波器;二是选择一种优准则,如最小均方准则,再在,先最误差此准则下求出滤波器传输函数的系数。根据设计理论[1],在MATLAB环境下设计IIR数字滤波器主要有四种方法:一是典型设计法;二是完全设计法;三是最优设计法;四是工计法。
[bz,az] =impinvar(bs,as,Fs) %用脉冲响应不变法进行模数变换
sys=tf(bz,az,T) %给出传输函数H(z)
[H,W]=freqz(bz,az,512,Fs); %生成频率响应参数
plot(W,20*log10(abs(H))); %绘制幅频响应
grid on; %加坐标网格
cheblord,cheb2ord,ellipord等。
(3)运用最小阶数N设计模拟低通滤波器原型。模拟低通滤波器的创建函数有:buttap,
cheblap, cheb2ap,ellipap和besselap,这些函数输出的是零极点增益形式,还要用zp2tf函数转换成分子分母多项式形式。如果想根据最小阶数直接设计模拟低通滤,可用butter,chebyl, cheby2,ellip,bessel等函只是注意要将函数中的Wn设为1。
程序运行结果(幅频响应图略):
bz= -0.00000.0009 0.02400.06090.03180.00340.0000
az=1.0000-2.66623.66714 -3.0750 1.6613 -0.5677 0.1127-0.0099
如果用双线性变换法完成上述设计实例,归一化频率需预畸变处理,公式应修改为:
图2
工具设计法是利用MATLAB提供的滤波器设计与分析工具(FDATool)进行设计的一种方法[5]。在命令窗口输入FDATool,即可打开如图2所示的图形用户界面设计窗口。该窗口分为上下
两部分:上面是设计结果显示;下面用来设定所需的技术参数。FDATool需设置的参数主要有响应类型、设计方法、滤波器阶数及选项、频率参数和幅度参数等项目,不同类型和不同方法的滤波器设计参数不尽相同,图中给出的是前述设计实例的设计指标。设置好技术指
W1p=2*tan(2*pi*fp*T/2)/pi;W1s=2*tan(2*pi*fs*T/2)/pi;
当然,从模拟到数字的变换函数也应改为:[bz,az] = bilinear (bs,as,Fs)
程序运行结果:
bz=0.0047 0.0280 0.0700 0.0933 0.0700 0.0280 0.0047
[bz,az] = butter(N,Wn);
程序运行结果:
bz= 0.00160.01090.03280.05460.05460.03280.01090.0016
az= 1.0000-2.41103.2031-2.57411.3506-0.44830.0869
该结果与典型设计法中双线性变换结果不同,是因为预畸变处理位置不同所致。
clear;closeall;clc; %开始准备
fp=3400;fs=5000;Fs=22050;R 2;Rs=20;T=1/Fs; %设计指标
W1p=fp/Fs*2; W1s=fs/Fs*2; %求归一化频率
%确定butterworth的最小阶数N和频率参数Wn
[N,Wn] =buttord(W1p, W1s,Rp,Rs, 's);
运行[bz,az]=yulewalk(N, F, M)程序,结果是:
bz= 0.0349 0.0618 0.0761 0.0602 0.0334 0.0161 0.0088 0.0148
az= 1.0000 -2.4025 3.6134 -3.4805 2.4116 -1.1287 0.3402 -0.0473
标后,点击Design Filter按键,即可完成设计。想对设计结果进行分析,可通,先运行Edit/convert to single
xport…命令,在弹出的对话框中给变量命名为bz和az,即可在工作空间得到如下结果。
bz= 0.0047 0.0280 0.07000.0933 0.0700 0.0280 0.0047
由于数字滤波器传输函数只与频域的相对值有关,故在设计时可先将滤波器设计指标进行归一化处理[3]。设采样频率为Fs,归一化频率的计算公式是:
归一化频率=
利用典型设计法设计数字滤波器的步骤:
(1)将设计指标归一化处理。如果采用双线性变换法,还需进行预畸变。
(2)根据归一化频率,确定最小阶数N和频率参数Wn。可供选用的阶数选择函数有:buttord,
相关文档
最新文档