根据MATLAB提供的多种设计IIR数字滤波器的函数设计滤波器,采用根据原型转换法原理实现的四种IIR设计函数:butter、cheby1、cheby2、ellip、yulewalk
一、采用butter(巴特沃斯函数)设计
butter函数可以直接设计各种形式的数字滤波器,同时也可以设计模拟滤波器。
butter形式:
[b,a]=butter(n,Wn)
[b,a]=butter(n,Wn,'ftype')
[z,p,k]=butter(n,Wn)
[z,p,k]=butter(n,Wn,'ftype')
[A,B,C,D]=butter(n,Wn)
[A,B,C,D]=butter(n,Wn,'ftype')
butter函数可以设计低通、高通、带通、带阻等各种形式的滤波器
[b,a]=buttter(n,Wn)可以设计一个阶数为n、截止频率为Wn的低通滤波器,返回值b、a是系统函数的分子和分母系数。Wn为滤波器的归一化截止频率,取值范围为0-1,1对应采样频率的一半;如果Wn是一个向量[w1,w2],则构成的是阶数为2n的带通滤波器,通带范围是w1-w2。
[b,a]=butter(n,Wn,‘ftype’)可以设计高通、带阻滤波器,根据’ftype’为’high’或’stop’取决是高通还是带阻滤波器,对应的阶数分别为n和2n
[z,p,k]=butter(n,Wn)及[z,p,k]=butter(n,Wn,‘ftype’)可以得到滤波器的零、极点和增益表达式。
[A,B,C,D]=butter(n,Wn)及[A,B,C,D]=butter(n,Wn,‘ftype’)可以得到滤波器的状态空间表达形式,实际设计中很少使用这种形式。